ElastAlert通过飞书机器人发送报警通知

前言

公司采用ELK架构搜集业务系统的运行日志,只有在业务出现问题的时候,才会去kibana上进行日志搜索操作,每次都是被用户告知系统出问题了,这简直是被啪啪打脸~

重新build ElastAlert2镜像

由于官方的镜像中不包含飞书通知方式,因此需要重新拉取镜像和elastalert-feishu-plugin源码

源码下载地址:

复制代码
https://github.com/jmucaicai/elastalert-feishu-plugin

拉取elastalert2

复制代码
docker pull docker.1ms.run/jertel/elastalert2

配置elastalert.yaml

复制代码
rules_folder: /opt/elastalert/rules

run_every:
  seconds: 10

buffer_time:
  minutes: 15

es_host: localhost
es_port: 9200
es_username: XXXXX
es_password: XXXXX
use_ssl: True
verify_certs: False 

writeback_index: elastalert_status

alert_time_limit:
  days: 2

启动容器

复制代码
docker run --net=host -d --name elastalert --restart=always -v $(pwd)/elastalert.yaml:/opt/elastalert/config.yaml -v $(pwd)/rules:/opt/elastalert/rules  -v /etc/localtime:/etc/localtime elastalert2 --verbose

启动后,将elastalert-feishu-plugin目录里面的两个文件复制到容器里面

复制代码
docker cp __init__.py elastalert:/usr/local/lib/python3.13/site-packages/elastalert/elastalert_modules/__init__.py

docker cp feishu_alert.py elastalert:/usr/local/lib/python3.13/site-packages/elastalert/elastalert_modules/feishu_alert.py

创建新镜像后,再去执行容器的启动命令

复制代码
docker commit elastalert elastalert2:latest

配置预警规则

在当前目录创建一个rules目录,并配置一个yaml文件。配置重启容器即可

复制代码
name: "sms-error-rule"
type: "any"            # 有多种类型,不同的类型配置项有不同
index: "sms-errorlog-*"
is_enabled: true

# 时间触发的次数
# num_events: 1

# 和num_events参数关联,1分钟内出现1次会报警
# timeframe:
#   minutes: 1

# 同一规则的两次警报之间的最短时间。在此时间内发生的任何警报都将被丢弃。默认值为一分钟。
# realert:
#   minutes: 0

# terms_size: 50

use_strftime_index: true

filter:
- query:
    query_string:
      query: "message : 'SMS9999"   # 错误级别是ERROR并且msg字段包含java开头Exception结尾的内容就匹配成功,elastalert就会推送报警
      
include: ["@timestamp", "_index", "host.name", "LogLevel", "message"]  # 这里是es索引中的字段,下边报警模板会使用

alert:
  - "elastalert.elastalert_modules.feishu_alert.FeishuAlert"

# 飞书机器人接口地址
feishualert_url: "https://open.feishu.cn/open-apis/bot/v2/hook/"
# 飞书机器人id
feishualert_botid: "xxxxxxxxxxxxx7"

# 告警标题
feishualert_title: "重发禁止时间段内走非95通道下发"

# 这个时间段内的匹配将不告警,适用于某些时间段请求低谷避免误报警
# feishualert_skip:
#   start: "01:00:00"
#   end: "08:00:00"

# 告警内容,使用{}可匹配matches
feishualert_body:
  "
  【告警主机】:  {host.name}\n
  【告警主题】:  {feishualert_title}\n
  【总请求数】:  {num_hits}\n
  【告警时间】:  {feishualert_time}\n
  【业务索引】:  {_index}\n
  【时间戳】:  {@timestamp}\n
  【日志级别】:  {LogLevel}\n
  【错误日志】:  {message}
  "

参考链接:https://blog.csdn.net/qq_22917163/article/details/132168407
参考链接:https://github.com/jertel/elastalert2

相关推荐
zkk95272 小时前
【机器人感知运控笔记一】从点云到避障:距离场的构建、查询与梯度
机器人·具身智能·sdf·esdf
XMAIPC_Robot4 小时前
-40~85℃宽温实测:RK3588 机器人控制器硬件底座,长时间 SLAM 定位稳定性验证
人工智能·fpga开发·机器人·边缘计算·arm+fpga·rk3588+fpga
绿蕉5 小时前
谁在阻碍机器人连续跑300天?——被遗忘的“工程一致性“与“故障漂移“
机器人
数智奔流5 小时前
OpenAI健康板块负责人:AI医疗健康的上限和下限
机器人·具身智能·禾赛
绿蕉6 小时前
从硬件内卷到“中间件荒“——仿真工具、开发接口、开源生态
中间件·机器人
TMT星球6 小时前
云从科技训推一体化平台入选重庆市智能机器人产业链公共服务平台
人工智能·科技·机器人
大江东去浪淘尽千古风流人物7 小时前
【FLORA】机器人视频标注引擎解析:三模型如何产出动作指令与四类奖励信号
matlab·机器人·跨模态·遥感·图像匹配·1024程序员节·特征描述符
猫先生Mr.Mao7 小时前
让动作先接受“未来检验”:ThinkWorld 如何用世界想象强化机器人推理
机器人·强化学习·具身智能·vla·世界模型·thinkworld
zerwave8 小时前
从慢订阅者到发布者:LiteBus 如何用 Unix Socket 背压保护可靠 Topic
网络·机器人·unix
AI数据标注猿8 小时前
开源视觉数据工具FiftyOne最新版本:标注工具开始“读懂机器人”
机器人