专栏名称: GoCN
最具规模和生命力的 Go 开发者社区
目录
相关文章推荐
宁德广播电视台  ·  出行请注意!宁德这条路将封闭施工 ·  2 天前  
51好读  ›  专栏  ›  GoCN

夜莺监控支持 ES 日志告警了

GoCN  · 公众号  ·  · 2025-01-16 08:00

正文

夜莺项目( https://github.com/ccfos/nightingale )发布了 v8.0.0-beta.3 版本,这个版本主要是支持了 ES 日志告警,下面给大家介绍一下。

新版本下载

到如下地址下载发布包:

  • https://github.com/ccfos/nightingale/releases/tag/v8.0.0-beta.3

由于夜莺 v8 版本默认配置使用 sqlite 和 miniredis,不再强依赖 mysql、redis,所以解压缩发布包到一个临时目录下,直接运行二进制即可启动测试。当然了,生产环境还是要使用 mysql、redis。

配置 ES 数据源

首先添加一个 ElasticSearch 数据源,进入「数据源」菜单,点击「新增」,选择 ElasticSearch 类别:

在新建 ElasticSearch 数据源页面,填写 ElasticSearch 的连接地址、认证信息、版本、关联的告警引擎等信息。

关联的告警引擎默认是 default,如果你们使用了边缘机房部署架构,有多个告警引擎,可以选择其他告警引擎。一般来讲为了避免跨机房查询,最好选择数据源所在机房的告警引擎。

配置告警规则

进入告警规则配置页面,选中某个业务组,点击新增:

选择 Log 类型,截图如下:

几个关键配置解释如下:

  • 数据源类型:选择 elasticsearch

  • 数据源筛选:告警规则生效到哪些数据源,大部分公司都有多套 ES,可以选择让告警规则生效到一个或多个 ES 数据源

  • 查询统计:编写查询过滤条件,夜莺就会根据这些配置生成查询语句,然后去 ES 查询,查到之后再根据告警条件判定是否触发阈值

    • 索引:就是指定 ES 索引,可以写通配符,比如 logstash-*

    • 过滤条件:就是 ES 的 query string 查询语法,注意不是 KQL 语法。一些查询样例见 文档 📌

    • 日期字段:夜莺根据日期字段来做时间范围查询,比如 @timestamp

    • 时间间隔:就是告警规则查询的时间范围,比如查询最近 5m 的日志

    • 数值提取:对查询结果进行数值提取,比如使用 count 统计一下查到了几行日志,作为查询结果最终的数值和后面的告警条件做阈值判定。除了 count 之外,还可以使用 sum、avg、max、min 等统计函数,统计函数自然是对某个字段做统计,所以选择统计函数的时候要同时给出要统计的字段名

  • 告警条件:对查询统计结果进行阈值判定,如果满足条件就触发告警







请到「今天看啥」查看全文