夜莺监控 Nightingale 发布了 v7.7 版本,这是 v7 系列的最后一个版本,保守主义者可以放心上车了,v7.7 主要是做了一些小修小改,增强了使用体验,下周开始,启动 v8 版本的开发。v8 版本会更让人激动,会重构通知逻辑,支持 ElasticSearch、ClickHouse 等数据源的告警,另外机器告警策略也会和业务组联动,更多功能敬请期待。

v7.7 主要变更

  • feat: 告警规则数据源筛选,支持反选和模糊匹配
  • feat: 告警规则查询条件支持设置 “单位”
  • feat: 告警规则支持 “覆盖全局回调” 设置
  • feat: 告警规则 Prometheus 源数据源预览添加 Step 设置
  • refactor: 仪表盘详情页添加返回仪表盘列表链接
  • refactor: tdengine 数据源,兼容 v2 版本
  • fix: 修复仪表盘 Elasticsearch 源 legend 模板不支持变量名包含字符 “.” 的问题
  • fix: edge 模块,机器失联告警,标签丢失问题
  • doc: 告警规则告警级别名称优化
  • doc: 增加 Doris 仪表盘和告警模板

v7 大版本重要变更如下

  • 全站暗黑主题
  • 新增指标视图,内置上百个 promql,无需手写 promql 即可方便地查看监控数据
  • 新增模版中心,支持创建和修改模板,模版可以在一个地方集中维护和查看
  • 机器支持了绑定到多个业务组,机器混部的场景,管理机器更加方便了
  • 优化边缘机房机器失联告警的实现逻辑,真正做到边缘机房告警自闭环
  • 通知时支持配置过滤标签,避免告警事件中一堆不重要的标签
  • 全局回调地址页面展示优化,增加详尽的文档提示信息
  • 支持通过回调地址直接发送告警信息到钉钉、飞书、企微等
  • 内置集成故障自愈能力,不需要再单独部署 ibex 模块
  • 仪表盘变量支持和本业务组的机器联动,不同业务组组下的仪表盘只展示本业务组内的机器
  • 机器列表和指标视图打通,可以选择多台机器直接看图,无需任何提前配置
  • 告警规则,支持配置恢复时的 Promql,告警恢复通知也可以带上恢复时的值了
  • 支持通过回调地址直接发送告警信息到钉钉、飞书、企微等
  • 支持集成仪表盘,可以将 grafana 的仪表盘集成到夜莺中

升级方法

v7 小版本升级直接替换二进制和 integrations 目录即可,如果用的镜像,就要拉取最新镜像了。v7.7 涉及 edge 模块变更,所以如果你用了 n9e-edge,记得 n9e-edge 也要升级。

近期数据库变更统一放 这里 了,正常来讲如果你在夜莺里用的 DB 账号可以创建修改表结构就不用操心了,如果你的 DB 账号没法修改表结构,可以根据这个 migrate.sql 文件手动执行一下。

夜莺项目介绍

夜莺监控最早是 2020 年由滴滴开源,后来捐赠给中国计算机学会,托管在学会开源发展委员会运作。夜莺监控侧重点在监控,可以支持不同的数据源,用一套 UI 管理多个数据源的告警规则,支持多种通知方式。当然,夜莺也内置了可视化能力,内置了各类组件的告警规则和仪表盘模板。

夜莺 v7.7 版本安装测试

这里我使用 Docker 来安装测试,从 https://flashcat.cloud/download/nightingale/ 下载 7.7 版本的发布包,解压后,进入目录 docker/compose-bridge,执行以下命令:

docker compose up -d
注意:如果你的机器上之前拉取过夜莺的镜像,需要再重新 pull 一下,因为镜像有更新。待 docker compose 把所有容器拉起来,使用浏览器访问该机器的 17000 端口即可看到夜莺的 UI,使用 root / root.2020 登录,登录之后第一件事情,记得修改密码。

由于夜莺是对接多种数据源的模式,所以要把想要监控的数据源接入进来。使用 Docker compose 启动的话,默认会启动一个 VictoriaMetrics,所以这里我们先接入此数据源,菜单入口在 集成中心 - 数据源

集成中心 - 数据源

点击【新增】按钮,选择 Prometheus Like 数据源,所有和 Prometheus 兼容的数据源都选择 Prometheus Like 类型,然后填写数据源的名称和地址即可,其他的配置项可以留待以后再研究:

VictoriaMetrics

注意这里的 VictoriaMetrics 的 URL,写的是 http://victoriametrics:8428,因为是在容器里的嘛。完事就可以查看数据了。我们先到即时查询页面看看数据能否查到:

即时查询

看起来没问题的。

默认情况下,Docker compose 会拉起一个 categraf 的镜像作为采集器,所以可以采集到一些监控数据。你的环境的话应该只会看到一台机器的数据,我的环境可以看到两条是因为我还部署了另一个 categraf。到机器列表页面可以很明显看到:

机器列表

接下来我们导入一个仪表盘看看,进入仪表盘列表页面,选择左侧的某个业务组(我这里选择默认的 Default Busi Group),点击右上角的【导入】按钮:

导入 Linux 仪表盘

我这里选择导入机器相关的仪表盘,所以选择 Linux 类别,然后把所有仪表盘都导入进来,有些仪表盘不适用 Categraf 采集器,没关系,挨个点点看看哪个好使就用哪个。

categraf linux 仪表盘

比较齐全的是 Linux Host by Categraf v2 这个仪表盘。通过这个仪表盘你可以看到时序库中的所有机器。有些人会说,我只想看到自己业务组下的机器怎么搞?比如我这个环境里有两个机器,我把这两个机器分别挂到不同的业务组下:

机器归到不同业务组

之后,我们重新进入仪表盘页面,在不同业务组下分别打开:“机器常用指标”这个仪表盘,这个仪表盘只能看到当前业务组下的机器:

机器常用指标

OK,我们再试试导入一批告警规则,进入告警规则页面,点击右上角的【导入】按钮:

导入Linux告警规则

导入 Linux 类别下的常用告警规则。导入的时候要选择生效到哪些数据源,我这里只有一个数据源,就选择所有数据源了。可以先不启用,等以后有需要再启用。

最后我们搞一个钉钉机器人:

钉钉机器人

使用关键字作为认证机制,关键字写 20,因为告警消息中一定会有时间的,所以用 20 一定可以验证通过。批量选中刚才导入的告警规则,更新告警规则:

更新告警规则

批量更新回调地址

批量更新所有告警规则的回调地址,塞入钉钉机器人的 webhook 地址。这样之后,后面这些告警规则如果触发了告警,就会发送到钉钉机器人了。

最后,批量更新告警规则,启用:

批量启动用

之后如果有哪个规则触发了,就会发告警到钉钉了,当然,你为了快速体验,也可以手工修改某个告警规则的阈值,让它尽快触发。就可以看到效果了。

钉钉告警

更多功能探索,请参考 夜莺官方文档


SRETALK
14 声望13 粉丝

关注 SRE、可观测性、开源商业化