V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tsingke
V2EX  ›  程序员

开源日志监控平台 0.8-RELEASE 发布, v 友们帮忙提提建议

  •  1
     
  •   tsingke · 2022-06-10 22:04:28 +08:00 · 1407 次点击
    这是一个创建于 908 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址

    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. 运行试试

    保存成功后,就可以运行一下试试看了。打开页面:监控管理->监控列表。

    点击运行按钮,就会弹出运行结果,如果产生报警的话,还会根据你配置的发送方式收到报警消息。我们的消息大概是这样子:

    监控每次运行都会产生一条执行日志,在页面监控管理->执行日志。能看到所有监控的执行日志。如果产生了报警发送,还会产生 消息发送记录,在页面监控管理->我的消息。可以看到所有发送给你的消息。

    1 条回复    2022-06-11 23:59:59 +08:00
    cuixiao603
        1
    cuixiao603  
       2022-06-11 23:59:59 +08:00
    支持一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5838 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 02:43 · PVG 10:43 · LAX 18:43 · JFK 21:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.