1. 程式人生 > >CentOS7.3下ELK日誌分析系統集群搭建

CentOS7.3下ELK日誌分析系統集群搭建

rtu 服務器端 output 行修改 disco boot 刷新 客戶端 tst

Elasticsearch是個基於Lucene實現的開源、分布式、restful的全文本搜索引擎,此外他還是一個分布式實時文檔存儲,其中每個文檔的每個filed均是可被索引的數據,且可被搜索,也是一個帶實時分析功能的搜索引擎,能夠擴展至數以百計的節點實時處理PB級別的數據。它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。Elasticsearch集群采用主從模式,通過獲取Logstash客戶端收集來的日誌信息同步到Elasticsearch集群節點中,再由Kibana的Web界面獲取到日誌信息進行搜索查詢工作,當Elasticsearch主節點掛掉之後,Elasticsearch從節點的數據仍就正常,需要變更Kibana的elasticsearch.url參數去指定Elasticsearch節點IP,保證ELK日誌系統的正常運行。

技術分享圖片

Logstash 是開源的服務器端數據處理管道,能夠同時從多個來源采集數據、轉換數據,然後將數據發送到您最喜歡的“存儲庫”中。而當下最常用的存儲庫就是Elasticsearch。需要在所有需要搜集日誌的客戶端中安裝Logstash或者Filebeat等日誌搜集工具,對Logstash配置文件進行修改,指定input上下文,即搜集的日誌路徑(最好為絕對路徑)。output上下文,指定Logstash從input搜集到的日誌內容輸出到哪裏保存,一般指向Elasticsearch的主節點IP地址。

Kibana是一個開源的分析與可視化平臺,設計出來用於和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引裏的數據,使用各種不同的圖表、表格、地圖等kibana能夠很輕易地展示高級數據分析與可視化。


ELK日誌系統配置:

三臺CentOS7.3虛擬機

node-2 192.168.175.130 Elasticsearch

node-3 192.168.175.131 Logstash

node-4 192.168.175.132 Kibana


源代碼包:

wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.4/elasticsearch-2.3.4.tar.gz

wget https://download.elastic.co/logstash/logstash/logstash-2.3.4.tar.gz
wget https://download.elasticsearch.org/kibana/kibana/kibana-4.5.3-linux-x64.tar.gz

分別在對應的虛擬機中下載。

①ELK需要在Java環境中部署,最好是在Java8以上。

技術分享圖片


②關閉所有虛擬機的防火墻

#iptables -F

#setenforce 0


③安裝Elasticsearch

#tar -xf elasticsearch-2.3.4.tar.gz -C /usr/local

#mv /usr/local/elasticsearch-2.3.4 /usr/local/elasticsearch

#cd /usr/local/elasticsearch/config

#vim elasticsearch.yml

技術分享圖片

elasticsearch配置如上

cluster.name:集群名稱,若有多個elasticsearch節點,則每個節點都需要相同集群節點名稱。

node.name:節點名稱,集群節點名稱。

node.master:指定該節點是否為主節點。

node.data:指定該節點是否為均衡器節點,true為數據節點,存儲日誌數據,false為均衡器節點。

path.data:存儲日誌數據的路徑。

path.logs:elasticsearch節點的日誌路徑。

network.host:該主機IP。

http.port:集群中Kibana以及Logstash的訪問端口,9300位Elasticsearch節點中交流的端口。

bootstrap.memory_lock:鎖定堆內存。

http.cors.enabled:如果啟用了 HTTP 端口,那麽此屬性會指定是否允許跨源 REST 請求。

http.cors.allow-orign:如果 http.cors.enabled 的值為true,那麽該屬性會指定允許 REST 請求來自何處。

discovery.zen.ping.unicast.hosts:elasticsearch集群節點的IP地址。


註意事項:

① 需要創建一個elasticsearch用戶,並授權給Elasticsearch集群中的path.data,path.logs數據與日誌路徑

② max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536](報錯信息)

需要修改/etc/security/limits.conf

技術分享圖片

③ max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144](報錯信息)

需要修改內核參數vm.max_map_count=655360

#sysctl -w vm.max_map_count=65536

也可以直接寫入到/etc/sysctl.conf(永久)

④運行elasticsearch的時候不能以root身份運行,需要以創建的elasticsearch用戶的身份運行。

運行elasticsearch

技術分享圖片


④安裝Logstash

#tar -xf logstash-2.3.4.tar.gz -C /usr/local

#mv /usr/local/logstash-2.3.4 /usr/local/logstash

#cd /usr/local/logstash

技術分享圖片

修改配置文件,使Logstash能夠收集當前虛擬機的日誌信息(需要指定),並輸出到elasticsearch master主機。

技術分享圖片

input上下文表示拉取本機/var/log/test.log中的日誌

output上下文表示將Logstash拉渠道的日誌內容放到elasticsearch集群中,指定IP及端口,設置索引可以在Kibana上添加索引進行查詢。


啟動Logstash

技術分享圖片


⑤安裝Kibana

#tar -xf kibana-4.5.3-linux-x64.tar.gz -C /usr/local

#cd /usr/local/kibana

配置如下:

技術分享圖片

啟動Kibana

技術分享圖片


在本機訪問http://192.168.175.132:5601

可以在Kibana的虛擬機上安裝nginx進行反代,將所有數據反代給192.168.175.132的5601端口

實現結果:

搜索在Logstash中指定的索引作為在Kibana的日誌分類

技術分享圖片

給/var/log/test.log傳入數據

#cat /var/log/boot.log >> /var/log/test.log

這時候在Kibana中的Discover刷新一下即可查看到對應的日誌信息。

技術分享圖片

CentOS7.3下ELK日誌分析系統集群搭建