当前位置: 首页 > news >正文

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/rulesrun_every:seconds: 10buffer_time:minutes: 15es_host: localhost
es_port: 9200
es_username: XXXXX
es_password: XXXXX
use_ssl: True
verify_certs: False writeback_index: elastalert_statusalert_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__.pydocker 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: 50use_strftime_index: truefilter:
- 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


 

http://www.dtcms.com/a/297972.html

相关文章:

  • 三、操作系统——第2章:CPU
  • 数学专业转型大数据发展指南
  • Linux网络框架分析
  • 用毫秒级视频回传打造稳定操控闭环之远程平衡控制系统技术实践
  • Qt 多媒体开发:音频与视频处理
  • DNS 协议
  • 服务器安装虚拟机全步骤
  • MRDIMM对服务器总体拥有成本(TCO)影响的系统性分析
  • Oracle不完全恢复实战指南:从原理到操作详解
  • OpenCV 图像变换全解析:从镜像翻转到仿射变换的实践指南
  • Undertow 可观测性最佳实践
  • 医疗器械:DFEMA和PFEMA
  • 【嵌入式汇编基础】-ARM架构基础(二)
  • 锁相环技术简介(面向储能变流器应用)
  • 从Taro的Dialog.open出发,学习远程控制组件之【事件驱动】
  • Langchain学习——PromptTemplate
  • Class21卷积层的多输入通道和多输出通道
  • 基于纳米流体强化的切割液性能提升与晶圆 TTV 均匀性控制
  • 轻量级音乐元数据编辑器Metadata Remote
  • [NPUCTF2020]ReadlezPHP
  • iOS —— 天气预报仿写总结
  • SQL164 2021年11月每天新用户的次日留存率
  • ReAct Agent(LangGraph实现)
  • 去除视频字幕 2, 使用 PaddleOCR 选取图片中的字幕区域, 根据像素大小 + 形状轮廓
  • MCP 与传统集成方案深度对决:REST API、GraphQL、gRPC 全方位技术解析
  • react 内置hooks 详细使用场景,使用案例
  • 轮盘赌算法
  • Python爬虫实战:研究Talon相关技术构建电商爬虫系统
  • ZLMediaKit 源代码入门
  • Java排序算法之<选择排序>