夜莺的机器支持挂载到多个业务组了

夜莺 v7.4.1 发布:机器支持绑定多个业务组,左侧业务组 UI 重新设计,机器标签拆分为机器标签和用户标签,并支持通过 iframe 导入 Grafana 仪表盘链接。

作者 Nightingale

夜莺开源项目在国庆前夕发布 v7.4.1 版本。这个版本修复了一些 bug,也带来几个对日常使用影响较大的新功能,其中最重要的是:机器支持挂载到多个业务组。

对机器混部、跨团队共用主机、既想按标签管理又想按业务组管理资产的团队来说,这个能力会明显降低机器归属和权限管理的复杂度。

核心要点

  • v7.4.1 支持机器绑定到多个业务组,更适合机器混部场景。
  • 左侧业务组树形结构重新设计,业务组选择更清晰。
  • 机器标签拆分为“机器标签”和“用户标签”,区分 Categraf 上报标签和人工维护标签。
  • 告警规则支持导出到 CSV,便于审计和批量检查。
  • 仪表盘支持导入 Grafana 仪表盘链接,通过 iframe 展示已有 Grafana 大盘。
  • Grafana 内嵌展示依赖 Grafana 的 allow_embedding = true 配置。

v7.4.1 变更清单

  • feat: 左侧栏业务组新设计
  • feat: 机器支持了绑定到多个业务组,机器混部的场景,管理机器更加方便了
  • feat: 告警规则支持导出到 csv
  • feat: 仪表盘支持导入 “Grafana 仪表盘链接”
  • feat: 仪表盘指标图支持 overrides 设置
  • feat: 仪表盘时序图图例右侧位置展示时宽度自适应
  • feat: 仪表盘排行榜图新增 topn 功能
  • refactor: 仪表盘 Elasticsearch 源支持自动计算时间间隔,查询原始日志内容时支持设置时间格式
  • refactor: 仪表盘数据源类型变量支持搜索
  • refactor: 仪表盘匿名访问可选择主题色
  • refactor: 业务组编辑表单去除 “英文标识” 设置项
  • refactor: 机器列表原标签拆分成 “机器标签” 和 “用户标签”
  • refactor: 告警规则中的回调地址和全局回调重复,不再重复发送回调通知
  • fix: 订阅规则,修改附加标签,没有及时生效问题
  • fix: 飞书通知,在大量通知场景下,信息内容错乱问题
  • fix: 快捷视图和指标视图的 promql 特殊字符转义处理
  • fix: 仪表盘图表的值格式化没有做默认的单位和小数点保留位数处理
  • fix: redis 配置中存在重复字段,导致 UseTLS 不生效问题

机器管理功能更新

夜莺监控机器管理功能

如上图所示,机器管理这次有三个关键变化:

编号 变化 影响
业务组树形结构重新设计 左侧业务组更清晰,选择和切换更直观
机器支持绑定到多个业务组 适合机器混部、跨团队共享主机等场景
标签拆分为机器标签和用户标签 区分 Agent 上报标签和页面人工维护标签

原本只有标签机制时,如果一台机器同时混部了 a 服务和 b 服务,很容易想打上 service=aservice=b。但同一个 key 的标签只能有一个,这种表达方式做不到。现在支持机器绑定到多个业务组,可以在一定程度上缓解这类机器归属问题。

标签拆分也很重要。“机器标签”来自 Categraf 上报,也就是在 Categraf config.toml 中配置的 global.labels 部分,原则上以采集端上报为准,不在页面编辑;“用户标签”是用户在夜莺页面上给机器打的标签,可以在页面维护。

目前你可能还看不到“机器标签”的内容,因为还需要 Categraf 支持在心跳时上报标签,预计 Categraf v0.3.80 版本会支持。

为什么要支持机器挂载多个业务组

机器支持挂到多个业务组,是一个关键产品决策。

如果完全按照 Prometheus 生态的思考方式,一切都应该由标签表达;如果按照 Zabbix 的资产管理思路,机器属于一个或多个分组又很自然。夜莺用户里两类使用习惯都存在:有的团队重度使用标签,有的团队更习惯按业务组和资产归属管理。

这次选择把能力给到用户:团队可以自行决定是重度使用标签分类,还是使用业务组分类,或者两者结合。

后续告警规则也应该配套相关设计。机器筛选不应只支持标签,也应该支持按业务组筛选,这样机器归属、规则筛选和告警管理才能形成闭环。具体设计还在讨论中。

仪表盘支持导入 Grafana 仪表盘链接

这个设计也需要重点说明。

很多团队已经使用 Grafana,图表也沉淀在 Grafana 中。如果把所有仪表盘都迁移到夜莺,可能会遇到兼容性和使用习惯问题。但夜莺又管理了人员权限、告警规则、告警事件和一些内置仪表盘,用户自然会希望夜莺成为统一平台入口。

之前我们尝试让大家直接把 Grafana 仪表盘 JSON 导入夜莺,但两个产品并不能 100% 兼容,直接导入 JSON 的效果并不理想。这次换了一个思路:支持把 Grafana 分享出来的仪表盘链接配置到夜莺里,然后夜莺通过 iframe 方式展示 Grafana 仪表盘。

1. 复制 Grafana 仪表盘链接

在 Grafana 的仪表盘页面,点击分享按钮:

Grafana分享仪表盘

在打开的分享设置弹层中,拷贝 URL:

Grafana分享仪表盘-Link方式

2. 在夜莺中导入链接

进入夜莺仪表盘列表页面,选择左侧某个业务组,然后找到右上角的导入按钮:

夜莺导入 Grafana 仪表盘

点击「导入」后选择第二个 tab,导入 Grafana 仪表盘链接。给仪表盘取个名字,然后填入 Grafana 仪表盘链接:

导入Grafana仪表盘表单

最终效果如下:

Grafana仪表盘在夜莺中展示效果

注意:如果导入仪表盘后无法展示,很可能是 Grafana 不允许外部系统通过 iframe 内嵌。此时需要在 Grafana 配置文件中配置 allow_embedding = true,然后重启 Grafana 服务。一般可以在 Grafana 的 defaults.ini 中搜索 allow_embedding 找到相关配置。

这种方式不只适用于 Grafana 仪表盘。只要是 iframe 可以展示的其他监控系统 URL,也可以导入到夜莺中。

FAQ

Q1: 机器绑定多个业务组和标签管理冲突吗? A: 不冲突。标签适合表达机器属性,业务组适合表达组织、权限和业务归属。两者可以结合使用。

Q2: 为什么 Grafana 仪表盘不直接导入 JSON? A: 夜莺和 Grafana 是两个产品,面板和配置无法 100% 兼容。通过链接和 iframe 展示,可以保留原有 Grafana 大盘,降低迁移成本。

Q3: 导入 Grafana 链接后页面空白怎么办? A: 先检查 Grafana 是否允许 iframe 内嵌,必要时配置 allow_embedding = true 并重启 Grafana。

小结

v7.4.1 的重点不是单个 UI 调整,而是让夜莺在资产管理和平台集成上更贴近真实使用场景。机器可挂载多个业务组,解决混部和跨团队管理问题;Grafana 仪表盘链接导入,让夜莺可以作为统一入口承接已有 Grafana 资产。

其他变更点可以前往夜莺下载中心下载 v7.4.1 版本体验。如果遇到问题,可以到夜莺 github 提 issue。

联系我们交流

延伸路径

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

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

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