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

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

  ELK日誌集羣.png

  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以上。

  圖片.png

 

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

  #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

  圖片.png

  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

       圖片.png

③ 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

    圖片.png


  ④安裝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

     圖片.png

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

     圖片.png

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

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

   

     啓動Logstash

     圖片.png


   ⑤安裝Kibana

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

    #cd /usr/local/kibana

   配置如下:

    圖片.png

   啓動Kibana

   圖片.png

 

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

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

  實現結果:

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

    圖片.png

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

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

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

圖片.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章