docker安装elastalert插件进行ElasticSearch邮件告警
一、环境介绍
ELK版本:7.7.1
elastalert版本:3.0.0-beta.1
注意:github上面要求安装环境python版本为3.6,但是用docker安装不受此限制,可直接安装
二、安装步骤
1、从git上下载项目并进入目录:
git clone https://github.com/bitsensor/elastalert.git; cd elastalert;
2、修改config目录下的配置文件:将其中的es的ip和端口进行修改,如果做了权限控制还需要修改es集群的用户名和密码

3、回到elastalert目录,然后docker启动elastalert,并将配置文件挂载出来
docker run -d -p 3030:3030 \
-v `pwd`/config/elastalert.yaml:/opt/elastalert/config.yaml \
-v `pwd`/config/config.json:/opt/elastalert-server/config/config.json \
-v `pwd`/rules:/opt/elastalert/rules \
-v `pwd`/rule_templates:/opt/elastalert/rule_templates \
--net="host" \
--name elastalert bitsensor/elastalert:3.0.0-beta.1
注意:最后一行的elastalert版本不要写latest,不然会报错。latest是2.4版本,es查询出来的结构不一致会报错,如果你用latest安装失败后注意要去ES上删除创建的关于elastalert的索引,不然也会报错
4、邮件告警规则配置(test-rule.yaml),文件放在rules目录下
es_host: 192.168.*.*
es_port: 9200
name: my-rule
type: frequency
index: guangzhou-mtex-nop
num_events: 5
timeframe:
hours: 24
filter:
- query:
query_string:
query: "ERROR"
alert:
- "email"
email:
- "shouJianRen@mastercom.cn"
smtp_host: smtp.yeah.net
smtp_port: 25
smtp_auth_file: /opt/elastalert/rule_templates/email_auth.yaml
from_addr: faJianRen@yeah.net
注意:这里配置的时间hours范围只有24小时,配置更大的hours不会生效,我之前以为配置2400小时就是100天,结果一直Hits为0;天粒度就用days: 10
5、邮箱发件人账户配置:由于在rule中配置了email_auth.yaml的路径,而在启动docker时对/opt/elastalert/rule_templates目录进行了映射,因此在本地的/rule_templates目录下添加email_auth.yaml文件,并添加内容:

6、重启docker容器就可以去查看邮箱是否收到邮件啦
docker restart elastalert

浙公网安备 33010602011771号