參考網址: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

3.觀察啟動後的情況
首先在kibana上檢視索引情況,會發現自動建立幾個以elastalert開頭的索引,效果跟手動執行指令:
elastalert-create-index
一樣
容器日志中也會有相應的顯示資訊
其次,登陸到容器中,會發現容器預設工作目錄是:/opt/elastalert
檢視config.yaml檔案内容,效果跟手動配置config.yaml檔案内容類似
config.yaml檔案中的配置可以在啟動容器的時候進行指定,參考網址上有詳細說明,個别參數的預設配置可以跟config.yaml檔案中的參數一 一對應
然後發現容器中/opt/elastalert/rules目錄下為空,也就是配置告警規則的目錄
手動建立一個微信告警規則檔案,wechat.yaml
容器日志中能看到詳細的添加資訊
手動往filebeat監控的日志檔案中添加error的消息,觸發報警
企業微信收到的消息,内容跟微信模闆一樣
總結
可以在啟動容器的時候把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目錄建立報警規則都可以