ELK配置

服務主體:html

(1)Logstash:用來蒐集日誌node

(2)Elasticsearch:存儲各種日誌linux

(3)Kibana:web化接口用做查尋和可視化日誌git

(4)sentinl插件:配置觸發條件和觸發事件github

備註:在複雜系統中,Logstash還能夠細分爲3部分,分別爲logstash shipper(做爲logstash agent,用於監控並過濾收集日誌)、Redis(緩存)、logstash indexer(做爲 logstash server,將日誌收集後交給全文搜索服務ElasticSearch);在簡單系統中,直接部署Logstash便可,本文即採用這種方式;web

ELK主體下載地址:https://www.elastic.co/cn/downloadsapi

Kibana插件sentinl下載地址:https://github.com/sirensolutions/sentinl/releases/
緩存

備註:爲了確保兼容性,三大主體及相關插件的版本號儘可能保持一致,本文均採用6.2.4版本安全

分步指南

    1. 配置並啓動Elasticsearch

      配置elasticsearch-6.2.4/config/elasticsearch.yml文件部分說明:
      #network.host: 192.168.0.1                                         #默認訪問IP爲當前主機IP
      cluster.name: elk2                                                       #集羣命名
      node.name: elk2node                                                 #節點命名
      network.host: 0.0.0.0                                                  
      http.cors.enabled : true
      http.cors.allow-origin : "*"
      #
      # Set a custom port for HTTP:
      #
      http.port: 9200                                                            #默認訪問端口爲9200

      參考配置文件連接:elasticsearch.yml
      服務器

      配置完後直接啓動該服務便可 

      備註:elasticsearch沒法以root身份運行!!!啓動後能夠經過web訪問http://192.168.3.97:9200/進行測試,會反饋一個JSON字符串以下:

      另外,安裝elasticSearch 6.2.4 head插件

      參考文檔連接:https://blog.csdn.net/zoubf/article/details/79007908

    2. 配置並啓動Logstash:
      logstash有兩種啓動,-e和-f 。其中-e用來快速測試不用修改配置文件,通常用來調試;-f從指定配置文件啓動(主要);

      測試:root@elktest bin]# logstash -e "input {stdin{}} output {stdout{}}"        (測試效果:控制檯輸入什麼,則控制檯輸出什麼)

      配置文件(自建.conf文件)說明:

      input {                                                             #輸入源
          file {                                                            #從文件輸入(還有不少)
             path => "/home/log/log4test/*.log"           #文件路徑
             start_position => "beginning"                  #檢索位置(從頭)
          }
      }

      output {
           elasticsearch {                                          #輸出目的
               action => "index"                                   #關鍵字,以索引的方式
               hosts => ["192.168.3.97:9200"]            #ES服務IP和端口
               index => "hello.%{+YYYY.MM.dd}"        #索引命名
           }
      }

      參考配置文件連接:logstash.conf

       

       

    3. 安裝sentinl插件
      推薦採用在線安裝方式:經過kibana-6.2.4-linux-x86_64/bin/kibana-plugin install https://github.com/sirensolutions/sentinl/releases/download/tag-6.2.3-3/sentinl-v6.2.4.zip

      s備註:上述連接中tag-XXX項經過所需下載的相關版本號去https://github.com/sirensolutions/sentinl/releases/自行覈對

       

       

    4. 配置並啓動Kibana和其插件sentinl:
      配置 kibana-6.2.4-linux-x86_64/config/kibana.yml文件部分說明:

      # Kibana is served by a back end server. This setting specifies the port to use.                                           #該服務端口設置,默認爲5601
      server.port: 5601

      # To allow connections from remote users, set this parameter to a non-loopback address.                          #該服務IP設置,默認爲本機IP
      server.host: "192.168.3.97"

       

      # The URL of the Elasticsearch instance to use for all your queries.                                                            #ES服務IP和端口配置
      elasticsearch.url: "http://192.168.3.97:9200"

       

      # Kibana uses an index in Elasticsearch to store saved searches, visualizations and
      # dashboards. Kibana creates a new index if the index doesn't already exist.
      kibana.index: ".kibana"                                                                                                                                  #該服務自身的日誌文件索引號

      sentinl:                                                                                                                                                          #sentinl配置
           settings:                                                                                                                                           
               email:
                   active: true
                   user: tebonamdev@tebon.com.cn                                                                                                   #發件郵箱用戶名
                   password: ********                                                                                                                   #發件郵箱密碼
                   host: mail.tebon.com.cn                                                                                                                  #發件郵箱服務器
                   ssl: false                                                                                                                                         #安全證書
                   timeout: 10000                                                                                                                               #郵箱訪問超時設置
               report:
                   active: true
                   executable_path: '/usr/bin/chromium' # path to Chrome v59+ or Chromium v59+

      配置完後直接啓動該服務便可,可經過web訪問http://192.168.3.97:5601/

      參考配置文件連接:kibana.yml

      備註:sentinl 5.×版本和6.×版本官網推薦的最小配置不一樣,具體可參考官網http://sentinl.readthedocs.io/en/latest/Config-Example/#sentinl-configuration-yaml

      另外,要使用sentinl還須要配置虛擬機本地/etc/mail.rc:

      set from=tebonamdev@tebon.com.cn                           #發件郵箱用戶名
      set smtp=mail.tebon.com.cn                                          #發件郵箱服務器
      set smtp-auth-user=tebonamdev@tebon.com.cn          #發件郵箱用戶名
      set smtp-auth-password=********                          #發件郵箱密碼

      set smtp-auth=login

      參考配置文件連接:mail.rc

      備註:sentinl在使用過程當中,告警觸發正常,可是郵件發送超時,建議安裝官網推薦的emailjs,具體參考:https://github.com/eleith/emailjs

      另外,初次配置進行功能實現時,最好關閉ssl,不然可能出現郵件發送超時等問題,涉及域調試起來比較麻煩!!!

    5. sentinl使用:參考http://www.javashuo.com/article/p-pqvzwzek-do.html

      關鍵點說明:
      (1)General中的Schedule 爲該監控的輪詢時間
              

       


      (2)Input爲監控對象(一般爲日誌索引)
               
               過濾和匹配規則遵循ES語法,例如"query_string"爲匹配字符串、"range"爲限定條件(例如"gte": "now-1h","lte": "now"表示當前時刻一小時範圍內,gte就是大於等於的意思,lte就是小於等於的意思,等等)
              參考模板連接:input.docx
      (3)Condition爲觸發條件
              
      (4)Transform能夠不填,尚不是很明白。
              
      (5)Action就是觸發動做,本文配置了郵件告警
             
             備註:Throttle表示告警最小間隔時間,即連續兩次告警觸發的間隔時間小於該值時,第二次告警動做不執行
      (6)Raw是對前面全部監控配置的ES語法的總覽
             
      (7)監控概貌

       



             上圖爲全部已佈局的監控概貌,每個監控右側分別表示‘從新編輯’、‘當即執行’、'刪除'和'暫停'。
相關文章
相關標籤/搜索