夜莺 v7 最终版来了,可以上车了

夜莺 v7.7 是 v7 系列最后一个版本,包含告警规则数据源筛选、恢复回调、Prometheus 预览 Step、tdengine 兼容、edge 标签修复等改进,并附 Docker 安装测试步骤。

作者 Nightingale

核心要点

  • 夜莺监控 Nightingale v7.7 是 v7 系列的最后一个版本,适合希望等待稳定版本后再升级的用户。
  • v7.7 主要做体验增强和问题修复,包括告警规则筛选、回调设置、Prometheus 预览 Step、tdengine 兼容和 edge 标签修复。
  • v7 小版本升级通常替换二进制和 integrations 目录即可;使用镜像的用户需要拉取最新镜像。
  • 如果使用了 n9e-edge,这次升级也要同步升级 n9e-edge。
  • 文末保留 Docker compose 安装测试流程,适合快速验证 v7.7 的数据源、仪表盘和告警规则。

夜莺监控 Nightingale 发布了 v7.7 版本。这是 v7 系列的最后一个版本,保守主义者可以放心上车了。v7.7 主要是小修小改,增强使用体验;从下周开始,项目会启动 v8 版本开发。

v8 版本会做更大的调整,包括重构通知逻辑、支持 ElasticSearch 和 ClickHouse 等数据源告警、让机器告警策略与业务组联动等。本文重点仍然放在 v7.7:它改了什么、怎么升级、如何用 Docker 快速测试。

v7.7 主要变更

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

这些变化表明 v7.7 的目标不是引入全新产品方向,而是把 v7 已有能力继续打磨稳定。对生产环境来说,这类版本通常比大功能版本更适合做阶段性落地。

v7 大版本重要变化回顾

v7 系列的重要更新可以概括为三条主线:界面体验、开箱即用和告警链路增强。

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

升级方法

v7 小版本升级直接替换二进制和 integrations 目录即可。如果使用镜像,就需要拉取最新镜像。

v7.7 涉及 edge 模块变更,所以如果你使用了 n9e-edge,也要同步升级 n9e-edge。

近期数据库变更统一放在 migrate.sql。正常情况下,如果夜莺使用的 DB 账号具备创建和修改表结构的权限,就不需要额外处理;如果 DB 账号没有修改表结构权限,需要参考这个 migrate.sql 文件手动执行。

夜莺项目介绍

夜莺监控最早由滴滴于 2020 年开源,后来捐赠给中国计算机学会,托管在学会开源发展委员会运作。夜莺监控的侧重点是监控告警:可以支持不同数据源,用一套 UI 管理多个数据源的告警规则,并支持多种通知方式。

夜莺也内置了可视化能力,并提供各类组件的告警规则和仪表盘模板。对已有 Prometheus 兼容时序库、Categraf 采集器或 Grafana 仪表盘资产的团队来说,夜莺可以作为统一告警和监控管理入口。

使用 Docker 测试夜莺 v7.7

下面使用 Docker 安装测试 v7.7。先从 https://flashcat.cloud/download/nightingale/ 下载 7.7 版本发布包,解压后进入 docker/compose-bridge 目录,执行:

docker compose up -d

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

接入 VictoriaMetrics 数据源

夜莺是对接多种数据源的模式,所以要把想监控的数据源接入进来。使用 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 这个仪表盘。通过这个仪表盘可以看到时序库中的所有机器。

如果只想看到自己业务组下的机器,可以把机器挂到不同业务组下:

机器归到不同业务组

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

机器常用指标

导入告警规则并配置通知

进入告警规则页面,点击右上角【导入】按钮:

导入Linux告警规则

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

最后配置一个钉钉机器人:

钉钉机器人

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

更新告警规则

批量更新回调地址

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

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

批量启动用

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

钉钉告警

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

FAQ

Q1:v7.7 为什么适合保守用户升级? A:因为它是 v7 系列最后一个版本,主要以小修小改、体验增强和问题修复为主,适合希望等待 v7 稳定后再升级的用户。

Q2:v7.7 升级时一定要改数据库吗? A:不一定。如果夜莺使用的 DB 账号有建表、改表权限,通常会自动处理表结构;如果没有权限,需要参考 migrate.sql 手动执行。

Q3:用了 n9e-edge 需要单独处理吗? A:需要。v7.7 涉及 edge 模块变更,使用 n9e-edge 的环境也要同步升级。

联系我们交流

延伸路径

继续看解决方案和产品对比

如果你正在做监控、可观测性或故障定位相关选型,建议从解决方案和产品对比继续往下看。

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云