前篇文章簡單介紹了Docker 部署ELK,以及使用filebeat收集java日志。這篇我們介紹下日志報警配置,這里我們使用Sentinl插件。
1、修改kibana參數
進入elk容器,修改對應參數
[root@centos-mq ~]# docker exec -it elk /bin/bash
root@70f05fc990bd:/# vim /opt/kibana/config/kibana.yml
sentinl:
settings:
email:
active: true
#ssl: true ## 雲服務器時打開這注釋,因為雲服務器會禁用25端口
#port:465
user: *****@163.com ## 發件人
password: **** ## 授權碼(不是密碼)
host: smtp.163.com
report:
active: false
2、安裝Sentinl插件
Sentinl版本要選擇與kibana版本一致,否則會安裝失敗
root@70f05fc990bd:/# /opt/kibana/bin/kibana-plugin install https://github.com/sirensolutions/sentinl/releases/download/tag-6.6.0-0/sentinl-v6.6.0.zip Attempting to transfer from https://github.com/sirensolutions/sentinl/releases/download/tag-6.6.0-0/sentinl-v6.6.0.zip Transferring 134770542 bytes.................... Transfer complete Retrieving metadata from plugin archive Extracting plugin archive Extraction complete Optimizing and caching browser bundles... Plugin installation complete
root@70f05fc990bd:~# /etc/init.d/kibana restart
安裝重啟完,瀏覽器訪問kibana界面,即可看到Sentinl插件菜單
3、配置報警
Sentinl >> New >> Watcher Advanced
點擊保存,會創建一個報警模板,修改模板內容如下:
{ "actions": { "email_html_alarm_a784d6ef-cf2d-40e2-b132-d5ad6dbec78d": { "name": "one平台日志異常報警", "throttle_period": "1m", "email_html": { "to": "****@vanje.com.cn", ## 接收郵箱 "from": "****@163.com", ## 發送郵箱 "stateless": false, "subject": "one業務服務生產環境日志告警", "priority": "high", "html": "{{payload.hits.hits.0._source.message}}" ## 郵件內容 } } }, "input": { "search": { "request": { "index": [ "one-him*" ], "body": { "query": { "bool": { "must": [ { "query_string": { "analyze_wildcard": true, "query": "\"獲取待辦\"" ## 報警觸發條件 } } ], "filter": [ { "range": { "@timestamp": { "gte": "now-2m", ## 相對於當前時間 "lt": "now" } } } ] } } } } } }, "condition": { "script": { "script": "payload.hits.total >= 1" ## 一次達到觸發條件就報警 } }, "trigger": { "schedule": { "later": "every 2 minutes" ## 每2分鍾讀取一次 } }, "disable": true, "report": false, "title": "one-him賬單異常", "save_payload": false, "spy": false, "impersonate": false }
配置完成后,等待設置對應的時間,是要觸發設置的報警機制,會看到報警日志發送至設定的郵箱