天天看點

ELK基于ElastAlert實作日志的微信報警 ---docker環境

參考網址:https://github.com/anjia0532/elastalert-docker

1.拉取鏡像:

docker pull anjia0532/elastalert-docker:v0.2.4
           

2.啟動容器,根據es實際情況來決定啟動參數中是否要設定es通路使用者名和密碼,我這邊設定了

具體使用啥參數,參考網址上有說明

docker run -d -e"ELASTICSEARCH_HOST=192.168.75.21" \
    -e"ELASTICSEARCH_USER=elastic" \
    -e"ELASTICSEARCH_PASSWORD=IjGj8QwWYeXY7rVoLLQ6" \
    -e"CONTAINER_TIMEZONE=Asia/Shanghai"  \
    -e"TZ=Asia/Shanghai" \
    --name es1 anjia0532/elastalert-docker:v0.2.4
           
ELK基于ElastAlert實作日志的微信報警 ---docker環境

3.觀察啟動後的情況

首先在kibana上檢視索引情況,會發現自動建立幾個以elastalert開頭的索引,效果跟手動執行指令:

elastalert-create-index

一樣

ELK基于ElastAlert實作日志的微信報警 ---docker環境

容器日志中也會有相應的顯示資訊

ELK基于ElastAlert實作日志的微信報警 ---docker環境

其次,登陸到容器中,會發現容器預設工作目錄是:/opt/elastalert

ELK基于ElastAlert實作日志的微信報警 ---docker環境

檢視config.yaml檔案内容,效果跟手動配置config.yaml檔案内容類似

ELK基于ElastAlert實作日志的微信報警 ---docker環境

config.yaml檔案中的配置可以在啟動容器的時候進行指定,參考網址上有詳細說明,個别參數的預設配置可以跟config.yaml檔案中的參數一 一對應

ELK基于ElastAlert實作日志的微信報警 ---docker環境

然後發現容器中/opt/elastalert/rules目錄下為空,也就是配置告警規則的目錄

手動建立一個微信告警規則檔案,wechat.yaml

ELK基于ElastAlert實作日志的微信報警 ---docker環境

容器日志中能看到詳細的添加資訊

ELK基于ElastAlert實作日志的微信報警 ---docker環境

手動往filebeat監控的日志檔案中添加error的消息,觸發報警

ELK基于ElastAlert實作日志的微信報警 ---docker環境

企業微信收到的消息,内容跟微信模闆一樣

ELK基于ElastAlert實作日志的微信報警 ---docker環境

總結

可以在啟動容器的時候把rules告警規則目錄從主控端上挂載進去,這樣就不用每次登陸進容器添加告警規則了

docker run -d -e"ELASTICSEARCH_HOST=192.168.75.21" \
    -e"ELASTICSEARCH_USER=elastic" \
    -e"ELASTICSEARCH_PASSWORD=IjGj8QwWYeXY7rVoLLQ6" \
    -e"CONTAINER_TIMEZONE=Asia/Shanghai"  \
    -e"TZ=Asia/Shanghai" \
    -v /mnt/elastalert/rules:/opt/elastalert/rules \
    --name es1 anjia0532/elastalert-docker:v0.2.4
           

或者事先在主控端的/mnt/elastalert/rules目錄下建立好報警規則,或者等容器啟動後再在主控端的/mnt/elastalert/rules目錄建立報警規則都可以