一、环境说明
机器:172.26.8.146
系统:Centos7.9
ELK:7.6版本
二、部署安装
2.1 镜像下载
文档:https://elastalert2.readthedocs.io/en/latest/index.html
docker pull jertel/elastalert2
2.2 配置文件配置
可参考 https://github.com/jertel/elastalert2 目录中的examples/config.yaml.example
mkdir -p /opt/elastalert2/{data,rules}
vim /opt/elastalert2/elastalert.yaml
es_host: 172.26.8.146 es_port: 9210 rules_folder: rules run_every: minutes: 5 buffer_time: minutes: 10 #es_username: elastic #es_password: password writeback_index: elastalert_status alert_time_limit: days: 2
2.3 启动
# elastalert2 docker run -d --name elastalert2 \ --restart=always --cpus=2 -m 1g \ -e TZ=Asia/Shanghai \ -v /opt/elastalert2/data:/opt/elastalert/data \ -v /opt/elastalert2/elastalert.yaml:/opt/elastalert/config.yaml \ -v /opt/elastalert2/rules:/opt/elastalert/rules \ jertel/elastalert2
启动完后会自动创建告警索引
三、Rule规则配置
提前准备好一个发告警的邮箱。
当message日志文件出现 Out of memory,table full,oom 时,通过邮件方式发送给 "[email protected]"。
创建规则,在配置文件中,有一个参数是rules_folder,该参数指定了规则文件存放的位置,根据配置文件,需要把规则文件放到该目录下,在rules目录下,新创建一个system_message.yaml文件,并写入如下内容:
es_host: 172.26.8.146 es_port: 9210 #es_username: elastic #es_password: password name: 服务器messages日志告警 use_strftine_index: true type: frequency #监控索引 index: prod_messages* # 此参数特定于频率类型,是触发警报时的阈值 num_events: 1 #(组合在一起的意思是:在10分钟内有一次触发报警的事件就会触发报警) timeframe: #hours: 1 minutes: 10 # 词组要在\" \"里面,否则只要匹配到其中一个单词则触发报警 filter: - query_string: query: "message: failed OR message: \"Out of memory\" \"table full\" \"oom\" " alert: - "email" email: - "[email protected]" #邮箱设置 smtp_host: smtp.126.com smtp_port: 465 smtp_ssl: true smtp_auth_file: /opt/elastalert/data/email_auth.yaml from_addr: [email protected] ## 自定邮件格式 alert_subject: "{0} message告警" # alert_subject_args: - host alert_text_type: alert_text_only # alert_text: " 主机ip: {} \n message: {} \n 发生时间UTC: {} \n id: {} \n index: {} \n num_hits: {} \n num_matches: {} " alert_text_args: - host - message - "@timestamp" - _id - _index - num_hits - num_matches
smtp_auth_file:该参数指定了邮箱登录的认证文件
vim /opt/elastalert/data/email_auth.yaml
user: "[email protected]"
passowrd: "password"
四、测试效果
echo "`date +%b" "%d" "%T` oom" >> /var/log/message
静等几分钟,查看[email protected] 是否收到告警邮件
标签:opt,ELK,message,elastalert,Elastaler2,alert,告警,elastalert2,es From: https://www.cnblogs.com/editlife/p/17361568.html