一、简介
Elastalert是通过查询ElasticSearch中的记录进行比对,对服务报警规则对日志发送报警邮件
支持报警规则有:
- blacklist类型:黑名单规则将检查黑名单中的某个字段,如果它在黑名单中则匹配。
- whitelist类型:与黑名单类似,此规则将某个字段与白名单进行比较,如果列表中不包含该字词,则匹配。
- change类型:此规则将监视某个字段,并在该字段更改时进行匹配,该领域必须相对于最后一个事件发生相同的变化。
- frequency类型:当给定时间范围内至少有一定数量的事件时,此规则匹配。 这可以按照每个query_key来计数。
- spike类型:当某个时间段内的事件量比上一个时间段的spike_height时间大或小时,这个规则是匹配的。它使用两个滑动窗口来比较事件的当前和参考频率。 我们将这两个窗口称为“参考”和“当前”。
- flatline类型:当一个时间段内的事件总数低于一个给定的阈值时,匹配规则。
- cardinality类型:当一个时间范围内的特定字段的唯一值的总数高于或低于阈值时,该规则匹配。
- percentage match类型:当计算窗口内的匹配桶中的文档的百分比高于或低于阈值时,此规则匹配。计算窗口默认为buffer_time。
支持对报警方式有:
- JIRA
- OpsGenie
- Commands
- HipChat
- MS Teams
- Slack
- Telegram
- AWS SNS
- VictorOps
- PagerDuty
- Exotel
- Twilio
- Gitter
二、软件环境
- CentOS Linux release 7.8.
- Elasticsearch 7.7.1
- Kibana 7.7.1
三、服务部署
1、ElastAlert配置文件
2、拷贝到/opt/目录下并解压elastalert.tar.gz
cp elastalert.tar.gz /opt/ tar -zxvf elastalert.tar.gz
3、配置文件说明:
主要配置文件是:config.yaml
- es_host: elasticsearch地址(可以用容器名,用容器名的时候各个服务的--network efk要一致)
- es_port: elasticsearch端口
- dingtalk_access_token: 钉钉机器人的token
- dingtalk_secret: 钉钉机器人的加签值
- dingtalk_security_type: 这个钉钉机器人安全设置有sign/keyword/whitelist(对应加签,关键字,IP地址白名单)
该配置文件:smtp_auth.yaml为邮箱账户密码
- user: "admin@163.com"
- password: "sdfaHAKNQ"
4、ElastAlert 镜像启动:
docker run -d -p 3030:3030 -p 3333:3333 -e"ELASTICSEARCH_HOST=elasticsearch771" \ -v /opt/elastalert/config/config.yaml:/opt/elastalert/config.yaml \ -v /opt/elastalert/config/smtp_auth.yaml:/opt/elastalert/smtp_auth.yaml \ -v /opt/elastalert/rules:/opt/elastalert/rules \ -v /opt/elastalert/rule_templates:/opt/elastalert/rule_templates \ -v /etc/localtime:/etc/localtime:ro \ -e "CONTAINER_TIMEZONE=Asia/Shanghai" \ -e "TZ=Asia/Shanghai" \ -e "ELASTALERT_DINGTALK_ACCESS_TOKEN=80d0034ef56a3988d0073e66900f713c92bf54ed5ae2563976b41c014776f981" \ -e "ELASTALERT_DINGTALK_SECURITY_TYPE=sign" \ -e "ELASTALERT_DINGTALK_SECRET=SEC203b230a30790e352741008e49ef160ae0a4b836fc85d2cf9ae6b2dfe1acc0e4" \ --network efk --name elastalert3 anjia0532/elastalert-docker:v0.2.4
5、告警模板
rules目录下的yaml都是告警模板,根据自己需求修改
最新评论