elasticsearch + logstash + kibana 搭建實時日誌收集系統【原創】

實時日誌統一收集的好處:php

    一、快速定位集羣中問題機器git

    二、無需下載整個日誌文件(每每比較大,下載耗時多)github

    三、能夠對日誌進行統計負載均衡

      a、發現出現次數最多的異常,進行調優處理elasticsearch

      b、統計爬蟲ip性能

      c、統計用戶行爲,作聚類分析等    spa


    基於上面的需求,我採用了 ELK(elasticsearch + logstash + kibana)的方案,安裝方法能夠參考個人項目 ELK_Tutorial,這裏我主要講講我遇到的問題。日誌


    一、LVS 分發UDP請求不成功的問題
code

         爲了避免影響線上集羣的性能,咱們採起了UDP的方式傳輸日誌消息,以下圖:orm

         

         而負載均衡我採用了LVS,在配置LVS時,我發現須要在keepalived.conf裏面使用MISC_CHECK方法才能在        protocol=UDP的狀況下成功檢測到real_server,而且分發成功,在keepalived.conf中關鍵配置的地方是:

real_server 機器A 12201 {  
        weight 1   
        MISC_CHECK {  
        misc_path "/etc/keepalived/udp_check.sh 機器A 12201"         
	misc_timeout 10
        }  
    }


    而udp_check.sh 這個文件是我本身寫的,裏面的內容很簡單:

/usr/bin/nc -uz -w1 $1 $2 | grep succeeded >/dev/null
exit $?

   這裏須要注意的是udp_check.sh 這個文件的權限,我這裏設置的是 755


   二、logstash集羣發送的日誌亂序

   這個問題解決方法很簡單,統一每臺logstash機器的系統時間便可。


   三、elasticsearch 集羣腦裂

   出現腦裂,即沒法選舉出master的狀況,解決方式是加大心跳檢測時間,高負載的狀況下,可能出現master響應較慢,這時不能極端的認爲master down掉了。


附下面是應用後場景(點擊查看大圖)


另外咱們還基於ES API作了分析

相關文章
相關標籤/搜索