项目地址
https://github.com/AutohomeCorp/frostmourne
✨ 主要功能
-
只需要写一条数据查询就可以轻松搞定监控
-
多种数据源支持:
Elasticsearch, HTTP, SkyWalking, Prometheus, InfluxDB, MySQL/TiDb, ClickHouse, PING, IotDB, Telnet -
数值计算类型监控:
count, min, max, avg, sum, unique count, percentiles, standard deviation;Elasticsearch数据支持分桶 -
多种报警消息发送方式:钉钉(机器人)、企业微信(机器人)、飞书机器人、Email 、短信、HTTP
-
多种消息格式:
text, markdown -
灵活的报警消息
Freemarker模板定制,支持变量占位符;消息模板管理 -
分布式调度实现,每个监控都是独立调度,互不影响
-
报警消息附带日志查询短链接,直达报警原因
-
数值同比,环比监控
-
HTTP数据监控,Javascript表达式判断是否报警;PING连通监控,Telnet端口连通监控 -
前端简单易用:监控管理、测试、另存、执行日志和历史消息
-
Elasticsearch数据查询、分享和下载 -
报警消息抑制功能,防止消息轰炸;也有报警升级功能,避免故障相关方长时间得不到通知。
-
自带账号,团队,部门信息管理模块,也可自己实现内部对接
-
集成
LDAP登录认证 -
权限控制,数据隔离,各团队互不影响
消息效果截图:
Elasticsearch数据监控指南
下面以程序日志错误监控为例子,说明创建一个Elasticsearch监控的过程
1. 添加Elasticsearch数据源
打开页面:数据管理->数据源,点击新增按钮,弹出窗口,填写字段并保存。
其中服务地址填写 Elasticsearch 服务的地址,如果有多个用英文逗号分隔。其中服务地址格式为: ${ip}:${port}, 注意 不需要带 scheme ,举个栗子:127.0.0.1:80,127.0.0.2:80
- 注意服务地址端口不能缺省,就算是 80 端口也需要加上, 而且不能带 scheme( http, https)
- es 开启 http-ssl 认证时,需要上传
.p12扩展名 ssl 证书以及证书密码,如:elastic-certificates.p12
2. 添加Elasticsearch数据名
打开页面:数据管理 -> 数据名,点击新增按钮,弹出窗口,填写字段并保存。
数据名在Elasticsearch场景可以理解为索引模式,之所以不直接用索引,是因为项目计划不只支持Elasticsearch,还会
支持influxdb等其它数据源类型。索引后缀如果不是标准的时间模式或者单位小于天的时间模式,可以用*号。
其中显示字段可以配置数据查询页面列表表头显示的字段和顺序
3. 验证查询
添加完数据名,打开数据查询页面。下拉选择刚才保存的数据名,点击查询。如果查出来数据和你的索引数据对上了,说明数据信息都 填写正确了。
- 查询语句输入框会有历史查询记忆功能,用起来很方便。
- 数据表格第一列是一个展开箭头,可以展开数据查看完整的日志内容。
- 数据可以下载,文件格式为
csv,限制在 10w 条以内 - 点击分享按钮,查询还可以以短链接的形式分享给其他人
- 如果你想用当前查询语句创建监控,直接点击添加监控按钮,就会直接带到监控创建页面
这些小功能可以说相当贴心了。
4. 添加监控
打开页面:监控管理->监控编辑。填入信息并保存,保存前可以先进行测试。
查询语句如下,表示查询项目dbtree的错误日志
Team: dealer.arch AND Project: dbtree AND Level: ERROR
报警规则填写
表示最近 5 分钟查出来的日志数量大于 1 就报警
消息模板填写
以我们的日志格式为例,我们定制的消息模板为:
${Project}最近${TIME_WINDOW}分钟内有异常日志${NUMBER}条。最近一条异常信息:
服务器 IP: ${ServerIP}
异常类型: ${ExceptionType}
自定义信息: ${CustomMessage}
异常信息: ${ExceptionMessage}
注意:使用者需要根据自己的日志格式指定消息模板,不能直接套用我们的,因为大家日志格式都不一样。关于消息模板如何定制,请看文档:消息模板配置
5. 运行试试
保存成功后,就可以运行一下试试看了。打开页面:监控管理->监控列表。
点击运行按钮,就会弹出运行结果,如果产生报警的话,还会根据你配置的发送方式收到报警消息。我们的消息大概是这样子:
监控每次运行都会产生一条执行日志,在页面监控管理->执行日志。能看到所有监控的执行日志。如果产生了报警发送,还会产生 消息发送记录,在页面监控管理->我的消息。可以看到所有发送给你的消息。