天天看點

ELK 6.4 實時日志分析系統

elk是三個開源軟體的縮寫,分别表示:elasticsearch , logstash, kibana , 它們都是開源軟體。新增了一個filebeat,它是一個輕量級的日志收集處理工具(agent),filebeat占用資源少,适合于在各個伺服器上搜集日志後傳輸給logstash,官方也推薦此工具。

elasticsearch 是個開源分布式搜尋引擎,提供搜集、分析、存儲資料三大功能。它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多資料源,自動搜尋負載等。

logstash 主要是用來日志的搜集、分析、過濾日志的工具,支援大量的資料擷取方式。一般工作方式為c/s架構,client端安裝在需要收集日志的主機上,server端負責将收到的各節點日志進行過濾、修改等操作在一并發往elasticsearch上去。

kibana 也是一個開源和免費的工具,kibana可以為 logstash 和 elasticsearch 提供的日志分析友好的 web 界面,可以幫助彙總、分析和搜尋重要資料日志。

filebeat 隸屬于beats。目前beats包含四種工具:

packetbeat(搜集網絡流量資料)

topbeat(搜集系統、程序和檔案系統級别的 cpu 和記憶體使用情況等資料)

filebeat(搜集檔案資料)

winlogbeat(搜集 windows 事件日志資料)

官方文檔:

filebeat:

https://www.elastic.co/cn/products/beats/filebeat

logstash:

https://www.elastic.co/cn/products/logstash

kibana:

https://www.elastic.co/cn/products/kibana

elasticsearch:

https://www.elastic.co/cn/products/elasticsearch

elasticsearch中文社群:

https://elasticsearch.cn/

一般我們需要進行日志分析場景:直接在日志檔案中 grep、awk 就可以獲得自己想要的資訊。但在規模較大的場景中,此方法效率低下,面臨問題包括日志量太大如何歸檔、文本搜尋太慢怎麼辦、如何多元度查詢。需要集中化的日志管理,所有伺服器上的日志收集彙總。常見解決思路是建立集中式日志收集系統,将所有節點上的日志統一收集,管理,通路。

一般大型系統是一個分布式部署的架構,不同的服務子產品部署在不同的伺服器上,問題出現時,大部分情況需要根據問題暴露的關鍵資訊,定位到具體的伺服器和服務子產品,建構一套集中式日志系統,可以提高定位問題的效率。

一個完整的集中式日志系統,需要包含以下幾個主要特點:

收集-能夠采集多種來源的日志資料

傳輸-能夠穩定的把日志資料傳輸到中央系統

存儲-如何存儲日志資料

分析-可以支援 ui 分析

警告-能夠提供錯誤報告,監控機制

elk提供了一整套解決方案,并且都是開源軟體,之間互相配合使用,完美銜接,高效的滿足了很多場合的應用。目前主流的一種日志系統。

主機名

作業系統

ip位址

服務名

es

centos7.4

192.168.96.85

elasticsearch 6.4.0、kibana 6.4.0、rsyslog

nginx

192.168.96.60

elasticsearch 6.4.0、logstash-6.4.0

httpd

192.168.96.86

elasticsearch 6.4.0、filebeat-6.4

客戶機

windows 10

192.168.96.2

網頁浏覽器

以上所有伺服器均關閉防火牆及selinux功能

所有機器全部安裝jdk1.8,因為elasticsearch是java開發的,全部安裝elasticsearch

es伺服器作為主節點

三台伺服器均為資料節點

es伺服器上需要安裝kibana

es伺服器上通過rsyslog收集日志

nginx伺服器上通過logstash收集日志

httpd伺服器上通過filebeat收集日志

這裡分别使用了3種收集日志的方法,官網建議選用filebeat,因為輕量、高效

vim /etc/hosts
vim /etc/elasticsearch/elasticsearch.yml
ELK 6.4 實時日志分析系統
ELK 6.4 實時日志分析系統
ELK 6.4 實時日志分析系統

http://192.168.96.85:9200/_cluster/health?pretty

ELK 6.4 實時日志分析系統

http://192.168.96.85:9200/_cluster/state?pretty

ELK 6.4 實時日志分析系統

至此,es叢集已經部署完成了

vim /etc/kibana/kibana.yml
ELK 6.4 實時日志分析系統
ELK 6.4 實時日志分析系統
ELK 6.4 實時日志分析系統
vim /etc/rsyslog.conf
vim /etc/logstash/conf.d/syslog.conf
ELK 6.4 實時日志分析系統
ELK 6.4 實時日志分析系統
ELK 6.4 實時日志分析系統
ELK 6.4 實時日志分析系統
vim /etc/filebeat/filebeat.yml
ELK 6.4 實時日志分析系統
ELK 6.4 實時日志分析系統
vim /etc/logstash/conf.d/nginx.conf
ELK 6.4 實時日志分析系統
vim /etc/nginx/conf.d/elk.conf
ELK 6.4 實時日志分析系統

重新開機nginx服務

開啟logstash收集nginx日志

ELK 6.4 實時日志分析系統
ELK 6.4 實時日志分析系統
ELK 6.4 實時日志分析系統
ELK 6.4 實時日志分析系統