江东小霸王刘玄德

导航

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

  

 

 

 

posted on 2020-08-09 21:32  江东小霸王刘玄德  阅读(1266)  评论(0)    收藏  举报