夜莺开源项目在国庆前夕发布 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=a 和 service=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 的仪表盘页面,点击分享按钮:

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

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

点击「导入」后选择第二个 tab,导入 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 资产。
