Nightingale下载
版本选择
ChangeLog
What’s Changed
- 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 不生效问题
v7 主要更新点
- 全站暗黑主题
- 新增指标视图,内置上百个 promql,无需手写 promql 即可方便地查看监控数据
- 新增模版中心,支持创建和修改模板,模版可以在一个地方集中维护和查看
- 机器支持了绑定到多个业务组,机器混部的场景,管理机器更加方便了
- 优化边缘机房机器失联告警的实现逻辑,真正做到边缘机房告警自闭环
- 通知时支持配置过滤标签,避免告警事件中一堆不重要的标签
- 全局回调地址页面展示优化,增加详尽的文档提示信息
- 支持通过回调地址直接发送告警信息到钉钉、飞书、企微等
- 内置集成故障自愈能力,不需要再单独部署 ibex 模块
- 仪表盘变量支持和本业务组的机器联动,不同业务组组下的仪表盘只展示本业务组内的机器
- 机器列表和指标视图打通,可以选择多台机器直接看图,无需任何提前配置
- 告警规则,支持配置恢复时的 Promql,告警恢复通知也可以带上恢复时的值了
- 支持通过回调地址直接发送告警信息到钉钉、飞书、企微等
- 支持集成仪表盘,可以将 grafana 的仪表盘集成到夜莺中
升级步骤
替换二进制和 integrations 目录,重启即可。
表结构变更(所用的数据库连接账号具备建表权限的的可忽略)
夜莺会自动创建表结构,如果你的夜莺所用的数据库连接账号不具备建表权限,就需要手工建表了,建表语句见 https://github.com/ccfos/nightingale/blob/main/docker/migratesql/migrate.sql
注意事项
注意如果使用了 n9e-edge 或者 n9e-pushgw,需要和 n9e 一起升级
n9e-edge 配置调整
如果是从 v6 升级到 v7,v7版本的 n9e-edge 依赖了 redis,可以部署一个 redis 实例,然后在 etc/edge.toml 中增加下 redis 的配置
[Redis]
# address, ip:port or ip1:port,ip2:port for cluster and sentinel(SentinelAddrs)
Address = "127.0.0.1:6379"
# Username = ""
# Password = ""
# DB = 0
# UseTLS = false
# TLSMinVersion = "1.2"
# standalone cluster sentinel
RedisType = "standalone"
# Mastername for sentinel type
# MasterName = "mymaster"
# SentinelUsername = ""
# SentinelPassword = ""
迁移 ibex 服务(v7.0.0-beta.2 以后的版本可忽略,没使用 ibex 可忽略)
- 将 ibex 数据库中的数据,迁移到 n9e 的数据库, ${ibex} 为实际使用的ibex数据库名称, ${n9e_v6} 实际使用的夜莺的数据库名称
mysqldump -u username -p ${ibex} > ibex.sql
mysql -u root -p ${n9e_v6} < ibex.sql
- 修改 n9e 配置,启用 ibex 功能,将 enable 设置为 true
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
这里需要注意,如果使用了 n9e-edge,n9e-edge 也需要同步开启 ibex 开关,最新版本的 n9e-edge 需要依赖 redis,所以需要在边缘机房部署一个 redis 实例给 n9e-edge 使用,n9e-edge 的配置文件需要增加如下内容
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
[Redis]
Address = "127.0.0.1:6379"
# Password = ""
RedisType = "standalone"
-
重新启动 n9e
-
检查 n9e 启动端口,如果监听了2个端口 17000 和 20090,表示服务运行正常,已具备故障自愈能力
ss -tlnp|grep n9e
- 修改之前 categraf 使用的故障自愈服务端的 ip 和 port,重启 categraf。如果之前 ibex 和 n9e 部署在同一台机器,这里 categraf 配置可以不用修改
升级到企业版
What’s Changed
- feat: 告警事件通知内容中增加 Target 字段(机器详细信息)
- refactor: 业务组排序忽略大小写
- refactor: 告警规则支持批量更新"附加信息"
- refactor: 告警规则支持批量更新"告警条件"
- refactor: 模板中心用户创建的模板支持修改名称
- fix: 机器列表搜索框搜索报错问题
- fix: 模板中心修改模板名称之后,关联的模板丢失问题
v7 主要更新点
- 全站暗黑主题
- 新增指标视图,内置上百个 promql,无需手写 promql 即可方便地查看监控数据
- 新增模版中心,支持创建和修改模板,模版可以在一个地方集中维护和查看
- 优化边缘机房机器失联告警的实现逻辑,真正做到边缘机房告警自闭环
- 通知时支持配置过滤标签,避免告警事件中一堆不重要的标签
- 全局回调地址页面展示优化,增加详尽的文档提示信息
- 支持通过回调地址直接发送告警信息到钉钉、飞书、企微等
- 内置集成故障自愈能力,不需要再单独部署 ibex 模块
- 仪表盘变量支持和本业务组的机器联动,不同业务组组下的仪表盘只展示本业务组内的机器
- 机器列表和指标视图打通,可以选择多台机器直接看图,无需任何提前配置
- 告警规则,支持配置恢复时的 Promql,告警恢复通知也可以带上恢复时的值了
- 支持通过回调地址直接发送告警信息到钉钉、飞书、企微等
- 支持集成仪表盘,可以将 grafana 的仪表盘集成到夜莺中
升级步骤
替换二进制和 integrations 目录,重启即可。
表结构变更(所用的数据库连接账号具备建表权限的的可忽略)
夜莺会自动创建表结构,如果你的夜莺所用的数据库连接账号不具备建表权限,就需要手工建表了,建表语句见 https://github.com/ccfos/nightingale/blob/main/docker/migratesql/migrate.sql
n9e-edge 配置调整
如果是从 v6 升级到 v7,v7版本的 n9e-edge 依赖了 redis,可以部署一个 redis 实例,然后在 etc/edge.toml 中增加下 redis 的配置
[Redis]
# address, ip:port or ip1:port,ip2:port for cluster and sentinel(SentinelAddrs)
Address = "127.0.0.1:6379"
# Username = ""
# Password = ""
# DB = 0
# UseTLS = false
# TLSMinVersion = "1.2"
# standalone cluster sentinel
RedisType = "standalone"
# Mastername for sentinel type
# MasterName = "mymaster"
# SentinelUsername = ""
# SentinelPassword = ""
迁移 ibex 服务(v7.0.0-beta.2 以后的版本可忽略,没使用 ibex 可忽略)
- 将 ibex 数据库中的数据,迁移到 n9e 的数据库, ${ibex} 为实际使用的ibex数据库名称, ${n9e_v6} 实际使用的夜莺的数据库名称
mysqldump -u username -p ${ibex} > ibex.sql
mysql -u root -p ${n9e_v6} < ibex.sql
- 修改 n9e 配置,启用 ibex 功能,将 enable 设置为 true
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
这里需要注意,如果使用了 n9e-edge,n9e-edge 也需要同步开启 ibex 开关,最新版本的 n9e-edge 需要依赖 redis,所以需要在边缘机房部署一个 redis 实例给 n9e-edge 使用,n9e-edge 的配置文件需要增加如下内容
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
[Redis]
Address = "127.0.0.1:6379"
# Password = ""
RedisType = "standalone"
-
重新启动 n9e
-
检查 n9e 启动端口,如果监听了2个端口 17000 和 20090,表示服务运行正常,已具备故障自愈能力
ss -tlnp|grep n9e
- 修改之前 categraf 使用的故障自愈服务端的 ip 和 port,重启 categraf。如果之前 ibex 和 n9e 部署在同一台机器,这里 categraf 配置可以不用修改
升级到企业版
What’s Changed
- feat: 告警事件详情添加通知记录详情
- feat: 告警规则添加告警自愈设置
- refactor: 转义 host ident 类型变量值的特殊字符
- refactor: 仪表盘表格图数据条数超出上限后显示分页器
- refactor: Elasticsearch 的 index patterns 创建时支持不选择日期字段
- refactor: 优化 Elasticsearch 源日志查询渲染性能
- refactor: 转义 host ident 类型变量值的特殊字符
- refactor: 仪表盘表格图数据条数超出上限后显示分页器
- docs: 添加一些使用说明文档
- fix: 修复仪表盘多图表共享 tooltip 在某些角色下无效问题
- fix: 修复仪表盘 constant 类型变量修改值后模板替换没有使用最新值问题
v7 主要更新点
- 全站暗黑主题
- 新增指标视图,内置上百个 promql,无需手写 promql 即可方便地查看监控数据
- 新增模版中心,支持创建和修改模板,模版可以在一个地方集中维护和查看
- 优化边缘机房机器失联告警的实现逻辑,真正做到边缘机房告警自闭环
- 通知时支持配置过滤标签,避免告警事件中一堆不重要的标签
- 全局回调地址页面展示优化,增加详尽的文档提示信息
- 支持通过回调地址直接发送告警信息到钉钉、飞书、企微等
- 内置集成故障自愈能力,不需要再单独部署 ibex 模块
- 仪表盘变量支持和本业务组的机器联动,不同业务组组下的仪表盘只展示本业务组内的机器
- 机器列表和指标视图打通,可以选择多台机器直接看图,无需任何提前配置
- 告警规则,支持配置恢复时的 Promql,告警恢复通知也可以带上恢复时的值了
- 支持通过回调地址直接发送告警信息到钉钉、飞书、企微等
- 支持集成仪表盘,可以将 grafana 的仪表盘集成到夜莺中
升级步骤
替换二进制和 integrations 目录,重启即可。
表结构变更(所用的数据库连接账号具备建表权限的的可忽略)
夜莺会自动创建表结构,如果你的夜莺所用的数据库连接账号不具备建表权限,就需要手工建表了,建表语句见 https://github.com/ccfos/nightingale/blob/main/docker/migratesql/migrate.sql
n9e-edge 配置调整
如果是从 v6 升级到 v7,v7版本的 n9e-edge 依赖了 redis,可以部署一个 redis 实例,然后在 etc/edge.toml 中增加下 redis 的配置
[Redis]
# address, ip:port or ip1:port,ip2:port for cluster and sentinel(SentinelAddrs)
Address = "127.0.0.1:6379"
# Username = ""
# Password = ""
# DB = 0
# UseTLS = false
# TLSMinVersion = "1.2"
# standalone cluster sentinel
RedisType = "standalone"
# Mastername for sentinel type
# MasterName = "mymaster"
# SentinelUsername = ""
# SentinelPassword = ""
迁移 ibex 服务(v7.0.0-beta.2 以后的版本可忽略,没使用 ibex 可忽略)
- 将 ibex 数据库中的数据,迁移到 n9e 的数据库, ${ibex} 为实际使用的ibex数据库名称, ${n9e_v6} 实际使用的夜莺的数据库名称
mysqldump -u username -p ${ibex} > ibex.sql
mysql -u root -p ${n9e_v6} < ibex.sql
- 修改 n9e 配置,启用 ibex 功能,将 enable 设置为 true
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
这里需要注意,如果使用了 n9e-edge,n9e-edge 也需要同步开启 ibex 开关,最新版本的 n9e-edge 需要依赖 redis,所以需要在边缘机房部署一个 redis 实例给 n9e-edge 使用,n9e-edge 的配置文件需要增加如下内容
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
[Redis]
Address = "127.0.0.1:6379"
# Password = ""
RedisType = "standalone"
-
重新启动 n9e
-
检查 n9e 启动端口,如果监听了2个端口 17000 和 20090,表示服务运行正常,已具备故障自愈能力
ss -tlnp|grep n9e
- 修改之前 categraf 使用的故障自愈服务端的 ip 和 port,重启 categraf。如果之前 ibex 和 n9e 部署在同一台机器,这里 categraf 配置可以不用修改
升级到企业版
What’s Changed
- feat: 日志查询支持 KQL 模式,支持高亮显示匹配结果
- feat: Prometheus 即时查询新增 历史记录 功能
- feat: 记录规则支持 cron 表达式模式,可以指定每天定时执行,方便计算 SLO 指标
- feat: 仪表盘表格图新增 “单元格换行” 和 “表格布局” 设置项
- refactor: 即时查询和仪表盘图表的小数点后保留位数从默认 3 改成 6
- refactor: 告警规则添加 “级别” 列,默认不展示
- refactor: 用户密码相关的更新操作,支持加密处理
v7 主要更新点
- 全站暗黑主题
- 新增指标视图,内置上百个 promql,无需手写 promql 即可方便地查看监控数据
- 新增模版中心,支持创建和修改模板,模版可以在一个地方集中维护和查看
- 优化边缘机房机器失联告警的实现逻辑,真正做到边缘机房告警自闭环
- 全局回调地址页面展示优化,增加详尽的文档提示信息
- 支持通过回调地址直接发送告警信息到钉钉、飞书、企微等
- 内置集成故障自愈能力,不需要再单独部署 ibex 模块
- 仪表盘变量支持和本业务组的机器联动,不同业务组组下的仪表盘只展示本业务组内的机器
- 机器列表和指标视图打通,可以选择多台机器直接看图,无需任何提前配置
- 告警规则,支持配置恢复时的 Promql,告警恢复通知也可以带上恢复时的值了
- 支持通过回调地址直接发送告警信息到钉钉、飞书、企微等
- 支持集成仪表盘,可以将 grafana 的仪表盘集成到夜莺中
v7 近期计划
- 告警规则:通知时支持配置过滤标签,避免告警事件中一堆不重要的标签
- 机器管理:标签拆成 user_tags 和 host_tags,host_tags 直接使用 categraf global tags 覆盖
- 机器管理:机器支持角色字段,即无头标签,用于描述混部场景
- 机器管理:把业务组的 busigroup 标签迁移到机器的属性里,让机器支持挂到多个业务组
- 告警规则:增加 Host Metrics 类别,支持按照业务组、角色、标签等筛选机器,规则 promql 支持变量,支持在机器颗粒度配置变量值
- 告警通知:重构整个通知逻辑,引入事件处理的 pipeline,支持对告警事件做自定义处理和灵活分派
升级步骤
替换二进制和 integrations 目录,重启即可。
表结构变更(所用的数据库连接账号具备建表权限的的可忽略)
夜莺会自动创建表结构,如果你的夜莺所用的数据库连接账号不具备建表权限,就需要手工建表了,建表语句见 https://github.com/ccfos/nightingale/blob/main/docker/migratesql/migrate.sql
n9e-edge 配置调整
如果是从 v6 升级到 v7,v7版本的 n9e-edge 依赖了 redis,可以部署一个 redis 实例,然后在 etc/edge.toml 中增加下 redis 的配置
[Redis]
# address, ip:port or ip1:port,ip2:port for cluster and sentinel(SentinelAddrs)
Address = "127.0.0.1:6379"
# Username = ""
# Password = ""
# DB = 0
# UseTLS = false
# TLSMinVersion = "1.2"
# standalone cluster sentinel
RedisType = "standalone"
# Mastername for sentinel type
# MasterName = "mymaster"
# SentinelUsername = ""
# SentinelPassword = ""
迁移 ibex 服务(v7.0.0-beta.2 以后的版本可忽略,没使用 ibex 可忽略)
- 将 ibex 数据库中的数据,迁移到 n9e 的数据库, ${ibex} 为实际使用的ibex数据库名称, ${n9e_v6} 实际使用的夜莺的数据库名称
mysqldump -u username -p ${ibex} > ibex.sql
mysql -u root -p ${n9e_v6} < ibex.sql
- 修改 n9e 配置,启用 ibex 功能,将 enable 设置为 true
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
这里需要注意,如果使用了 n9e-edge,n9e-edge 也需要同步开启 ibex 开关,最新版本的 n9e-edge 需要依赖 redis,所以需要在边缘机房部署一个 redis 实例给 n9e-edge 使用,n9e-edge 的配置文件需要增加如下内容
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
[Redis]
Address = "127.0.0.1:6379"
# Password = ""
RedisType = "standalone"
-
重新启动 n9e
-
检查 n9e 启动端口,如果监听了2个端口 17000 和 20090,表示服务运行正常,已具备故障自愈能力
ss -tlnp|grep n9e
- 修改之前 categraf 使用的故障自愈服务端的 ip 和 port,重启 categraf。如果之前 ibex 和 n9e 部署在同一台机器,这里 categraf 配置可以不用修改
升级到专业版
- 将夜莺升级到 v7 版本
- 下载 专业版 安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
V7 和 V6 兼容,从 V6 最新版升级 V7 只需要替换二进制重启即可,如果是容器部署的,则更新镜像并重启容器即可。
What’s Changed
- feat: 支持集成仪表盘,支持将 grafana 的仪表盘集成到夜莺中
- feat: oidc 支持配置默认团队
- feat: 回调地址飞书卡片支持 at 指定人
- feat: 回调地址支持配置变量
- fix: 使用 postgres 作为数据库报错问题
v7 主要更新点
- 全站暗黑主题
- 新增指标视图,内置上百个 promql,无需手写 promql 即可方便地查看监控数据
- 新增模版中心,支持创建和修改模板,模版可以在一个地方集中维护和查看
- 优化边缘机房机器失联告警的实现逻辑,真正做到边缘机房告警自闭环
- 全局回调地址页面展示优化,增加详尽的文档提示信息
- 支持通过回调地址直接发送告警信息到钉钉、飞书、企微等
- 内置集成故障自愈能力,不需要再单独部署 ibex 模块
- 仪表盘变量支持和本业务组的机器联动,不同业务组组下的仪表盘只展示本业务组内的机器
- 机器列表和指标视图打通,可以选择多台机器直接看图,无需任何提前配置
- 告警规则,支持配置恢复时的 Promql,告警恢复通知也可以带上恢复时的值了
- 支持通过回调地址直接发送告警信息到钉钉、飞书、企微等
- 支持集成仪表盘,可以将 grafana 的仪表盘集成到夜莺中
v7 近期计划
- 告警规则:通知时支持配置过滤标签,避免告警事件中一堆不重要的标签
- 机器管理:标签拆成 user_tags 和 host_tags,host_tags 直接使用 categraf global tags 覆盖
- 机器管理:机器支持角色字段,即无头标签,用于描述混部场景
- 机器管理:把业务组的 busigroup 标签迁移到机器的属性里,让机器支持挂到多个业务组
- 告警规则:增加 Host Metrics 类别,支持按照业务组、角色、标签等筛选机器,规则 promql 支持变量,支持在机器颗粒度配置变量值
- 告警通知:重构整个通知逻辑,引入事件处理的 pipeline,支持对告警事件做自定义处理和灵活分派
升级步骤
替换二进制和 integrations 目录,重启即可。
表结构变更(所用的数据库连接账号具备建表权限的的可忽略)
夜莺会自动创建表结构,如果你的夜莺所用的数据库连接账号不具备建表权限,就需要手工建表了,建表语句见 https://github.com/ccfos/nightingale/blob/main/docker/migratesql/migrate.sql
n9e-edge 配置调整
如果是从 v6 升级到 v7,v7版本的 n9e-edge 依赖了 redis,可以部署一个 redis 实例,然后在 etc/edge.toml 中增加下 redis 的配置
[Redis]
# address, ip:port or ip1:port,ip2:port for cluster and sentinel(SentinelAddrs)
Address = "127.0.0.1:6379"
# Username = ""
# Password = ""
# DB = 0
# UseTLS = false
# TLSMinVersion = "1.2"
# standalone cluster sentinel
RedisType = "standalone"
# Mastername for sentinel type
# MasterName = "mymaster"
# SentinelUsername = ""
# SentinelPassword = ""
迁移 ibex 服务(v7.0.0-beta.2 以后的版本可忽略,没使用 ibex 可忽略)
- 将 ibex 数据库中的数据,迁移到 n9e 的数据库, ${ibex} 为实际使用的ibex数据库名称, ${n9e_v6} 实际使用的夜莺的数据库名称
mysqldump -u username -p ${ibex} > ibex.sql
mysql -u root -p ${n9e_v6} < ibex.sql
- 修改 n9e 配置,启用 ibex 功能,将 enable 设置为 true
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
这里需要注意,如果使用了 n9e-edge,n9e-edge 也需要同步开启 ibex 开关,最新版本的 n9e-edge 需要依赖 redis,所以需要在边缘机房部署一个 redis 实例给 n9e-edge 使用,n9e-edge 的配置文件需要增加如下内容
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
[Redis]
Address = "127.0.0.1:6379"
# Password = ""
RedisType = "standalone"
-
重新启动 n9e
-
检查 n9e 启动端口,如果监听了2个端口 17000 和 20090,表示服务运行正常,已具备故障自愈能力
ss -tlnp|grep n9e
- 修改之前 categraf 使用的故障自愈服务端的 ip 和 port,重启 categraf。如果之前 ibex 和 n9e 部署在同一台机器,这里 categraf 配置可以不用修改
升级到专业版
- 将夜莺升级到 v7 版本
- 下载 专业版 安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
V7 和 V6 兼容,从 V6 最新版升级 V7 只需要替换二进制重启即可,如果是容器部署的,则更新镜像并重启容器即可。
What’s Changed
- feat: 支持通过回调地址直接发送告警信息到钉钉、飞书、企微等
- feat: 仪表盘详情页标题区域添加该业务组下所有仪表盘列表的导航
- refactor: 订阅规则如果没有重新定义回调地址,不再将订阅的事件再次发给之前的回调地址
- refactor: 优化仪表盘中的指标值图和仪表图
- refactor: 仪表盘和告警规则表格的过滤条件添加本地缓存
- fix: 修复仪表盘变量查询 Prometheus 源的 label values 时可能使用 last_over_time 方法在某些时序库下无效导致报错问题
- fix: 修复 PromQL(包括 loki 数据源) 编辑器查询 labelNames 和 labelValues 可选项时没有关联其他的 labelMatchers 的问题
v7 主要更新点
- 全站暗黑主题
- 新增指标视图,内置上百个 promql,无需手写 promql 即可方便地查看监控数据
- 新增模版中心,支持创建和修改模板,模版可以在一个地方集中维护和查看
- 优化边缘机房机器失联告警的实现逻辑,真正做到边缘机房告警自闭环
- 全局回调地址页面展示优化,增加详尽的文档提示信息
- 支持通过回调地址直接发送告警信息到钉钉、飞书、企微等
- 内置集成故障自愈能力,不需要再单独部署 ibex 模块
- 仪表盘变量支持和本业务组的机器联动,不同业务组组下的仪表盘只展示本业务组内的机器
- 机器列表和指标视图打通,可以选择多台机器直接看图,无需任何提前配置
- 告警规则:支持配置恢复时的 Promql,告警恢复通知也可以带上恢复时的值了
- 支持通过回调地址直接发送告警信息到钉钉、飞书、企微等
v7 近期计划
- 仪表盘:支持内嵌 Grafana
- 告警规则:通知时支持配置过滤标签,避免告警事件中一堆不重要的标签
- 机器管理:标签拆成 user_tags 和 host_tags,host_tags 直接使用 categraf global tags 覆盖
- 机器管理:机器支持角色字段,即无头标签,用于描述混部场景
- 机器管理:把业务组的 busigroup 标签迁移到机器的属性里,让机器支持挂到多个业务组
- 告警规则:增加 Host Metrics 类别,支持按照业务组、角色、标签等筛选机器,规则 promql 支持变量,支持在机器颗粒度配置变量值
- 告警通知:重构整个通知逻辑,引入事件处理的 pipeline,支持对告警事件做自定义处理和灵活分派
升级步骤
替换二进制和 integrations 目录,重启即可。
表结构变更(所用的数据库连接账号具备建表权限的的可忽略)
夜莺会自动创建表结构,如果你的夜莺所用的数据库连接账号不具备建表权限,就需要手工建表了,建表语句见 https://github.com/ccfos/nightingale/blob/main/docker/migratesql/migrate.sql
n9e-edge 配置调整
如果是从 v6 升级到 v7,v7版本的 n9e-edge 依赖了 redis,可以部署一个 redis 实例,然后在 etc/edge.toml 中增加下 redis 的配置
[Redis]
# address, ip:port or ip1:port,ip2:port for cluster and sentinel(SentinelAddrs)
Address = "127.0.0.1:6379"
# Username = ""
# Password = ""
# DB = 0
# UseTLS = false
# TLSMinVersion = "1.2"
# standalone cluster sentinel
RedisType = "standalone"
# Mastername for sentinel type
# MasterName = "mymaster"
# SentinelUsername = ""
# SentinelPassword = ""
迁移 ibex 服务(v7.0.0-beta.2 以后的版本可忽略,没使用 ibex 可忽略)
- 将 ibex 数据库中的数据,迁移到 n9e 的数据库, ${ibex} 为实际使用的ibex数据库名称, ${n9e_v6} 实际使用的夜莺的数据库名称
mysqldump -u username -p ${ibex} > ibex.sql
mysql -u root -p ${n9e_v6} < ibex.sql
- 修改 n9e 配置,启用 ibex 功能,将 enable 设置为 true
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
这里需要注意,如果使用了 n9e-edge,n9e-edge 也需要同步开启 ibex 开关,最新版本的 n9e-edge 需要依赖 redis,所以需要在边缘机房部署一个 redis 实例给 n9e-edge 使用,n9e-edge 的配置文件需要增加如下内容
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
[Redis]
Address = "127.0.0.1:6379"
# Password = ""
RedisType = "standalone"
-
重新启动 n9e
-
检查 n9e 启动端口,如果监听了2个端口 17000 和 20090,表示服务运行正常,已具备故障自愈能力
ss -tlnp|grep n9e
- 修改之前 categraf 使用的故障自愈服务端的 ip 和 port,重启 categraf。如果之前 ibex 和 n9e 部署在同一台机器,这里 categraf 配置可以不用修改
升级到专业版
- 将夜莺升级到 v7 版本
- 下载 专业版 安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
V7 和 V6 兼容,从 V6 最新版升级 V7 只需要替换二进制重启即可,如果是容器部署的,则更新镜像并重启容器即可。
What’s Changed
- feat: 恢复告警支持获取恢复时刻的现场值
- feat: 支持使用 sqllite 存配置类数据
- fix: 修复边缘机房,故障自愈无法执行告警
- docs: 增加 AutoMQ 模板
v7 主要更新点
- 全站暗黑主题
- 新增指标视图,内置上百个 promql,无需手写 promql 即可方便地查看监控数据
- 新增模版中心,支持创建和修改模板,模版可以在一个地方集中维护和查看
- 优化边缘机房机器失联告警的实现逻辑,真正做到边缘机房告警自闭环
- 全局回调地址页面展示优化,增加详尽的文档提示信息
- 内置集成故障自愈能力,不需要再单独部署 ibex 模块
- 仪表盘变量支持和本业务组的机器联动,不同业务组组下的仪表盘只展示本业务组内的机器
- 机器列表和指标视图打通,可以选择多台机器直接看图,无需任何提前配置
v7 近期计划
- 仪表盘:支持内嵌 Grafana
- 告警规则:通知时支持配置过滤标签,避免告警事件中一堆不重要的标签
- 告警规则:支持配置恢复时的 Promql,告警恢复通知也可以带上恢复时的值了
- 机器管理:自定义标签拆分管理,agent 自动上报的标签和用户在页面自定义的标签分开管理,对于 agent 自动上报的标签,以 agent 为准,直接覆盖服务端 DB 中的数据
- 机器管理:机器支持角色字段,即无头标签,用于描述混部场景
- 机器管理:把业务组的 busigroup 标签迁移到机器的属性里,让机器支持挂到多个业务组
- 告警规则:增加 Host Metrics 类别,支持按照业务组、角色、标签等筛选机器,规则 promql 支持变量,支持在机器颗粒度配置变量值
- 告警通知:重构整个通知逻辑,引入事件处理的 pipeline,支持对告警事件做自定义处理和灵活分派
升级步骤
替换二进制和 integrations 目录,重启即可。
表结构变更(所用的数据库连接账号具备建表权限的的可忽略)
夜莺会自动创建表结构,如果你的夜莺所用的数据库连接账号不具备建表权限,就需要手工建表了,建表语句见 https://github.com/ccfos/nightingale/blob/main/docker/migratesql/migrate.sql
n9e-edge 配置调整
如果是从 v6 升级到 v7,v7版本的 n9e-edge 依赖了 redis,可以部署一个 redis 实例,然后在 etc/edge.toml 中增加下 redis 的配置
[Redis]
# address, ip:port or ip1:port,ip2:port for cluster and sentinel(SentinelAddrs)
Address = "127.0.0.1:6379"
# Username = ""
# Password = ""
# DB = 0
# UseTLS = false
# TLSMinVersion = "1.2"
# standalone cluster sentinel
RedisType = "standalone"
# Mastername for sentinel type
# MasterName = "mymaster"
# SentinelUsername = ""
# SentinelPassword = ""
迁移 ibex 服务(v7.0.0-beta.2 以后的版本可忽略,没使用 ibex 可忽略)
- 将 ibex 数据库中的数据,迁移到 n9e 的数据库, ${ibex} 为实际使用的ibex数据库名称, ${n9e_v6} 实际使用的夜莺的数据库名称
mysqldump -u username -p ${ibex} > ibex.sql
mysql -u root -p ${n9e_v6} < ibex.sql
- 修改 n9e 配置,启用 ibex 功能,将 enable 设置为 true
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
这里需要注意,如果使用了 n9e-edge,n9e-edge 也需要同步开启 ibex 开关,最新版本的 n9e-edge 需要依赖 redis,所以需要在边缘机房部署一个 redis 实例给 n9e-edge 使用,n9e-edge 的配置文件需要增加如下内容
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
[Redis]
Address = "127.0.0.1:6379"
# Password = ""
RedisType = "standalone"
-
重新启动 n9e
-
检查 n9e 启动端口,如果监听了2个端口 17000 和 20090,表示服务运行正常,已具备故障自愈能力
ss -tlnp|grep n9e
- 修改之前 categraf 使用的故障自愈服务端的 ip 和 port,重启 categraf。如果之前 ibex 和 n9e 部署在同一台机器,这里 categraf 配置可以不用修改
升级到专业版
- 将夜莺升级到 v7 版本
- 下载 专业版 安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
V7 和 V6 兼容,从 V6 最新版升级 V7 只需要替换二进制重启即可,如果是容器部署的,则更新镜像并重启容器即可。
What’s Changed
- feat: 新增模板中心,支持创建和修改内置模板了
- feat: 机器列表新增指标视图
- feat: 支持查看用户访问夜莺平台的最后活跃时间
- fix: 修复边缘机房,机器失联无法告警问题
- fix: 修复订阅规则表格不显示规则名称问题
v7 主要更新点
- 全站暗黑主题
- 新增指标视图,内置上百个 promql,无需手写 promql 即可方便地查看监控数据
- 新增模版中心,支持创建和修改模板,模版可以在一个地方集中维护和查看
- 优化边缘机房机器失联告警的实现逻辑,真正做到边缘机房告警自闭环
- 全局回调地址页面展示优化,增加详尽的文档提示信息
- 内置集成故障自愈能力,不需要再单独部署 ibex 模块
- 仪表盘变量支持和本业务组的机器联动,不同业务组组下的仪表盘只展示本业务组内的机器
- 机器列表和指标视图打通,可以选择多台机器直接看图,无需任何提前配置
v7 近期计划
- 仪表盘:支持内嵌 Grafana
- 告警规则:通知时支持配置过滤标签,避免告警事件中一堆不重要的标签
- 告警规则:支持配置恢复时的 Promql,告警恢复通知也可以带上恢复时的值了
- 机器管理:自定义标签拆分管理,agent 自动上报的标签和用户在页面自定义的标签分开管理,对于 agent 自动上报的标签,以 agent 为准,直接覆盖服务端 DB 中的数据
- 机器管理:机器支持角色字段,即无头标签,用于描述混部场景
- 机器管理:把业务组的 busigroup 标签迁移到机器的属性里,让机器支持挂到多个业务组
- 告警规则:增加 Host Metrics 类别,支持按照业务组、角色、标签等筛选机器,规则 promql 支持变量,支持在机器颗粒度配置变量值
- 告警通知:重构整个通知逻辑,引入事件处理的 pipeline,支持对告警事件做自定义处理和灵活分派
升级步骤
替换二进制和 integrations 目录,重启即可。
表结构变更(所用的数据库连接账号具备建表权限的的可忽略)
夜莺会自动创建表结构,如果你的夜莺所用的数据库连接账号不具备建表权限,就需要手工建表了,建表语句见 https://github.com/ccfos/nightingale/blob/main/docker/migratesql/migrate.sql
n9e-edge 配置调整
如果是从 v6 升级到 v7,v7版本的 n9e-edge 依赖了 redis,可以部署一个 redis 实例,然后在 etc/edge.toml 中增加下 redis 的配置
[Redis]
# address, ip:port or ip1:port,ip2:port for cluster and sentinel(SentinelAddrs)
Address = "127.0.0.1:6379"
# Username = ""
# Password = ""
# DB = 0
# UseTLS = false
# TLSMinVersion = "1.2"
# standalone cluster sentinel
RedisType = "standalone"
# Mastername for sentinel type
# MasterName = "mymaster"
# SentinelUsername = ""
# SentinelPassword = ""
迁移 ibex 服务(v7.0.0-beta.2 以后的版本可忽略,没使用 ibex 可忽略)
- 将 ibex 数据库中的数据,迁移到 n9e 的数据库, ${ibex} 为实际使用的ibex数据库名称, ${n9e_v6} 实际使用的夜莺的数据库名称
mysqldump -u username -p ${ibex} > ibex.sql
mysql -u root -p ${n9e_v6} < ibex.sql
- 修改 n9e 配置,启用 ibex 功能,将 enable 设置为 true
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
这里需要注意,如果使用了 n9e-edge,n9e-edge 也需要同步开启 ibex 开关,最新版本的 n9e-edge 需要依赖 redis,所以需要在边缘机房部署一个 redis 实例给 n9e-edge 使用,n9e-edge 的配置文件需要增加如下内容
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
[Redis]
Address = "127.0.0.1:6379"
# Password = ""
RedisType = "standalone"
-
重新启动 n9e
-
检查 n9e 启动端口,如果监听了2个端口 17000 和 20090,表示服务运行正常,已具备故障自愈能力
ss -tlnp|grep n9e
- 修改之前 categraf 使用的故障自愈服务端的 ip 和 port,重启 categraf。如果之前 ibex 和 n9e 部署在同一台机器,这里 categraf 配置可以不用修改
升级到专业版
- 将夜莺升级到 v7 版本
- 下载 专业版 安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
V7 和 V6 兼容,从 V6 最新版升级 V7 只需要替换二进制重启即可,如果是容器部署的,则更新镜像并重启容器即可。
v7 主要更新点
- 全站暗黑主题
- 新增指标视图,内置上百个promql,无需手写 promql 即可方便地查看监控数据
- 优化边缘机房机器失联告警的实现逻辑,真正做到边缘机房告警自闭环
- 优化内置大盘、内置告警规则的列表页面 UI
- 全局回调地址页面展示优化,增加详尽的文档提示信息
- 内置集成故障自愈能力,不需要再单独部署 ibex 模块
What’s Changed
- refactor: 对 prometheus 2.50.0 版本引入的 NewPossibleNonCounterInfo warnings 做适配
- refactor: 增加了一些target 相关的服务端调用的接口
从 v7.0.0-beta.2及之前的版本升级而来(v7.0.0-beta.3 版本可忽略)
替换二进制和 integrations 目录,重启即可。夜莺会自动创建表结构,如果你的夜莺所用的数据库连接账号不具备建表权限,就需要手工建表了,语句如下:
CREATE TABLE `builtin_metrics` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'unique identifier',
`collector` varchar(191) NOT NULL COMMENT 'type of collector',
`typ` varchar(191) NOT NULL COMMENT 'type of metric',
`name` varchar(191) NOT NULL COMMENT 'name of metric',
`unit` varchar(191) NOT NULL COMMENT 'unit of metric',
`lang` varchar(191) NOT NULL DEFAULT '' COMMENT 'language of metric',
`note` varchar(4096) NOT NULL COMMENT 'description of metric in Chinese',
`expression` varchar(4096) NOT NULL COMMENT 'expression of metric',
`created_at` bigint NOT NULL DEFAULT 0 COMMENT 'create time',
`created_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'creator',
`updated_at` bigint NOT NULL DEFAULT 0 COMMENT 'update time',
`updated_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'updater',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_collector_typ_name` (`lang`,`collector`, `typ`, `name`),
INDEX `idx_collector` (`collector`),
INDEX `idx_typ` (`typ`),
INDEX `idx_name` (`name`),
INDEX `idx_lang` (`lang`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `metric_filter` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'unique identifier',
`name` varchar(191) NOT NULL COMMENT 'name of metric filter',
`configs` varchar(4096) NOT NULL COMMENT 'configuration of metric filter',
`groups_perm` text,
`create_at` bigint NOT NULL DEFAULT '0' COMMENT 'create time',
`create_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'creator',
`update_at` bigint NOT NULL DEFAULT '0' COMMENT 'update time',
`update_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'updater',
PRIMARY KEY (`id`),
KEY `idx_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
n9e-edge 配置调整
如果是从 v6 升级到 v7,v7版本的 n9e-edge 依赖了 redis,可以部署一个 redis 实例,然后在 etc/edge.toml 中增加下 redis 的配置
[Redis]
# address, ip:port or ip1:port,ip2:port for cluster and sentinel(SentinelAddrs)
Address = "127.0.0.1:6379"
# Username = ""
# Password = ""
# DB = 0
# UseTLS = false
# TLSMinVersion = "1.2"
# standalone cluster sentinel
RedisType = "standalone"
# Mastername for sentinel type
# MasterName = "mymaster"
# SentinelUsername = ""
# SentinelPassword = ""
迁移 ibex 服务(v7.0.0-beta.2 以后的版本可忽略,没使用 ibex 可忽略)
- 将 ibex 数据库中的数据,迁移到 n9e 的数据库, ${ibex} 为实际使用的ibex数据库名称, ${n9e_v6} 实际使用的夜莺的数据库名称
mysqldump -u username -p ${ibex} > ibex.sql
mysql -u root -p ${n9e_v6} < ibex.sql
- 修改 n9e 配置,启用 ibex 功能,将 enable 设置为 true
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
这里需要注意,如果使用了 n9e-edge,n9e-edge 也需要同步开启 ibex 开关,最新版本的 n9e-edge 需要依赖 redis,所以需要在边缘机房部署一个 redis 实例给 n9e-edge 使用,n9e-edge 的配置文件需要增加如下内容
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
[Redis]
Address = "127.0.0.1:6379"
# Password = ""
RedisType = "standalone"
-
重新启动 n9e
-
检查 n9e 启动端口,如果监听了2个端口 17000 和 20090,表示服务运行正常,已具备故障自愈能力
ss -tlnp|grep n9e
- 修改之前 categraf 使用的故障自愈服务端的 ip 和 port,重启 categraf。如果之前 ibex 和 n9e 部署在同一台机器,这里 categraf 配置可以不用修改
升级到专业版
- 将夜莺升级到 v7 版本
- 下载 专业版 安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
V7 和 V6 兼容,从 V6 最新版升级 V7 只需要替换二进制重启即可,如果是容器部署的,则更新镜像并重启容器即可。
v7 主要更新点
- 全站暗黑主题
- 新增指标视图,内置上百个promql,无需手写 promql 即可方便地查看监控数据
- 优化边缘机房机器失联告警的实现逻辑,真正做到边缘机房告警自闭环
- 优化内置大盘、内置告警规则的列表页面 UI
- 全局回调地址页面展示优化,增加详尽的文档提示信息
- 内置集成故障自愈能力,不需要再单独部署 ibex 模块
What’s Changed
- feat: 仪表盘新增机器标识和业务组标识两个类型的变量
- feat: 仪表盘支持跨业务组克隆
- feat: LDAP 登录,支持根据 Role Mapping 配置,自动设置人员的角色和所属团队
- feat: 人员管理添加所属团队、业务组展示,并提供快捷跳转到对应的团队和业务组管理页面
- refactor: 索引模式页面优化,增加搜索框,数据源和名称添加排序
- refactor: 团队管理的团队详情显示 ID
- refactor: 仪表盘和人员管理表格页面优化,支持自定义展示列
从 v7.0.0-beta.2及之前的版本升级而来(v7.0.0-beta.3 版本可忽略)
替换二进制和 integrations 目录,重启即可。夜莺会自动创建表结构,如果你的夜莺所用的数据库连接账号不具备建表权限,就需要手工建表了,语句如下:
CREATE TABLE `builtin_metrics` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'unique identifier',
`collector` varchar(191) NOT NULL COMMENT 'type of collector',
`typ` varchar(191) NOT NULL COMMENT 'type of metric',
`name` varchar(191) NOT NULL COMMENT 'name of metric',
`unit` varchar(191) NOT NULL COMMENT 'unit of metric',
`lang` varchar(191) NOT NULL DEFAULT '' COMMENT 'language of metric',
`note` varchar(4096) NOT NULL COMMENT 'description of metric in Chinese',
`expression` varchar(4096) NOT NULL COMMENT 'expression of metric',
`created_at` bigint NOT NULL DEFAULT 0 COMMENT 'create time',
`created_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'creator',
`updated_at` bigint NOT NULL DEFAULT 0 COMMENT 'update time',
`updated_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'updater',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_collector_typ_name` (`lang`,`collector`, `typ`, `name`),
INDEX `idx_collector` (`collector`),
INDEX `idx_typ` (`typ`),
INDEX `idx_name` (`name`),
INDEX `idx_lang` (`lang`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `metric_filter` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'unique identifier',
`name` varchar(191) NOT NULL COMMENT 'name of metric filter',
`configs` varchar(4096) NOT NULL COMMENT 'configuration of metric filter',
`groups_perm` text,
`create_at` bigint NOT NULL DEFAULT '0' COMMENT 'create time',
`create_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'creator',
`update_at` bigint NOT NULL DEFAULT '0' COMMENT 'update time',
`update_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'updater',
PRIMARY KEY (`id`),
KEY `idx_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
n9e-edge 配置调整
如果是从 v6 升级到 v7,v7版本的 n9e-edge 依赖了 redis,可以部署一个 redis 实例,然后在 etc/edge.toml 中增加下 redis 的配置
[Redis]
# address, ip:port or ip1:port,ip2:port for cluster and sentinel(SentinelAddrs)
Address = "127.0.0.1:6379"
# Username = ""
# Password = ""
# DB = 0
# UseTLS = false
# TLSMinVersion = "1.2"
# standalone cluster sentinel
RedisType = "standalone"
# Mastername for sentinel type
# MasterName = "mymaster"
# SentinelUsername = ""
# SentinelPassword = ""
迁移 ibex 服务(v7.0.0-beta.2 以后的版本可忽略,没使用 ibex 可忽略)
- 将 ibex 数据库中的数据,迁移到 n9e 的数据库, ${ibex} 为实际使用的ibex数据库名称, ${n9e_v6} 实际使用的夜莺的数据库名称
mysqldump -u username -p ${ibex} > ibex.sql
mysql -u root -p ${n9e_v6} < ibex.sql
- 修改 n9e 配置,启用 ibex 功能,将 enable 设置为 true
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
这里需要注意,如果使用了 n9e-edge,n9e-edge 也需要同步开启 ibex 开关,最新版本的 n9e-edge 需要依赖 redis,所以需要在边缘机房部署一个 redis 实例给 n9e-edge 使用,n9e-edge 的配置文件需要增加如下内容
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
[Redis]
Address = "127.0.0.1:6379"
# Password = ""
RedisType = "standalone"
-
重新启动 n9e
-
检查 n9e 启动端口,如果监听了2个端口 17000 和 20090,表示服务运行正常,已具备故障自愈能力
ss -tlnp|grep n9e
- 修改之前 categraf 使用的故障自愈服务端的 ip 和 port,重启 categraf。如果之前 ibex 和 n9e 部署在同一台机器,这里 categraf 配置可以不用修改
升级到专业版
- 将夜莺升级到 v7 版本
- 下载 专业版 安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
V7 和 V6 兼容,从 V6 最新版升级 V7 只需要替换二进制重启即可,如果是容器部署的,则更新镜像并重启容器即可。
v7 主要更新点
- 全站暗黑主题
- 新增指标视图,内置上百个promql,无需手写 promql 即可方便地查看监控数据
- 优化边缘机房机器失联告警的实现逻辑,真正做到边缘机房告警自闭环
- 优化内置大盘、内置告警规则的列表页面 UI
- 全局回调地址页面展示优化,增加详尽的文档提示信息
- 内置集成故障自愈能力,不需要再单独部署 ibex 模块
What’s Changed
- feat: 新增指标视图页面
- feat: 单点登录配置,敏感信息支持使用加密变量
- refactor: Prometheus 源的即时查询支持使用
内置指标
查询数据,易用性提升 - refactor: 一些 TextArea 组件打开 autoSize 高度会自动随着内容撑开
- refactor: 仪表盘只会在点击全屏后展示关闭说明提示
- fix: 修复订阅规则多选告警规则时会横向溢出问题
- fix: 修复 VictoriaMetrics 源的仪表盘变量查询时间范围大于1天时可能存在缓存数据的问题
- fix: 修复切换账号后本地缓存的 gid 不合法导致查询错误的问题
从上个版本升级而来
替换二进制和 integrations 目录,重启即可。夜莺会自动创建表结构,如果你的夜莺所用的数据库连接账号不具备建表权限,就需要手工建表了,语句如下:
CREATE TABLE `builtin_metrics` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'unique identifier',
`collector` varchar(191) NOT NULL COMMENT 'type of collector',
`typ` varchar(191) NOT NULL COMMENT 'type of metric',
`name` varchar(191) NOT NULL COMMENT 'name of metric',
`unit` varchar(191) NOT NULL COMMENT 'unit of metric',
`lang` varchar(191) NOT NULL DEFAULT '' COMMENT 'language of metric',
`note` varchar(4096) NOT NULL COMMENT 'description of metric in Chinese',
`expression` varchar(4096) NOT NULL COMMENT 'expression of metric',
`created_at` bigint NOT NULL DEFAULT 0 COMMENT 'create time',
`created_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'creator',
`updated_at` bigint NOT NULL DEFAULT 0 COMMENT 'update time',
`updated_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'updater',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_collector_typ_name` (`lang`,`collector`, `typ`, `name`),
INDEX `idx_collector` (`collector`),
INDEX `idx_typ` (`typ`),
INDEX `idx_name` (`name`),
INDEX `idx_lang` (`lang`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `metric_filter` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'unique identifier',
`name` varchar(191) NOT NULL COMMENT 'name of metric filter',
`configs` varchar(4096) NOT NULL COMMENT 'configuration of metric filter',
`groups_perm` text,
`create_at` bigint NOT NULL DEFAULT '0' COMMENT 'create time',
`create_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'creator',
`update_at` bigint NOT NULL DEFAULT '0' COMMENT 'update time',
`update_by` varchar(191) NOT NULL DEFAULT '' COMMENT 'updater',
PRIMARY KEY (`id`),
KEY `idx_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
n9e-edge 配置调整
如果是从 v6 升级到 v7,v7版本的 n9e-edge 依赖了 redis,可以部署一个 redis 实例,然后在 etc/edge.toml 中增加下 redis 的配置
[Redis]
# address, ip:port or ip1:port,ip2:port for cluster and sentinel(SentinelAddrs)
Address = "127.0.0.1:6379"
# Username = ""
# Password = ""
# DB = 0
# UseTLS = false
# TLSMinVersion = "1.2"
# standalone cluster sentinel
RedisType = "standalone"
# Mastername for sentinel type
# MasterName = "mymaster"
# SentinelUsername = ""
# SentinelPassword = ""
迁移 ibex 服务(v7.0.0-beta.2 以后的版本可忽略,没使用 ibex 可忽略)
- 将 ibex 数据库中的数据,迁移到 n9e 的数据库, ${ibex} 为实际使用的ibex数据库名称, ${n9e_v6} 实际使用的夜莺的数据库名称
mysqldump -u username -p ${ibex} > ibex.sql
mysql -u root -p ${n9e_v6} < ibex.sql
- 修改 n9e 配置,启用 ibex 功能,将 enable 设置为 true
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
这里需要注意,如果使用了 n9e-edge,n9e-edge 也需要同步开启 ibex 开关,最新版本的 n9e-edge 需要依赖 redis,所以需要在边缘机房部署一个 redis 实例给 n9e-edge 使用,n9e-edge 的配置文件需要增加如下内容
[Ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
[Redis]
Address = "127.0.0.1:6379"
# Password = ""
RedisType = "standalone"
-
重新启动 n9e
-
检查 n9e 启动端口,如果监听了2个端口 17000 和 20090,表示服务运行正常,已具备故障自愈能力
ss -tlnp|grep n9e
- 修改之前 categraf 使用的故障自愈服务端的 ip 和 port,重启 categraf。如果之前 ibex 和 n9e 部署在同一台机器,这里 categraf 配置可以不用修改
升级到专业版
- 将夜莺升级到 v7 版本
- 下载 专业版 安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
V7 和 V6 兼容,从 V6 最新版升级 V7 只需要替换二进制重启即可,如果是容器部署的,则更新镜像并重启容器即可。
v7 主要更新点
- 全站暗黑主题
- 优化边缘机房机器失联告警的实现逻辑,真正做到边缘机房告警自闭环
- 优化内置大盘、内置告警规则的列表页面 UI
- 全局回调地址页面展示优化,增加详尽的文档提示信息
- 内置集成故障自愈能力,不需要再单独部署 ibex 模块
What’s Changed
- feat: 集成故障自愈的能力,不需要再单独部署 ibex 模块了
- refactor: 内置仪表盘和内置规则页面重构
- refactor: 业务组树组件展示优化,去除连线以及更新图标
- refactor: 告警规则等表格页面优化,重新组织表格列
- refactor: 告警规则等编辑表单页面优化,样式优化、底部悬浮固定按钮组等
- refactor: 告警规则 Prometheus 源的预览功能优化,默认强制补全缺点数据
- refactor: 导入 grafana 仪表盘优化,解决部分情况下转换后的图表数据源值和变量名不一致问题
- refactor: 即时查询 Prometheus 源查询按钮和结果添加 loading 效果
- refactor: 快捷查询的视图列表栏和过滤栏添加拖拽改变宽度和收起展开功能
- refactor: 删除自愈配置页面
- docs: 大量文档调整优化
- fix: 修复初始化阶段设置业务线默认值未生效问题
- fix: 机器列表页面 offset 和颜色判断前做 abs 处理
- fix: 将仪表盘指标标签或是日志数据的数字字符串转换为数值,解决部分图表对数值字符串做数学运算时异常问题
- fix: 修复仪表盘页面刷新数据时变量值会变问题
- fix: 修复仪表盘 Prometheus 源的 promql 使用 $__range 等时间变量时自定义单个查询条件的时间范围未生效问题
- fix: 修复仪表盘饼图环图模式统计值的数值和名称内容可能渲染重叠问题
- fix: cas 用户登录,获取不到用户名问题
- fix: 部署多个实例时,smtp 更新问题
n9e-edge 配置调整
如果是从 v6 升级到 v7,v7版本的 n9e-edge 依赖了 redis,可以部署一个 redis 实例,然后在 etc/edge.toml 中增加下 redis 的配置
[Redis]
# address, ip:port or ip1:port,ip2:port for cluster and sentinel(SentinelAddrs)
Address = "127.0.0.1:6379"
# Username = ""
# Password = ""
# DB = 0
# UseTLS = false
# TLSMinVersion = "1.2"
# standalone cluster sentinel
RedisType = "standalone"
# Mastername for sentinel type
# MasterName = "mymaster"
# SentinelUsername = ""
# SentinelPassword = ""
迁移 ibex 服务(没使用 ibex 可忽略)
- 将 ibex 数据库中的数据,迁移到 n9e 的数据库, ${ibex} 为实际使用的ibex数据库名称, ${n9e_v6} 实际使用的夜莺的数据库名称
mysqldump -u username -p ${ibex} > ibex.sql
mysql -u root -p ${n9e_v6} < ibex.sql
- 修改 n9e 配置,启用 ibex 功能,将 enable 设置为 true
[ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
这里需要注意,如果使用了 n9e-edge,n9e-edge 也需要同步开启 ibex 开关,最新版本的 n9e-edge 需要依赖 redis,所以需要在边缘机房部署一个 redis 实例给 n9e-edge 使用,n9e-edge 的配置文件需要增加如下内容
[ibex]
Enable = true
RPCListen = "0.0.0.0:20090"
[Redis]
Address = "127.0.0.1:6379"
# Password = ""
RedisType = "standalone"
-
重新启动 n9e
-
检查 n9e 启动端口,如果监听了2个端口 17000 和 20090,表示服务运行正常,已具备故障自愈能力
ss -tlnp|grep n9e
- 修改之前 categraf 使用的故障自愈服务端的 ip 和 port,重启 categraf。如果之前 ibex 和 n9e 部署在同一台机器,这里 categraf 配置可以不用修改
升级到专业版
- 将夜莺升级到 v7 版本
- 下载 专业版 安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
V7 和 V6 兼容,从 V6 最新版升级 V7 只需要替换二进制重启即可,如果是容器部署的,则更新镜像并重启容器即可。
v7 主要更新点
- 全站暗黑主题
- 优化边缘机房机器失联告警的实现逻辑,真正做到边缘机房告警自闭环
- 优化内置大盘、内置告警规则的列表页面 UI
- 全局回调地址页面展示优化,增加详尽的文档提示信息
What’s Changed
- feat: 屏蔽规则添加快捷模板功能
- feat: 告警事件表格添加 “首次触发时间” 列
- feat: 订阅规则支持订阅多个告警规则
- perf: 告警自愈页面优化机器选择,执行历史添加自动刷新功能
- perf: 机器列表等页面样式优化
- refactor: 导入内置规则时去除数据源相关设置,解决规则监控类型配置冲突被覆盖问题
- docs: 一些文案优化
- fix: 机器失联告警,不产生恢复事件问题
- fix: 优化告警规则 Prometheus 类型的数据源选择 $all 时无法预览问题
V7 和 V6 兼容,从 V6 最新版升级 V7 只需要替换二进制重启即可,如果是容器部署的,则更新镜像并重启容器即可。
What’s Changed
- 全站暗黑主题
- 优化边缘机房机器失联告警的实现逻辑,真正做到边缘机房告警自闭环
- 优化内置大盘、内置告警规则的列表页面 UI
- 全局回调地址页面展示优化,增加详尽的文档提示信息
V7 和 V6 兼容,从 V6 最新版升级 V7 只需要替换二进制重启即可,如果是容器部署的,则更新镜像并重启容器即可。
What’s Changed
- feat: 仪表盘时序图添加 value mappings
- feat: Elasticsearch 即时查询 query 支持历史记录和字段提示
- feat: 告警规则回调地址添加自动补全功能
- refactor: 仪表盘文字卡片图适配暗黑模式,解决颜色无法修改透明度问题
- refactor: 仪表盘表格图单元格文字内容溢出后换行
- refactor: 即时查询等时序图 X 轴范围固定为查询时间范围
- refactor: 图表单位默认值从 auto 改成 SI prefixes
- fix: 修复 Elasticsearch index patterns 会获取所有 fields 的问题
- fix: 修复仪表盘打开 tooltip 共享后在编辑面板状态 tooltip 面板会透出问题
- fix: 时序数据根据 ident 过滤追加标签
安装
见 安装 文档
升级
见 升级 文档
升级到专业试用版
- 将夜莺升级到 v6 正式版本
- 下载 专业版 安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
配置文件近期改动(v6.0.0-ga.9 之后的版本忽略)
检查 config.toml(如果使用了 n9e-edge 模块,还要检查 edge.toml),确保配置文件中 [HTTP]
配置段下打开了 API 相关配置:
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
其他注意点
n9e-edge
如果有些机房和中心端的网络链路不好,可以把时序库下沉部署到边缘机房,相应的,n9e-edge 模块跟随时序库部署到边缘机房,n9e-edge 的配置文件样例在 etc/edge
目录。因为 n9e-edge 需要调用 n9e 的接口,所以 edge.toml 中需要配置中心端 n9e 的地址和认证信息。认证信息在中心端 n9e 的 HTTP.APIForService.BasicAuth 配置段指定。
# edge.toml 中需要配置中心端 n9e 的地址,要不然没法拉取告警规则
# Addrs 就是中心 n9e 的地址,相关 IP、Port 根据你自己的环境调整
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000
可以这么启动 n9e-edge 模块:
nohup ./n9e-edge --configs etc/edge &> edge.log &
我这只是演示,所以用 nohup 启动了,生产环境建议使用 systemd 或者 supervisor 之类的做进程托管。
ibex 数据库表结构升级(没使用故障自愈的可以忽略)
检查 ibex 数据库,task_meta 表,看是否有 stdin 字段,如果没有,执行以下 SQL:
alter table task_meta add column `stdin` varchar(4096) not null default '' after `args`;
告警自愈脚本支持从 stdin 读取告警事件信息,改动比较多,除了上面 task_meta 表的改动,还有以下几个改动:
What’s Changed
- feat: 支持查看更丰富的机器元信息(categraf 需要升级到 v0.3.42 版本)
- feat: 支持设置从指定时序指标中提取 ident 来更新心跳
- feat: 增强自我保护能力,支持配置指定 labels 丢弃监控数据
- feat: 告警通知,支持更多的模板函数
- feat: 仪表盘表格图聚合维度模式支持根据查询条件排序
- feat: 告警规则 Prometheus 源添加查询预览功能
- perf: PromQL 输入框支持仪表盘变量的补全提示,适配 $_interval 等全局变量的语法
- perf: 仪表盘变量值更新后重新计算 repeat panels 不再需要刷新页面
- perf: 本地缓存仪表盘主题状态
- perf: Elasticsearch 即时查询日期字段默认值优化,默认取日期类型的第一个字段
- perf: 告警规则和记录规则的名称和更新时间列添加排序功能
- refactor: 菜单调整,指标和日志查询移动到仪表盘下方
- refactor: 告警规则附加信息的 key 从中文改成英文
- refactor: 仪表盘 Elasticsearch 源的变量定义生成的 DSL 不再给 field 添加 .keyword
- fix: 修复机器列表从所有节点切换到指定节点没有查询数据问题
- fix: 修复仪表盘变量正则过滤输入框填入非法字符后页面崩溃问题
- fix: 业务组名称修改之后,告警事件中业务组没及时更新问题
安装
见 安装 文档
升级
见 升级 文档
升级到专业试用版
- 将夜莺升级到 v6 正式版本
- 下载 专业版 安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
配置文件近期改动(v6.0.0-ga.9 之后的版本忽略)
检查 config.toml(如果使用了 n9e-edge 模块,还要检查 edge.toml),确保配置文件中 [HTTP]
配置段下打开了 API 相关配置:
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
其他注意点
n9e-edge
如果有些机房和中心端的网络链路不好,可以把时序库下沉部署到边缘机房,相应的,n9e-edge 模块跟随时序库部署到边缘机房,n9e-edge 的配置文件样例在 etc/edge
目录。因为 n9e-edge 需要调用 n9e 的接口,所以 edge.toml 中需要配置中心端 n9e 的地址和认证信息。认证信息在中心端 n9e 的 HTTP.APIForService.BasicAuth 配置段指定。
# edge.toml 中需要配置中心端 n9e 的地址,要不然没法拉取告警规则
# Addrs 就是中心 n9e 的地址,相关 IP、Port 根据你自己的环境调整
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000
可以这么启动 n9e-edge 模块:
nohup ./n9e-edge --configs etc/edge &> edge.log &
我这只是演示,所以用 nohup 启动了,生产环境建议使用 systemd 或者 supervisor 之类的做进程托管。
ibex 数据库表结构升级(没使用故障自愈的可以忽略)
检查 ibex 数据库,task_meta 表,看是否有 stdin 字段,如果没有,执行以下 SQL:
alter table task_meta add column `stdin` varchar(4096) not null default '' after `args`;
告警自愈脚本支持从 stdin 读取告警事件信息,改动比较多,除了上面 task_meta 表的改动,还有以下几个改动:
What’s Changed
- feat: 业务组和团队树结构展示优化,支持选中父节点查询所有叶子节点的对应的资源
- feat: 仪表盘新增柱状图
- feat: 仪表盘添加提示信息和缩放行为设置,支持所有时序图共享提示信息,支持时序图缩放后更新全局时间范围
- feat: 仪表盘时序图添加 Legend 单击触发行为设置,单击显示或隐藏项目
- feat: 添加站点设置页面,支持设置首页地址和业务组与团队的展示模式
- feat: 仪表盘时序图支持双Y轴
- feat: 历史告警、活跃告警事件支持查询指定时间
- feat: remote write 地址,支持配置多个地址,第一个写入失败会自动重试下一个,直到成功为止
- perf: 仪表盘图表适配非时序数据
- perf: 仪表盘时序图折线默认透明度从 0.5 改成 0
- perf: 即时查询 Elasticsearch 日志查询参数调整,获取真实的日志条数
- perf: 英文首先字体改成 Helvetica Neue
- fix: 修复从仪表盘详情页退出后页面浏览器标签标题显示异常问题
- fix: 修复 Prometheus 即时查询返回结果超出限制(10000)后截断错误导致页面崩溃问题
- style: AccessTokenKey 变量统一
- docs: i18n 更新
- docs: 增加手动更新表结构 migrate.sql
安装
见 安装 文档
升级
见 升级 文档
升级到专业试用版
- 将夜莺升级到 v6 正式版本
- 下载 专业版 安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
配置文件近期改动(v6.0.0-ga.9 之后的版本忽略)
检查 config.toml(如果使用了 n9e-edge 模块,还要检查 edge.toml),确保配置文件中 [HTTP]
配置段下打开了 API 相关配置:
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
其他注意点
n9e-edge
如果有些机房和中心端的网络链路不好,可以把时序库下沉部署到边缘机房,相应的,n9e-edge 模块跟随时序库部署到边缘机房,n9e-edge 的配置文件样例在 etc/edge
目录。因为 n9e-edge 需要调用 n9e 的接口,所以 edge.toml 中需要配置中心端 n9e 的地址和认证信息。认证信息在中心端 n9e 的 HTTP.APIForService.BasicAuth 配置段指定。
# edge.toml 中需要配置中心端 n9e 的地址,要不然没法拉取告警规则
# Addrs 就是中心 n9e 的地址,相关 IP、Port 根据你自己的环境调整
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000
可以这么启动 n9e-edge 模块:
nohup ./n9e-edge --configs etc/edge &> edge.log &
我这只是演示,所以用 nohup 启动了,生产环境建议使用 systemd 或者 supervisor 之类的做进程托管。
ibex 数据库表结构升级(没使用故障自愈的可以忽略)
检查 ibex 数据库,task_meta 表,看是否有 stdin 字段,如果没有,执行以下 SQL:
alter table task_meta add column `stdin` varchar(4096) not null default '' after `args`;
告警自愈脚本支持从 stdin 读取告警事件信息,改动比较多,除了上面 task_meta 表的改动,还有以下几个改动:
What’s Changed
- feat: 新版本菜单,菜单支持主题色设置
- feat: 仪表盘新增色块图
- feat: 仪表盘新增单位 packets/sec 和 dBm
- feat: 业务组树结构层级不再限制,团队列表也支渲染成树结构
- feat: 日志分析的即时查询支持多开标签页查询
- feat: 告警规则 Host 类型的机器标识筛选新增 =~ 和 !~ 操作符
- feat: 告警订阅规则新增规则备注和启用按钮
- refactor: 仪表盘非全屏模式也开放主题模式切换
- refactor: 优化活跃告警卡片展开的事件列表的数据源信息样式,解决可能被遮挡问题
- refactor: Prometheus 即时查询 Graph 模式数值默认做 SI 格式化处理
- refactor: Prometheus 和 Elasticsearch 的 Proxy 接口不再拦截 401 和 403 状态
- refactor: 通知设置表格列"隐藏"改名"启用"
- fix: 修复仪表盘表格图切换显示模式可能导致渲染崩溃问题
- fix: 修复 Prometheus 即时查询 Graph 模式的图例表格内容溢出问题
- fix: 导入 Grafana dashboard
- 适配变量的隐藏配置
- 适配全局变量
- 时序图曲线透明度默认值从 0.5 改成 0
安装
见 安装 文档
升级
见 升级 文档
升级到专业试用版
- 将夜莺升级到 v6 正式版本
- 下载 专业版 安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
配置文件近期改动(v6.0.0-ga.9 之后的版本忽略)
检查 config.toml(如果使用了 n9e-edge 模块,还要检查 edge.toml),确保配置文件中 [HTTP]
配置段下打开了 API 相关配置:
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
其他注意点
n9e-edge
如果有些机房和中心端的网络链路不好,可以把时序库下沉部署到边缘机房,相应的,n9e-edge 模块跟随时序库部署到边缘机房,n9e-edge 的配置文件样例在 etc/edge
目录。因为 n9e-edge 需要调用 n9e 的接口,所以 edge.toml 中需要配置中心端 n9e 的地址和认证信息。认证信息在中心端 n9e 的 HTTP.APIForService.BasicAuth 配置段指定。
# edge.toml 中需要配置中心端 n9e 的地址,要不然没法拉取告警规则
# Addrs 就是中心 n9e 的地址,相关 IP、Port 根据你自己的环境调整
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000
可以这么启动 n9e-edge 模块:
nohup ./n9e-edge --configs etc/edge &> edge.log &
我这只是演示,所以用 nohup 启动了,生产环境建议使用 systemd 或者 supervisor 之类的做进程托管。
ibex 数据库表结构升级(没使用故障自愈的可以忽略)
检查 ibex 数据库,task_meta 表,看是否有 stdin 字段,如果没有,执行以下 SQL:
alter table task_meta add column `stdin` varchar(4096) not null default '' after `args`;
告警自愈脚本支持从 stdin 读取告警事件信息,改动比较多,除了上面 task_meta 表的改动,还有以下几个改动:
What’s Changed
- feat: 新增全局宏变量管理
- feat: 仪表盘时序图右侧列表 Legend 也支持展示统计值
- feat: 仪表盘值映射配置新增 “固定值(文本值)” 匹配方式
- feat: 仪表盘表格图链接配置添加新模式 “单元格链接” 该模式将把单元格文本渲染成链接
- refactor: Admin 角色的菜单也受权限点控制
- refactor: 告警规则表单添加校验数据源是否关联告警引擎
- refactor: 订阅规则表单兼容 datasource_ids 为 null 值情况
- refactor: 业务组侧边栏点击编辑图标按钮从新页面打开业务组管理页面
- refactor: 调整通知相关接口权限控制
- refactor: http 请求支持日志打印 body
- perf: 优化仪表盘性能
- perf: 通知管理页面代码优化 @rjzhou3
- docs: 更新机器台账内置仪表盘
- docs: 更新 windows 内置仪表盘 @tanxiao1990
- docs: 更新 i18n
安装
见 安装 文档
升级
见 升级 文档
升级到专业试用版
- 将夜莺升级到 v6 正式版本
- 下载 n9e-plus-v6-linux-amd64.tar.gz 专业版安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
配置文件近期改动(v6.0.0-ga.9 之后的版本忽略)
检查 config.toml(如果使用了 n9e-edge 模块,还要检查 edge.toml),确保配置文件中 [HTTP]
配置段下打开了 API 相关配置:
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
其他注意点
n9e-edge
如果有些机房和中心端的网络链路不好,可以把时序库下沉部署到边缘机房,相应的,n9e-edge 模块跟随时序库部署到边缘机房,n9e-edge 的配置文件样例在 etc/edge
目录。因为 n9e-edge 需要调用 n9e 的接口,所以 edge.toml 中需要配置中心端 n9e 的地址和认证信息。认证信息在中心端 n9e 的 HTTP.APIForService.BasicAuth 配置段指定。
# edge.toml 中需要配置中心端 n9e 的地址,要不然没法拉取告警规则
# Addrs 就是中心 n9e 的地址,相关 IP、Port 根据你自己的环境调整
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000
可以这么启动 n9e-edge 模块:
nohup ./n9e-edge --configs etc/edge &> edge.log &
我这只是演示,所以用 nohup 启动了,生产环境建议使用 systemd 或者 supervisor 之类的做进程托管。
ibex 数据库表结构升级(没使用故障自愈的可以忽略)
检查 ibex 数据库,task_meta 表,看是否有 stdin 字段,如果没有,执行以下 SQL:
alter table task_meta add column `stdin` varchar(4096) not null default '' after `args`;
告警自愈脚本支持从 stdin 读取告警事件信息,改动比较多,除了上面 task_meta 表的改动,还有以下几个改动:
What’s Changed
- feat: 仪表盘单位添加 Data rate 单位
- feat: 仪表盘 Elasticsearch 和 TDengine 数据源配置支持配置单独时间范围
- feat: TDengine 即时查询 Graph 视图添加单位和 tooltip 设置
- refactor: 仪表盘表格图列宽度只有被拖拽调整后才缓存到本地
- refactor: 告警规则和屏蔽规则监控类型添加 Log 类型去除之前临时的 Loki 类型
- refactor: 去掉默认的 ops.yaml
- refactor: 中心端 和 edge 模块,heartbeat 接口统一改为 /v1/n9e/heartbeat
- fix: 快捷视图修改动态过滤标签后重新加载标签值
- fix: edge 模块生成的告警事件 id 为空
- fix: tdengine 告警抑制不生效
安装
见 安装 文档
升级
见 升级 文档
升级到专业试用版
- 将夜莺升级到 v6 正式版本
- 下载 n9e-plus-v6-linux-amd64.tar.gz 专业版安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
配置文件近期改动(v6.0.0-ga.9 之后的版本忽略)
检查 config.toml(如果使用了 n9e-edge 模块,还要检查 edge.toml),确保配置文件中 [HTTP]
配置段下打开了 API 相关配置:
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
其他注意点
n9e-edge
如果有些机房和中心端的网络链路不好,可以把时序库下沉部署到边缘机房,相应的,n9e-edge 模块跟随时序库部署到边缘机房,n9e-edge 的配置文件样例在 etc/edge
目录。因为 n9e-edge 需要调用 n9e 的接口,所以 edge.toml 中需要配置中心端 n9e 的地址和认证信息。认证信息在中心端 n9e 的 HTTP.APIForService.BasicAuth 配置段指定。
# edge.toml 中需要配置中心端 n9e 的地址,要不然没法拉取告警规则
# Addrs 就是中心 n9e 的地址,相关 IP、Port 根据你自己的环境调整
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000
可以这么启动 n9e-edge 模块:
nohup ./n9e-edge --configs etc/edge &> edge.log &
我这只是演示,所以用 nohup 启动了,生产环境建议使用 systemd 或者 supervisor 之类的做进程托管。
ibex 数据库表结构升级(没使用故障自愈的可以忽略)
检查 ibex 数据库,task_meta 表,看是否有 stdin 字段,如果没有,执行以下 SQL:
alter table task_meta add column `stdin` varchar(4096) not null default '' after `args`;
告警自愈脚本支持从 stdin 读取告警事件信息,改动比较多,除了上面 task_meta 表的改动,还有以下几个改动:
What’s Changed
- feat: 支持 loki 数据源看图、告警 by tripitakav
- feat: 支持 tdengine 数据源看图、告警
- feat: SMTP 设置添加测试功能
- feat: Elasticsearch 即时查询日志表格字段列支持后端排序
- feat: 仪表盘蜂窝图添加文字背景色设置
- feat: 仪表盘表格图新增导出到 CSV
- feat: 仪表盘表格图每行展示指定聚合维度值的维度支持配置多个维度
- feat: 仪表盘表格图 override 新增根据字段名匹配方式
- refactor: 导入 Grafana dashboard 支持更多的版本
- refactor: 仪表盘折线图 legend 表格宽度自适应
- refactor: 仪表盘指标图展示标签值时如果是数值类型配置单位和颜色设置
- fix: 告警事件中 target_ident 偶发出错问题 by qifenggang
- fix: edge 模块 同步 user_group 信息有误问题 by tianyanli
- fix: 修复蜂窝图 legend 冲突问题 #22
- fix: 修复仪表盘如果选择了绝对时间分享出去的图的筛选时间显示成了 UTC 时间问题 #75
- fix: 修复 Elasticsearch 源仪表盘图不同索引的其他查询条件相同导致序列名冲突问题
- fix: 修复 Guest 用户无法查看仪表盘链接问题
安装
见 安装 文档
升级
见 升级 文档
升级到专业试用版
- 将夜莺升级到 v6 正式版本
- 下载 n9e-plus-v6-linux-amd64.tar.gz 专业版安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
配置文件近期改动(v6.0.0-ga.9 之后的版本忽略)
检查 config.toml(如果使用了 n9e-edge 模块,还要检查 edge.toml),确保配置文件中 [HTTP]
配置段下打开了 API 相关配置:
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
其他注意点
n9e-edge
如果有些机房和中心端的网络链路不好,可以把时序库下沉部署到边缘机房,相应的,n9e-edge 模块跟随时序库部署到边缘机房,n9e-edge 的配置文件样例在 etc/edge
目录。因为 n9e-edge 需要调用 n9e 的接口,所以 edge.toml 中需要配置中心端 n9e 的地址和认证信息。认证信息在中心端 n9e 的 HTTP.APIForService.BasicAuth 配置段指定。
# edge.toml 中需要配置中心端 n9e 的地址,要不然没法拉取告警规则
# Addrs 就是中心 n9e 的地址,相关 IP、Port 根据你自己的环境调整
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000
可以这么启动 n9e-edge 模块:
nohup ./n9e-edge --configs etc/edge &> edge.log &
我这只是演示,所以用 nohup 启动了,生产环境建议使用 systemd 或者 supervisor 之类的做进程托管。
categraf 心跳地址
categraf 会向 n9e 服务端发送心跳信息,如果是边缘机房部署的模式,心跳地址建议配置为 n9e-edge 模块的地址,心跳的 urlpath 也会相应的变化,比如:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/edge/heartbeat
url = "http://n9e-edge-ip:n9e-edge-port/v1/n9e/edge/heartbeat"
如果你的各个机房之间网络链路很好,时序库也不会下沉部署,categraf 就直接向中心的 n9e 心跳即可,相关配置如下:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/heartbeat
url = "http://n9e-center-ip:n9e-center-port/v1/n9e/heartbeat"
ibex 数据库表结构升级(没使用故障自愈的可以忽略)
检查 ibex 数据库,task_meta 表,看是否有 stdin 字段,如果没有,执行以下 SQL:
alter table task_meta add column `stdin` varchar(4096) not null default '' after `args`;
告警自愈脚本支持从 stdin 读取告警事件信息,改动比较多,除了上面 task_meta 表的改动,还有以下几个改动:
What’s Changed
- feat: Elasticsearch 索引模式添加 URL 自定义展示格式,单条日志详情展示界面添加表格模式
- feat: 仪表盘表格图支持下钻链接
- feat: 从 v6.0.0-ga 版本升级,支持自动更新表结构,不需要在手动更新
- refactor: 数据源管理数据源名称支持填写中文
- refactor: 时序指标即时查询重新支持多个面板
- refactor: 业务组里删除唯一有权限的团队后刷新业务组,防止因为删除团队后失去对该业务组的权限
- refactor: 通知模板管理切换模板时检查数据是否修改但未保存
- fix: 修复内置规则、大盘点击查看详情再返回列表查看采集说明没有数据问题
- fix: 修复导入内置大盘分组内被折叠的面板缺失数据源信息
- fix: 登录页面不请求数据源列表接口修复未开启匿名查询会导致登录页面反复重定向问题
- fix: n9e-edge 进程启动时校验配置文件参数是否正确
- fix: 导入 Grafana 大盘
- 兼容面板里无效的数据源值
- 兼容 interval 类型变量
- 兼容 query 类型变量另一种定义字段
安装
见 安装 文档
升级
见 升级 文档
升级到专业试用版
- 将夜莺升级到 v6 正式版本
- 下载 n9e-plus-v6-linux-amd64.tar.gz 专业版安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
配置文件近期改动(v6.0.0-ga.9 之后的版本忽略)
检查 config.toml(如果使用了 n9e-edge 模块,还要检查 edge.toml),确保配置文件中 [HTTP]
配置段下打开了 API 相关配置:
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
其他注意点
n9e-edge
如果有些机房和中心端的网络链路不好,可以把时序库下沉部署到边缘机房,相应的,n9e-edge 模块跟随时序库部署到边缘机房,n9e-edge 的配置文件样例在 etc/edge
目录。因为 n9e-edge 需要调用 n9e 的接口,所以 edge.toml 中需要配置中心端 n9e 的地址和认证信息。认证信息在中心端 n9e 的 HTTP.APIForService.BasicAuth 配置段指定。
# edge.toml 中需要配置中心端 n9e 的地址,要不然没法拉取告警规则
# Addrs 就是中心 n9e 的地址,相关 IP、Port 根据你自己的环境调整
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000
可以这么启动 n9e-edge 模块:
nohup ./n9e-edge --configs etc/edge &> edge.log &
我这只是演示,所以用 nohup 启动了,生产环境建议使用 systemd 或者 supervisor 之类的做进程托管。
categraf 心跳地址
categraf 会向 n9e 服务端发送心跳信息,如果是边缘机房部署的模式,心跳地址建议配置为 n9e-edge 模块的地址,心跳的 urlpath 也会相应的变化,比如:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/edge/heartbeat
url = "http://n9e-edge-ip:n9e-edge-port/v1/n9e/edge/heartbeat"
如果你的各个机房之间网络链路很好,时序库也不会下沉部署,categraf 就直接向中心的 n9e 心跳即可,相关配置如下:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/heartbeat
url = "http://n9e-center-ip:n9e-center-port/v1/n9e/heartbeat"
ibex 数据库表结构升级(没使用故障自愈的可以忽略)
检查 ibex 数据库,task_meta 表,看是否有 stdin 字段,如果没有,执行以下 SQL:
alter table task_meta add column `stdin` varchar(4096) not null default '' after `args`;
告警自愈脚本支持从 stdin 读取告警事件信息,改动比较多,除了上面 task_meta 表的改动,还有以下几个改动:
What’s Changed
- feat: 仪表盘蜂窝图新增阈值颜色方案
- feat: 单点登录支持跳过 tls 校验
- feat: 通知支持配置 http 协议代理
- refactor: 仪表盘全屏后隐藏顶部栏和变量栏
- refactor: 导入 Grafana 仪表盘缺失数据源数据时自动创建数据源变量
- refactor: 订阅规则去除监控类型、数据源改成非必选
- refactor: 个人信息和用户编辑界面的联系方式改成新增不能选择已存在的联系方式
- refactor: 告警规则列表优化,告警级别和附加标签放到一行显示,优化此处单独元高度
- refactor: 内置告警规则记录筛选条件,查询详情后返回之前筛选条件查询的列表
安装
见 安装 文档
升级
见 升级 文档
升级到专业试用版
- 将夜莺升级到 v6 正式版本
- 下载 n9e-plus-v6-linux-amd64.tar.gz 专业版安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
数据库表结构升级
每次数据库表结构变化,release change log 中都有体现,不过找起来比较麻烦,我这里做了一个汇总,只要你之前的版本是 v6 ga 版本,就可以根据下面这些做检查,不需要回去翻 change log 了。
检查 ibex 数据库,task_meta 表,看是否有 stdin 字段,如果没有,执行以下 SQL:
alter table task_meta add column `stdin` varchar(4096) not null default '' after `args`;
告警自愈脚本支持从 stdin 读取告警事件信息,改动比较多,除了上面 task_meta 表的改动,还有以下几个改动:
检查 n9e 的数据库,chart_share 表,看是否有 dashboard_id 字段,这个字段没用了,可以 drop 掉:
alter table `chart_share` drop dashboard_id;
检查 n9e 的数据库,alerting_engines 表,看是否还有 cluster 字段,这个字段要 rename 成 engine_cluster:
alter table `alerting_engines` change cluster engine_cluster varchar(128) not null default '' comment 'n9e engine cluster';
检查 n9e 的数据库,task_record 表,看是否有 event_id 字段,如果没有要新增:
alter table `task_record` add event_id bigint not null comment 'event id' default 0;
还是 n9e 的数据库,chart_share 表,看是否有 datasource_id 字段,没有的话要新增:
alter table `chart_share` add datasource_id bigint unsigned not null default 0;
检查 recording_rule 表,看是否有 datasource_ids 字段,没有的话要新增:
alter table `recording_rule` add datasource_ids varchar(255) default '';
配置文件近期改动
检查 config.toml(如果使用了 n9e-edge 模块,还要检查 edge.toml),确保配置文件中 [HTTP]
配置段下打开了 API 相关配置:
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
其他注意点
n9e-edge
如果有些机房和中心端的网络链路不好,可以把时序库下沉部署到边缘机房,相应的,n9e-edge 模块跟随时序库部署到边缘机房,n9e-edge 的配置文件样例在 etc/edge
目录。因为 n9e-edge 需要调用 n9e 的接口,所以 edge.toml 中需要配置中心端 n9e 的地址和认证信息。认证信息在中心端 n9e 的 HTTP.APIForService.BasicAuth 配置段指定。
# edge.toml 中需要配置中心端 n9e 的地址,要不然没法拉取告警规则
# Addrs 就是中心 n9e 的地址,相关 IP、Port 根据你自己的环境调整
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000
可以这么启动 n9e-edge 模块:
nohup ./n9e-edge --configs etc/edge &> edge.log &
我这只是演示,所以用 nohup 启动了,生产环境建议使用 systemd 或者 supervisor 之类的做进程托管。
categraf 心跳地址
categraf 会向 n9e 服务端发送心跳信息,如果是边缘机房部署的模式,心跳地址建议配置为 n9e-edge 模块的地址,心跳的 urlpath 也会相应的变化,比如:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/edge/heartbeat
url = "http://n9e-edge-ip:n9e-edge-port/v1/n9e/edge/heartbeat"
如果你的各个机房之间网络链路很好,时序库也不会下沉部署,categraf 就直接向中心的 n9e 心跳即可,相关配置如下:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/heartbeat
url = "http://n9e-center-ip:n9e-center-port/v1/n9e/heartbeat"
What’s Changed
- feat: 仪表盘图表面板支持检查查询数据和图表配置
- feat: 订阅规则支持订阅业务组
- feat: Elasticsearch 即时查询支持快速匹配或排除字段值,添加字段类型图标
- feat: 增加 FormatDecimal 模板函数,可设置 TriggerValue 保留几位小数
- refactor: 调整 loki 数据源校验逻辑
- refactor: 仪表盘样式优化
- refactor: 内置大盘和告警策略页面缓存选择的插件类型
- refactor: Prometheus 即时查询切换数据源不再清空 PromQL
- refactor: 机器列表心跳时间改成更新时间以及某些状态时也不再显示成 unknown
- fix: Elasticsearch 即时查询修复时间直方图时间查询条件错误问题
- docs: 调整 pg 初始化 sql
安装
见 安装 文档
升级
见 升级 文档
升级到专业试用版
- 将夜莺升级到 v6 正式版本
- 下载 n9e-plus-v6-linux-amd64.tar.gz 专业版安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
数据库表结构升级
每次数据库表结构变化,release change log 中都有体现,不过找起来比较麻烦,我这里做了一个汇总,只要你之前的版本是 v6 ga 版本,就可以根据下面这些做检查,不需要回去翻 change log 了。
检查 ibex 数据库,task_meta 表,看是否有 stdin 字段,如果没有,执行以下 SQL:
alter table task_meta add column `stdin` varchar(4096) not null default '' after `args`;
告警自愈脚本支持从 stdin 读取告警事件信息,改动比较多,除了上面 task_meta 表的改动,还有以下几个改动:
检查 n9e 的数据库,chart_share 表,看是否有 dashboard_id 字段,这个字段没用了,可以 drop 掉:
alter table `chart_share` drop dashboard_id;
检查 n9e 的数据库,alerting_engines 表,看是否还有 cluster 字段,这个字段要 rename 成 engine_cluster:
alter table `alerting_engines` change cluster engine_cluster varchar(128) not null default '' comment 'n9e engine cluster';
检查 n9e 的数据库,task_record 表,看是否有 event_id 字段,如果没有要新增:
alter table `task_record` add event_id bigint not null comment 'event id' default 0;
还是 n9e 的数据库,chart_share 表,看是否有 datasource_id 字段,没有的话要新增:
alter table `chart_share` add datasource_id bigint unsigned not null default 0;
检查 recording_rule 表,看是否有 datasource_ids 字段,没有的话要新增:
alter table `recording_rule` add datasource_ids varchar(255) default '';
配置文件近期改动
检查 config.toml(如果使用了 n9e-edge 模块,还要检查 edge.toml),确保配置文件中 [HTTP]
配置段下打开了 API 相关配置:
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
其他注意点
n9e-edge
如果有些机房和中心端的网络链路不好,可以把时序库下沉部署到边缘机房,相应的,n9e-edge 模块跟随时序库部署到边缘机房,n9e-edge 的配置文件样例在 etc/edge
目录。因为 n9e-edge 需要调用 n9e 的接口,所以 edge.toml 中需要配置中心端 n9e 的地址和认证信息。认证信息在中心端 n9e 的 HTTP.APIForService.BasicAuth 配置段指定。
# edge.toml 中需要配置中心端 n9e 的地址,要不然没法拉取告警规则
# Addrs 就是中心 n9e 的地址,相关 IP、Port 根据你自己的环境调整
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000
可以这么启动 n9e-edge 模块:
nohup ./n9e-edge --configs etc/edge &> edge.log &
我这只是演示,所以用 nohup 启动了,生产环境建议使用 systemd 或者 supervisor 之类的做进程托管。
categraf 心跳地址
categraf 会向 n9e 服务端发送心跳信息,如果是边缘机房部署的模式,心跳地址建议配置为 n9e-edge 模块的地址,心跳的 urlpath 也会相应的变化,比如:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/edge/heartbeat
url = "http://n9e-edge-ip:n9e-edge-port/v1/n9e/edge/heartbeat"
如果你的各个机房之间网络链路很好,时序库也不会下沉部署,categraf 就直接向中心的 n9e 心跳即可,相关配置如下:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/heartbeat
url = "http://n9e-center-ip:n9e-center-port/v1/n9e/heartbeat"
What’s Changed
- feat: 仪表盘新增内置变量 $__interval / $__rate_interval / $__range
- feat: 顶部栏展示版本信息
- feat: 机器列表添加 心跳超过N分钟 过滤
- refactor: 优化采集说明 Markdown 样式
- fix: 修复时序图 stack 模式下 tooltips 内容排序结果不准确问题
- fix: 导入 Grafana dashboard 问题处理
- fix: edge 模式下,配置故障自愈回调地址异常退出问题
- fix: 数据源地址是 https 时,仪表盘页面报错问题
- docs: 整个各个组件的采集说明
安装
见 安装 文档
升级
见 升级 文档
升级到专业试用版
- 将夜莺升级到 v6 正式版本
- 下载 n9e-plus-v6-linux-amd64.tar.gz 专业版安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
数据库表结构升级
每次数据库表结构变化,release change log 中都有体现,不过找起来比较麻烦,我这里做了一个汇总,只要你之前的版本是 v6 ga 版本,就可以根据下面这些做检查,不需要回去翻 change log 了。
检查 ibex 数据库,task_meta 表,看是否有 stdin 字段,如果没有,执行以下 SQL:
alter table task_meta add column `stdin` varchar(4096) not null default '' after `args`;
告警自愈脚本支持从 stdin 读取告警事件信息,改动比较多,除了上面 task_meta 表的改动,还有以下几个改动:
检查 n9e 的数据库,chart_share 表,看是否有 dashboard_id 字段,这个字段没用了,可以 drop 掉:
alter table `chart_share` drop dashboard_id;
检查 n9e 的数据库,alerting_engines 表,看是否还有 cluster 字段,这个字段要 rename 成 engine_cluster:
alter table `alerting_engines` change cluster engine_cluster varchar(128) not null default '' comment 'n9e engine cluster';
检查 n9e 的数据库,task_record 表,看是否有 event_id 字段,如果没有要新增:
alter table `task_record` add event_id bigint not null comment 'event id' default 0;
还是 n9e 的数据库,chart_share 表,看是否有 datasource_id 字段,没有的话要新增:
alter table `chart_share` add datasource_id bigint unsigned not null default 0;
检查 recording_rule 表,看是否有 datasource_ids 字段,没有的话要新增:
alter table `recording_rule` add datasource_ids varchar(255) default '';
配置文件近期改动
检查 config.toml(如果使用了 n9e-edge 模块,还要检查 edge.toml),确保配置文件中 [HTTP]
配置段下打开了 API 相关配置:
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
其他注意点
n9e-edge
如果有些机房和中心端的网络链路不好,可以把时序库下沉部署到边缘机房,相应的,n9e-edge 模块跟随时序库部署到边缘机房,n9e-edge 的配置文件样例在 etc/edge
目录。因为 n9e-edge 需要调用 n9e 的接口,所以 edge.toml 中需要配置中心端 n9e 的地址和认证信息。认证信息在中心端 n9e 的 HTTP.APIForService.BasicAuth 配置段指定。
# edge.toml 中需要配置中心端 n9e 的地址,要不然没法拉取告警规则
# Addrs 就是中心 n9e 的地址,相关 IP、Port 根据你自己的环境调整
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000
可以这么启动 n9e-edge 模块:
nohup ./n9e-edge --configs etc/edge &> edge.log &
我这只是演示,所以用 nohup 启动了,生产环境建议使用 systemd 或者 supervisor 之类的做进程托管。
categraf 心跳地址
categraf 会向 n9e 服务端发送心跳信息,如果是边缘机房部署的模式,心跳地址建议配置为 n9e-edge 模块的地址,心跳的 urlpath 也会相应的变化,比如:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/edge/heartbeat
url = "http://n9e-edge-ip:n9e-edge-port/v1/n9e/edge/heartbeat"
如果你的各个机房之间网络链路很好,时序库也不会下沉部署,categraf 就直接向中心的 n9e 心跳即可,相关配置如下:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/heartbeat
url = "http://n9e-center-ip:n9e-center-port/v1/n9e/heartbeat"
What’s Changed
v6.0.0 版本正式发布!
安装
见 安装 文档
升级
见 升级 文档
升级到专业试用版
- 将夜莺升级到 v6 正式版本
- 下载 n9e-plus-v6-linux-amd64.tar.gz 专业版安装包,解压安装包,将 n9e-plus 放到 n9e 二进制所在目录
- 停掉 n9e 进程,启动 n9e-plus 即可
pkill n9e && nohup ./n9e-plus &> n9e.log &
- 如果想从专业版切回开源版,直接停掉 n9e-plus 进程,启动 n9e 即可
pkill n9e-plus && nohup ./n9e &> n9e.log &
专业版详细介绍见 夜莺专业版
数据库表结构升级
每次数据库表结构变化,release change log 中都有体现,不过找起来比较麻烦,我这里做了一个汇总,只要你之前的版本是 v6 ga 版本,就可以根据下面这些做检查,不需要回去翻 change log 了。
检查 ibex 数据库,task_meta 表,看是否有 stdin 字段,如果没有,执行以下 SQL:
alter table task_meta add column `stdin` varchar(4096) not null default '' after `args`;
告警自愈脚本支持从 stdin 读取告警事件信息,改动比较多,除了上面 task_meta 表的改动,还有以下几个改动:
检查 n9e 的数据库,chart_share 表,看是否有 dashboard_id 字段,这个字段没用了,可以 drop 掉:
alter table `chart_share` drop dashboard_id;
检查 n9e 的数据库,alerting_engines 表,看是否还有 cluster 字段,这个字段要 rename 成 engine_cluster:
alter table `alerting_engines` change cluster engine_cluster varchar(128) not null default '' comment 'n9e engine cluster';
检查 n9e 的数据库,task_record 表,看是否有 event_id 字段,如果没有要新增:
alter table `task_record` add event_id bigint not null comment 'event id' default 0;
还是 n9e 的数据库,chart_share 表,看是否有 datasource_id 字段,没有的话要新增:
alter table `chart_share` add datasource_id bigint unsigned not null default 0;
检查 recording_rule 表,看是否有 datasource_ids 字段,没有的话要新增:
alter table `recording_rule` add datasource_ids varchar(255) default '';
配置文件近期改动
检查 config.toml(如果使用了 n9e-edge 模块,还要检查 edge.toml),确保配置文件中 [HTTP]
配置段下打开了 API 相关配置:
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
其他注意点
n9e-edge
如果有些机房和中心端的网络链路不好,可以把时序库下沉部署到边缘机房,相应的,n9e-edge 模块跟随时序库部署到边缘机房,n9e-edge 的配置文件样例在 etc/edge
目录。因为 n9e-edge 需要调用 n9e 的接口,所以 edge.toml 中需要配置中心端 n9e 的地址和认证信息。认证信息在中心端 n9e 的 HTTP.APIForService.BasicAuth 配置段指定。
# edge.toml 中需要配置中心端 n9e 的地址,要不然没法拉取告警规则
# Addrs 就是中心 n9e 的地址,相关 IP、Port 根据你自己的环境调整
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000
可以这么启动 n9e-edge 模块:
nohup ./n9e-edge --configs etc/edge &> edge.log &
我这只是演示,所以用 nohup 启动了,生产环境建议使用 systemd 或者 supervisor 之类的做进程托管。
categraf 心跳地址
categraf 会向 n9e 服务端发送心跳信息,如果是边缘机房部署的模式,心跳地址建议配置为 n9e-edge 模块的地址,心跳的 urlpath 也会相应的变化,比如:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/edge/heartbeat
url = "http://n9e-edge-ip:n9e-edge-port/v1/n9e/edge/heartbeat"
如果你的各个机房之间网络链路很好,时序库也不会下沉部署,categraf 就直接向中心的 n9e 心跳即可,相关配置如下:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/heartbeat
url = "http://n9e-center-ip:n9e-center-port/v1/n9e/heartbeat"
What’s Changed
- feat: 新增 Elasticsearch 索引模式管理,可在索引模式自定义时间字段展示格式,对即时查询展示也进行了优化
- feat: 订阅规则、屏蔽规则支持按照事件等级筛选
- feat: 增加内部状态暴露接口,方便排查问题
- refactor: 告警规则、屏蔽规则等表格样式和内容布局优化
- refactor: 调整了告警引擎执行周期逻辑
- fix: 全部对象列表页,普通用户可以看到全部机器
- fix: 快捷视图,更新配置时校验逻辑失效 by shardingHe
- fix: 修复业务组侧边栏业务组名跟分组名称同名时没有显示该业务组问题
- fix: 修复告警事件点击 promQL 跳转即时查询没有携带数据源值问题
- fix: 修复屏蔽告警事件时业务组错误问题
- docs: 添加 PostgreSQL 内置告警规则、仪表盘 by kongfei605
- docs: 添加 Ceph、MinIO 内置告警规则、仪表盘 by cyancow
- docs: integration 目录调整大小写
安装
见 安装 文档
升级
见 升级 文档
数据库表结构升级
每次数据库表结构变化,release change log 中都有体现,不过找起来比较麻烦,我这里做了一个汇总,只要你之前的版本是 v6 ga 版本,就可以根据下面这些做检查,不需要回去翻 change log 了。
检查 ibex 数据库,task_meta 表,看是否有 stdin 字段,如果没有,执行以下 SQL:
alter table task_meta add column `stdin` varchar(4096) not null default '' after `args`;
告警自愈脚本支持从 stdin 读取告警事件信息,改动比较多,除了上面 task_meta 表的改动,还有以下几个改动:
检查 n9e 的数据库,chart_share 表,看是否有 dashboard_id 字段,这个字段没用了,可以 drop 掉:
alter table `chart_share` drop dashboard_id;
检查 n9e 的数据库,alerting_engines 表,看是否还有 cluster 字段,这个字段要 rename 成 engine_cluster:
alter table `alerting_engines` change cluster engine_cluster varchar(128) not null default '' comment 'n9e engine cluster';
检查 n9e 的数据库,task_record 表,看是否有 event_id 字段,如果没有要新增:
alter table `task_record` add event_id bigint not null comment 'event id' default 0;
还是 n9e 的数据库,chart_share 表,看是否有 datasource_id 字段,没有的话要新增:
alter table `chart_share` add datasource_id bigint unsigned not null default 0;
检查 recording_rule 表,看是否有 datasource_ids 字段,没有的话要新增:
alter table `recording_rule` add datasource_ids varchar(255) default '';
配置文件近期改动
检查 config.toml(如果使用了 n9e-edge 模块,还要检查 edge.toml),确保配置文件中 [HTTP]
配置段下打开了 API 相关配置:
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
其他注意点
n9e-edge
如果有些机房和中心端的网络链路不好,可以把时序库下沉部署到边缘机房,相应的,n9e-edge 模块跟随时序库部署到边缘机房,n9e-edge 的配置文件样例在 etc/edge
目录。因为 n9e-edge 需要调用 n9e 的接口,所以 edge.toml 中需要配置中心端 n9e 的地址和认证信息。认证信息在中心端 n9e 的 HTTP.APIForService.BasicAuth 配置段指定。
# edge.toml 中需要配置中心端 n9e 的地址,要不然没法拉取告警规则
# Addrs 就是中心 n9e 的地址,相关 IP、Port 根据你自己的环境调整
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000
可以这么启动 n9e-edge 模块:
nohup ./n9e-edge --configs etc/edge &> edge.log &
我这只是演示,所以用 nohup 启动了,生产环境建议使用 systemd 或者 supervisor 之类的做进程托管。
categraf 心跳地址
categraf 会向 n9e 服务端发送心跳信息,如果是边缘机房部署的模式,心跳地址建议配置为 n9e-edge 模块的地址,心跳的 urlpath 也会相应的变化,比如:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/edge/heartbeat
url = "http://n9e-edge-ip:n9e-edge-port/v1/n9e/edge/heartbeat"
如果你的各个机房之间网络链路很好,时序库也不会下沉部署,categraf 就直接向中心的 n9e 心跳即可,相关配置如下:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/heartbeat
url = "http://n9e-center-ip:n9e-center-port/v1/n9e/heartbeat"
What’s Changed
- feat: 告警信息支持通过 stdin 传递给 ibex 可以更方便地实现故障自愈 by tanxiao1990
- feat: 心跳时间支持从 heartbeat 接口提取,提高了心跳时间实时性 by qifenggang
- feat: 登录密码支持 RSA 加密 by masterjyq
- feat: 时序图表格模式 Legend 支持下钻链接 by masterjyq
- refactor: 修改数据源类型和值后保存到 URL querystring
- refactor: 大盘详情页面标题设置为大盘标题
- refactor: 大盘数据源变量支持正则过滤可选项
- fix: 修复日志层级大于三层后字段名拼接错误问题
- fix: 修复导入规则 group_id 错误问题
- fix: 修复公开的大盘仍然会显示 row panel 编辑按钮问题
- docs: 添加 TiDB 内置告警规则、仪表盘 by longzhuquan
- docs: 增加 prometheus-operator、ipmi、kafka 内置告警规则和仪表盘 by cyancow
安装
见 安装 文档
升级
见 升级 文档
数据库表结构升级
每次数据库表结构变化,release change log 中都有体现,不过找起来比较麻烦,我这里做了一个汇总,只要你之前的版本是 v6 ga 版本,就可以根据下面这些做检查,不需要回去翻 change log 了。
检查 ibex 数据库,task_meta 表,看是否有 stdin 字段,如果没有,执行以下 SQL:
alter table task_meta add column `stdin` varchar(4096) not null default '' after `args`;
告警自愈脚本支持从 stdin 读取告警事件信息,改动比较多,除了上面 task_meta 表的改动,还有以下几个改动:
检查 n9e 的数据库,chart_share 表,看是否有 dashboard_id 字段,这个字段没用了,可以 drop 掉:
alter table `chart_share` drop dashboard_id;
检查 n9e 的数据库,alerting_engines 表,看是否还有 cluster 字段,这个字段要 rename 成 engine_cluster:
alter table `alerting_engines` change cluster engine_cluster varchar(128) not null default '' comment 'n9e engine cluster';
检查 n9e 的数据库,task_record 表,看是否有 event_id 字段,如果没有要新增:
alter table `task_record` add event_id bigint not null comment 'event id' default 0;
还是 n9e 的数据库,chart_share 表,看是否有 datasource_id 字段,没有的话要新增:
alter table `chart_share` add datasource_id bigint unsigned not null default 0;
检查 recording_rule 表,看是否有 datasource_ids 字段,没有的话要新增:
alter table `recording_rule` add datasource_ids varchar(255) default '';
配置文件近期改动
检查 config.toml(如果使用了 n9e-edge 模块,还要检查 edge.toml),确保配置文件中 [HTTP]
配置段下打开了 API 相关配置:
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
其他注意点
n9e-edge
如果有些机房和中心端的网络链路不好,可以把时序库下沉部署到边缘机房,相应的,n9e-edge 模块跟随时序库部署到边缘机房,n9e-edge 的配置文件样例在 etc/edge
目录。因为 n9e-edge 需要调用 n9e 的接口,所以 edge.toml 中需要配置中心端 n9e 的地址和认证信息。认证信息在中心端 n9e 的 HTTP.APIForService.BasicAuth 配置段指定。
# edge.toml 中需要配置中心端 n9e 的地址,要不然没法拉取告警规则
# Addrs 就是中心 n9e 的地址,相关 IP、Port 根据你自己的环境调整
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000
可以这么启动 n9e-edge 模块:
nohup ./n9e-edge --configs etc/edge &> edge.log &
我这只是演示,所以用 nohup 启动了,生产环境建议使用 systemd 或者 supervisor 之类的做进程托管。
categraf 心跳地址
categraf 会向 n9e 服务端发送心跳信息,如果是边缘机房部署的模式,心跳地址建议配置为 n9e-edge 模块的地址,心跳的 urlpath 也会相应的变化,比如:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/edge/heartbeat
url = "http://n9e-edge-ip:n9e-edge-port/v1/n9e/edge/heartbeat"
如果你的各个机房之间网络链路很好,时序库也不会下沉部署,categraf 就直接向中心的 n9e 心跳即可,相关配置如下:
[heartbeat]
enable = true
# 注意 urlpath 是 /v1/n9e/heartbeat
url = "http://n9e-center-ip:n9e-center-port/v1/n9e/heartbeat"
What’s Changed
- feat: 登录页面支持验证码校验 by tanxiao1990
- refactor: 调整大盘图表面板拖拽和点击事件触发对象,尝试解决某些客户端可能两事件会冲突问题
- refactor: 大盘 Stat 等图取 最后(第一)一个非空值 过掉了 NaN 值
- refactor: 基础设置菜单图标更新
- docs: 心跳时间提示文案修正
- docs: 增加 RabbitMQ、阿里云 内置仪表盘
- fix: 修复 PromQueryBuilder 编辑后会导致丢失 datasource value
- fix: 修复 PromQLInput 补全提示里缺失图标问题
安装
见 安装 文档
升级
见 升级 文档
注意
配置文件改动
从 ga.8 以及之前的版本,升级到最新版本,需要在配置文件 [HTTP] 下增加如下配置
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
What’s Changed
- feat: 通知模板支持新增自定义模板
- feat: 增加发送飞书卡片通知
- feat: 排行榜图支持下钻链接 @masterjyq
- refactor: 告警屏蔽周期时间的结束时间默认值从 23:59 改成 00:00
- doc: 增加 vsphere 大盘和告警规则模板
- doc: 增加 springboot actuator 大盘和告警规则模板
- doc: 增加 夜莺v6版本 大盘模板
- doc: 增加 elasticsearch 大盘和告警规则模板
安装
见 安装 文档
升级
见 升级 文档
注意
配置文件改动
从 ga.8 以及之前的版本,升级到最新版本,需要在配置文件 [HTTP] 下增加如下配置
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
What’s Changed
- feat(biz-group): 业务组名称设置成
分组名-名称
格式后业务组列表自动以分组形态展示 - refactor(quick-view): 快捷视图样式优化,修复规则名称或标签值过长会渲染错位问题
- refactor(quick-view): 图表面板标题栏新增图标可查看当前图表完整的 PromQL
- refactor(account): 更多联系方式处添加链接可跳转到联系方式配置页面
- refactor(event): 本地缓存查询的时间范围
- fix(explorer): 修复 ES 8.x 查询报 “unknown field [interval]” 问题
- fix(alert-subscribes): 修复告警级别显示错误问题
- fix(dashboard): 修复时序图开启 stack 后曲线颜色和 legend 颜色不对齐问题
- fix(event): 修复活跃告警事件无法被批量删除问题
- fix(cli): 升级程序查询不到数据源
- fix(alert-subscribes): 告警订阅数据源类型更新不生效 @shardingHe
- fix(target): 机器列表心跳时间颜色展示
安装
见 安装 文档
升级
见 升级 文档
注意
配置文件改动
从 ga.8 以及之前的版本,升级到 ga.10,需要在配置文件 [HTTP] 下增加如下配置
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
What’s Changed
- feat: 将前端 pub 文件编译到了二进制中,部署更简单了,感谢 @tanxiao1990
- feat(dashboard): 大盘 hexbin 图新增详情链接设置 @masterjyq
- refactor(edge): 增加了 n9e-edge 模块,可以在边缘机房部署,支持 数据转发 和 告警 的能力
- refactor(explorer): 当即时查询数据源为空时弹窗提示
- refactor(datasource): 数据源配置关联告警引擎自动设置默认值
- refactor(targets): 将心跳时间移动到状态列位置并且去除状态列,状态作为心跳时间背景颜色
- refactor(dashboard): guest 用户访问大盘隐藏所有编辑按钮
- refactor: 告警策略、监控大盘等表格显示修改人和时间
- fix(dashboard): 修复大盘表格图在暗黑主题下单元格颜色和背景色异常问题
- fix(dashboard): 修复大盘新增 hexbin 图异常问题
- fix: 使用标签筛选机器,填写多个标签时,筛选出错问题
- fix: 全局 webhook 备注更新不生效
安装
见 安装 文档
升级
见 升级 文档
注意
配置文件改动
从之前版本升级到 ga.9,需要在配置文件 [HTTP] 下增加如下配置
[HTTP.APIForAgent]
Enable = true
# [HTTP.APIForAgent.BasicAuth]
# user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
[HTTP.APIForService]
Enable = true
[HTTP.APIForService.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
这个版本最大的改动有:
- 将前端 pub 文件编译到了二进制中了,所以下载的二进制包中不需要包含 pub 目录了
- 把 n9e-alert n9e-pushgw 合并成一个 n9e-edge 模块,这样边缘机房只需要部署 n9e-edge,当然,如果想单独使用 n9e-alert n9e-pushgw 也是可以的,不过需要自行编译二进制
- 边缘机房的 categraf 可以直接向边缘机房的 n9e-edge 发心跳,不必一定向中心的 n9e 发心跳了
n9e-edge 需要调用 n9e 的接口,所以 edge.toml 中需要配置中心端 n9e 的地址和认证信息。认证信息在中心端 n9e 的 HTTP.APIForService.BasicAuth 配置段指定。
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
BasicAuthUser = "user001"
BasicAuthPass = "ccc26da7b9aba533cbb263a36c07dcc5"
# unit: ms
Timeout = 9000
edge.toml 单独放到了 etc/edge
目录了,可以这么启动 edge 模块:
nohup ./n9e-edge --configs etc/edge &> edge.log &
categraf 发送心跳,如果是发给中心端的 n9e,url path 是 /v1/n9e/heartbeat
,如果是发给边缘机房的 n9e-pusgw,url path 是 /v1/n9e/edge/heartbeat
。
配置举例,categraf 向中心心跳,heartbeat 配置类似下面这样:
[heartbeat]
enable = true
# report os version cpu.util mem.util metadata
url = "http://127.0.0.1:17000/v1/n9e/heartbeat"
categraf 向边缘机房的 n9e-edge 发心跳,heartbeat 配置类似下面这样:
[heartbeat]
enable = true
# report os version cpu.util mem.util metadata
url = "http://127.0.0.1:19000/v1/n9e/edge/heartbeat"
注意端口,中心端 n9e 的默认端口是 17000,边缘机房的 n9e-edge 的默认端口是 19000。
What’s Changed
- refactor: 时序指标即时查询适配 loki 查询 @0x0034
- refactor: 内置大盘和规则已选分类保存到 querystring 里
- refactor: 基础设置对象列表批量操作后不再返回第一页
- refactor: 告警引擎表格列支持排序
- refactor: n9e-alert 和 n9e-pushgw 通过 http 接口同步配置,去掉对 db 的依赖
- doc: prometheus 数据源配置 write_addr 改名 remote write 以及添加提示文案
- fix: 修复权限管理无权限点数据会报错问题
- fix: 修复告警规则 prometheus 数据源不能多选导致 promQL 查询参数错误问题
- fix: 修复内置大盘查询条件变量值替换异常问题
- fix: 修复特定条件下进程 panic 问题
组件安装
见 安装 文档
升级
见 升级 文档
如果你是v6,并且使用了 n9e-pushgw 和 n9e-alert 模块,需要调整 n9e-pushgw 和 n9e-alert 的配置,这俩模块的都给了配置样例:
- https://github.com/ccfos/nightingale/blob/main/etc/alert.toml.example
- https://github.com/ccfos/nightingale/blob/main/etc/pushgw.toml.example
核心改造是 n9e-alert n9e-pushgw 都不再依赖 DB,而是请求中心端的 n9e 的接口,所以要增加类似下面的配置段,example 中有样例:
[CenterApi]
Addrs = ["http://127.0.0.1:17000"]
[CenterApi.BasicAuth]
user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
What’s Changed
- feat: 大盘 Pie 图支持配置详情链接,以及支持各类型变量
- feat: 大盘 Stat 图支持显示 mini 趋势图
- feat: 大盘支持根据变量值自动展开生成图表
- refactor: 大盘数据源自动设置默认值
- refactor: 大盘变量存在全选值时优化交互体验
- refactor: 调整 telegraf 上报数据 host 提取逻辑
- refactor: oidc attributes username 可调整
- fix: 修复大盘 Table 单元格背景色和文字颜色可能一样导致无法查看信息问题
- fix: init sql @chenglongxie
- fix: 添加loki 数据源校验问题 @0x0034
- fix: 获取告警规则列表报错 @dyf991645
- fix: config toml typo @@dreamking02
- docs: add canal dashboards @kongfei605
组件安装
夜莺安装依赖 mysql、redis,这两个组件都是开源软件,请大家自行安装,这里也提供一个小脚本来安装这2个组件,大家可以参考:
# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
上例中mysql的root密码设置为了1234,建议维持这个不变,后续就省去了修改配置文件的麻烦。
安装夜莺
mkdir -p /opt/n9e && cd /opt/n9e
# 可以去 https://github.com/ccfos/nightingale/releases 找最新版本的包,文档里的包地址可能已经不是最新的了
tarball=n9e-v6.0.0-ga.7.0.1-linux-amd64.tar.gz
urlpath=https://download.flashcat.cloud/${tarball}
wget $urlpath || exit 1
tar zxvf ${tarball}
mysql -uroot -p1234 < n9e.sql
nohup ./n9e &> n9e.log &
# check logs
# check port
如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。nohup和systemd的使用教程
配置文件 etc/config.toml
中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码
夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root
,密码是 root.2020
,夜莺 v6 可以支持对接 Prometheus like、Elasticsearch、Jaeger 三种数据源,可以点击 系统信息-数据源 菜单,配置对应的数据源,即可在夜莺平台查看 metrics、logs、traces 的数据。
categraf 对接 v6
categraf 对接 v6 版本,建议升级到最新版本,并且将配置文件 config.toml 里的 heartbeat 开关打开
升级
见 升级 文档
What’s Changed
- feat: 饼图支持配置是否显示指标值和设置单位、小数位数 @masterjyq
- feat: 监控大盘变量新增别名设置
- feat: 支持机器自动分组,在 categraf config.toml 的 heartbeat url 后面加上
?gid=x
就可以根据业务组 ID 自动分组了 - feat: 机器列表增加心跳时间和来源 ip 字段
- refactor: 告警策略通知组选择支持关键词过滤
- refactor: 告警策略指标监控设置默认告警级别
- refactor: 通知模板更新增加校验逻辑
- fix: 修复活跃告警事件分页无效和无法刷新问题
- fix: 修复当没有联系方式数据时个人设置添加联系方式报错问题
- fix: 使用 postgresql 数据库时,告警屏蔽报错问题 @tanxiao1990
- fix: 告警规则批量更新告警等级不生效
从 ga.5 升级到 ga.6
alter table `chart_share` drop dashboard_id;
alter table `alerting_engines` change cluster engine_cluster varchar(128) not null default '' comment 'n9e engine cluster';
alter table `task_record` add event_id bigint not null comment 'event id' default 0;
组件安装
夜莺安装依赖 mysql、redis,这两个组件都是开源软件,请大家自行安装,这里也提供一个小脚本来安装这2个组件,大家可以参考:
# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
上例中mysql的root密码设置为了1234,建议维持这个不变,后续就省去了修改配置文件的麻烦。
安装夜莺
mkdir -p /opt/n9e && cd /opt/n9e
# 可以去 https://github.com/ccfos/nightingale/releases 找最新版本的包,文档里的包地址可能已经不是最新的了
tarball=n9e-v6.0.0-ga.6-linux-amd64.tar.gz
urlpath=https://download.flashcat.cloud/${tarball}
wget $urlpath || exit 1
tar zxvf ${tarball}
mysql -uroot -p1234 < n9e.sql
nohup ./n9e &> n9e.log &
# check logs
# check port
如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。nohup和systemd的使用教程
配置文件 etc/config.toml
中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码
夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root
,密码是 root.2020
,夜莺 v6 可以支持对接 Prometheus like、Elasticsearch、Jaeger 三种数据源,可以点击 系统信息-数据源 菜单,配置对应的数据源,即可在夜莺平台查看 metrics、logs、traces 的数据。
categraf 对接 v6
categraf 对接 v6 版本,建议升级到最新版本,并且将配置文件 config.toml 里的 heartbeat 开关打开
v5 升级 v6 步骤
第0步. 操作之前,记得备份下数据库!
第1步. 需要先将你正在使用的夜莺数据源表结构更新到和 v5.15.0 一致(当然,如果你现在已经是 v5.15.0,就可以跳过这里的第1步,进入第2步),release 页面有每个版本表结构的更新说明,可以根据你正在使用的版本,按照说明,逐个执行下更新表结构的语句
第2步. 解压 n9e 安装包,导入 upgrade.sql 到 n9e_v5 数据库
mysql -h 127.0.0.1 -u root -p1234 < cli/upgrade/upgrade.sql
第3步. 执行 n9e-cli 完成数据库表结构升级, webapi.conf 为 v5 版本 n9e-webapi 正在使用的配置文件
./n9e-cli --upgrade --config webapi.conf
第4步. 修改 n9e 配置文件中的数据库为 n9e_v5,启动 n9e 进程
nohup ./n9e &> n9e.log &
第5步. n9e 监听的端口为 17000,需要将之前的 web 端口和数据上报的端口,都调整为 17000
What’s Changed
- feat: 大盘变量支持隐藏显示
- refactor: 自愈配置页面转移到告警自愈里作为二级菜单页面
- refactor: 快捷视图指标前缀过滤条件改成精准匹配
- refactor: 大盘变量开启 all 后默认选中 all
- refactor: 大盘变量值修改后关联的后续变量检查是否存在已选值,如不存在则重新设置新值
- refactor: host 类型告警,告警事件中追加业务组标签
- refactor: 调整数据源校验逻辑 by idcdog
- fix: 大盘表格配置 overrides 无法删除问题
- fix: 大盘折线图开启 stack 后渲染的数据值不对问题
- fix: 公开大盘无法访问问题
- fix: 大盘因为 v5 版本缓存的变量值导致数据异常问题
- fix: 批量更新记录规则数据源无效
- docs: 增加 postgresql 类型的 sql文件和 docker-compose 文件 by tanxiao1990
组件安装
夜莺安装依赖 mysql、redis,这两个组件都是开源软件,请大家自行安装,这里也提供一个小脚本来安装这2个组件,大家可以参考:
# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
上例中mysql的root密码设置为了1234,建议维持这个不变,后续就省去了修改配置文件的麻烦。
安装夜莺
mkdir -p /opt/n9e && cd /opt/n9e
# 可以去 https://github.com/ccfos/nightingale/releases 找最新版本的包,文档里的包地址可能已经不是最新的了
tarball=n9e-v6.0.0-ga.5-linux-amd64.tar.gz
urlpath=https://download.flashcat.cloud/${tarball}
wget $urlpath || exit 1
tar zxvf ${tarball}
mysql -uroot -p1234 < n9e.sql
nohup ./n9e &> n9e.log &
# check logs
# check port
如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。nohup和systemd的使用教程
配置文件 etc/config.toml
中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码
夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root
,密码是 root.2020
,夜莺 v6 可以支持对接 Prometheus like、Elasticsearch、Jaeger 三种数据源,可以点击 系统信息-数据源 菜单,配置对应的数据源,即可在夜莺平台查看 metrics、logs、traces 的数据。
categraf 对接 v6
categraf 对接 v6 版本,需要升级到 0.2.35 版本,并且将配置文件 config.toml 里的 heartbeat 开关打开
v5 升级 v6 步骤
第0步. 操作之前,记得备份下数据库!
第1步. 需要先将你正在使用的夜莺数据源表结构更新到和 v5.15.0 一致(当然,如果你现在已经是 v5.15.0,就可以跳过这里的第1步,进入第2步),release 页面有每个版本表结构的更新说明,可以根据你正在使用的版本,按照说明,逐个执行下更新表结构的语句
第2步. 解压 n9e 安装包,导入 upgrade.sql 到 n9e_v5 数据库
mysql -h 127.0.0.1 -u root -p1234 < cli/upgrade/upgrade.sql
第3步. 执行 n9e-cli 完成数据库表结构升级, webapi.conf 为 v5 版本 n9e-webapi 正在使用的配置文件
./n9e-cli --upgrade --config webapi.conf
第4步. 修改 n9e 配置文件中的数据库为 n9e_v5,启动 n9e 进程
nohup ./n9e &> n9e.log &
第5步. n9e 监听的端口为 17000,需要将之前的 web 端口和数据上报的端口,都调整为 17000
What’s Changed
- feat: 监控大盘 Elasticsearch 源卡片查询条件支持 sortBy 配置
- refactor: 新增大盘迁移工具页面,从 ga.4 开始大盘详情页面去除了右上角全局的 Prometheus 集群切换,可通过数据源变量来实现全局切换数据源。新增的大盘迁移工具可批量迁移业务组里面所有的大盘,也可在大盘详情页单独迁移
- refactor: Elasticsearch 源查询索引结果排序
- refactor: 订阅告警规则界面的告警规则表格列信息更新
- refactor: 优化所有表格的分页样式
- refactor: 优化钉钉通知被@时的排版 #1475 by monchcc
- fix: 修复大盘 textbox 变量填写数值会报错问题
- fix: 修复 Elasticsearch 源查询时序值渲染的折线图时间展示错误问题
- fix: 修复 Elasticsearch 源查询日志原文值如返回空对象结构数据会报错问题
- fix: 修复业务组关联的团队被删除后无法编辑该业务组问题
- fix: 发送 Mattermost 消息时 tokens 处理问题 #1476 by lwangrabbit
- fix: pub 静态文件路由
- fix: 数据源更新时,状态被重置问题
组件安装
夜莺安装依赖 mysql、redis,这两个组件都是开源软件,请大家自行安装,这里也提供一个小脚本来安装这2个组件,大家可以参考:
# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
上例中mysql的root密码设置为了1234,建议维持这个不变,后续就省去了修改配置文件的麻烦。
安装夜莺
mkdir -p /opt/n9e && cd /opt/n9e
# 去 https://github.com/ccfos/nightingale/releases 找最新版本的包,文档里的包地址可能已经不是最新的了
tarball=n9e-v6.0.0-ga.4.0.1-linux-amd64.tar.gz
urlpath=https://download.flashcat.cloud/${tarball}
wget $urlpath || exit 1
tar zxvf ${tarball}
mysql -uroot -p1234 < n9e.sql
nohup ./n9e &> n9e.log &
# check logs
# check port
如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。nohup和systemd的使用教程
配置文件 etc/config.toml
中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码
夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root
,密码是 root.2020
,夜莺 v6 可以支持对接 Prometheus like、Elasticsearch、Jaeger 三种数据源,可以点击 系统信息-数据源 菜单,配置对应的数据源,即可在夜莺平台查看 metrics、logs、traces 的数据。
categraf 对接 v6
categraf 对接 v6 版本,需要升级到 0.2.35 版本,并且将配置文件 config.toml 里的 heartbeat 开关打开
v5 升级 v6 步骤
-
操作之前,记得备份下数据库!
-
需要先将你正在使用的夜莺数据源表结构更新到和 v5.15.0 一致,release 页面有每个版本表结构的更新说明,可以根据你正在使用的版本,按照说明,逐个执行下更新表结构的语句
-
解压 n9e 安装包,导入 upgrade.sql 到 n9e_v5 数据库
mysql -h 127.0.0.1 -u root -p1234 < cli/upgrade/upgrade.sql
- 执行 n9e-cli 完成数据库表结构升级, webapi.conf 为 v5 版本 n9e-webapi 正在使用的配置文件
./n9e-cli --upgrade --config webapi.conf
- 修改 n9e 配置文件中的数据库为 n9e_v5,启动 n9e 进程
nohup ./n9e &> n9e.log &
- n9e 监听的端口为 17000,需要将之前的 web 端口和数据上报的端口,都调整为 17000
What’s Changed
- fix: 对接 6.0+、7.0+ 版本 ES,查询日志报错
- fix: 链路追踪页面 Traces 排序问题
- fix: 数据上报一段时间之后出现中断
- fix: 请求 ES 跳过 SSL 验证不生效 #1457 by @idcdog
- fix: 告警规则中附加标签变量配置不合理时,程序会异常退出
- fix: 机器失联告警,事件中缺少自定义标签
- docs: 一些文案调整优化
从 ga.2 升级到 ga.3
alter table `chart_share` add datasource_id bigint unsigned not null default 0;
组件安装
夜莺安装依赖 mysql、redis,这两个组件都是开源软件,请大家自行安装,这里也提供一个小脚本来安装这2个组件,大家可以参考:
# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
上例中mysql的root密码设置为了1234,建议维持这个不变,后续就省去了修改配置文件的麻烦。
安装夜莺
mkdir -p /opt/n9e && cd /opt/n9e
# 去 https://github.com/ccfos/nightingale/releases 找最新版本的包,文档里的包地址可能已经不是最新的了
tarball=n9e-v6.0.0-ga.3-linux-amd64.tar.gz
urlpath=https://download.flashcat.cloud/${tarball}
wget $urlpath || exit 1
tar zxvf ${tarball}
mysql -uroot -p1234 < n9e.sql
nohup ./n9e &> n9e.log &
# check logs
# check port
如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。nohup和systemd的使用教程
配置文件 etc/config.toml
中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码
夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root
,密码是 root.2020
,夜莺 v6 可以支持对接 Prometheus like、Elasticsearch、Jaeger 三种数据源,可以点击 系统信息-数据源 菜单,配置对应的数据源,即可在夜莺平台查看 metrics、logs、traces 的数据。
categraf 对接 v6
categraf 对接 v6 版本,需要升级到 0.2.35 版本,并且将配置文件 config.toml 里的 heartbeat 开关打开
v5 升级 v6 步骤
-
操作之前,记得备份下数据库!
-
需要先将你正在使用的夜莺数据源表结构更新到和 v5.15.0 一致,release 页面有每个版本表结构的更新说明,可以根据你正在使用的版本,按照说明,逐个执行下更新表结构的语句
-
解压 n9e 安装包,导入 upgrade.sql 到 n9e_v5 数据库
mysql -h 127.0.0.1 -u root -p1234 < cli/upgrade/upgrade.sql
- 执行 n9e-cli 完成数据库表结构升级, webapi.conf 为 v5 版本 n9e-webapi 正在使用的配置文件
./n9e-cli --upgrade --config webapi.conf
- 修改 n9e 配置文件中的数据库为 n9e_v5,启动 n9e 进程
nohup ./n9e &> n9e.log &
- n9e 监听的端口为 17000,需要将之前的 web 端口和数据上报的端口,都调整为 17000
What’s Changed
- refactor: 大盘数据源变量支持设置默认值
- refactor: 告警规则监控类型默认值调整成 Metric
- refactor: 订阅规则列表显示新的告警级别
- refactor: 一些列表里的链接改成标准链接,以便可适用浏览器处理链接的默认快捷行为
- refactor: 不同 ident 分开转发数据,避免某个机器时间不对,导致其他机器数据被丢弃
- fix: 团队管理添加成员的成员列表无法分页问题
- fix: 非 categraf 上报的机器,状态展示问题
- fix: nil pointer #1443 by @tripitakav
- fix: 对接 redis 集群模式时,机器列表信息展示问题
- fix: ldap 用户角色每次登录都会被重置
- fix: 业务组标签没有追加到时序标签中
- docs: 一些文案调整优化
从 ga.1 升级到 ga.2
alter table `recording_rule` add datasource_ids varchar(255) default '';
组件安装
夜莺安装依赖 mysql、redis,这两个组件都是开源软件,请大家自行安装,这里也提供一个小脚本来安装这2个组件,大家可以参考:
# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
上例中mysql的root密码设置为了1234,建议维持这个不变,后续就省去了修改配置文件的麻烦。
安装夜莺
mkdir -p /opt/n9e && cd /opt/n9e
# 去 https://github.com/ccfos/nightingale/releases 找最新版本的包,文档里的包地址可能已经不是最新的了
tarball=n9e-v6.0.0-ga.2.0.2-linux-amd64.tar.gz
urlpath=https://download.flashcat.cloud/${tarball}
wget $urlpath || exit 1
tar zxvf ${tarball}
mysql -uroot -p1234 < n9e.sql
nohup ./n9e &> n9e.log &
# check logs
# check port
如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。nohup和systemd的使用教程
配置文件 etc/config.toml
中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码
夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root
,密码是 root.2020
,夜莺 v6 可以支持对接 Prometheus like、Elasticsearch、Jaeger 三种数据源,可以点击 系统信息-数据源 菜单,配置对应的数据源,即可在夜莺平台查看 metrics、logs、traces 的数据。
categraf 对接 v6
categraf 对接 v6 版本,需要升级到 0.2.35 版本,并且将配置文件 config.toml 里的 heartbeat 开关打开
v5 升级 v6 步骤
-
操作之前,记得备份下数据库!
-
需要先将你正在使用的夜莺数据源表结构更新到和 v5.15.0 一致,release 页面有每个版本表结构的更新说明,可以根据你正在使用的版本,按照说明,逐个执行下更新表结构的语句
-
解压 n9e 安装包,导入 upgrade.sql 到 n9e_v5 数据库
mysql -h 127.0.0.1 -u root -p1234 < cli/upgrade/upgrade.sql
- 执行 n9e-cli 完成数据库表结构升级, webapi.conf 为 v5 版本 n9e-webapi 正在使用的配置文件
./n9e-cli --upgrade --config webapi.conf
- 修改 n9e 配置文件中的数据库为 n9e_v5,启动 n9e 进程
nohup ./n9e &> n9e.log &
- n9e 监听的端口为 17000,需要将之前的 web 端口和数据上报的端口,都调整为 17000
组件安装
夜莺安装依赖 mysql、redis,这两个组件都是开源软件,请大家自行安装,这里也提供一个小脚本来安装这2个组件,大家可以参考:
# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
上例中mysql的root密码设置为了1234,建议维持这个不变,后续就省去了修改配置文件的麻烦。
安装夜莺
mkdir -p /opt/n9e && cd /opt/n9e
# 去 https://github.com/ccfos/nightingale/releases 找最新版本的包,文档里的包地址可能已经不是最新的了
tarball=n9e-v6.0.0-ga.1.0.1-linux-amd64.tar.gz
urlpath=https://download.flashcat.cloud/${tarball}
wget $urlpath || exit 1
tar zxvf ${tarball}
mysql -uroot -p1234 < n9e.sql
nohup ./n9e &> n9e.log &
# check logs
# check port
如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。nohup和systemd的使用教程
配置文件 etc/config.toml
中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码
夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root
,密码是 root.2020
,夜莺 v6 可以支持对接 Prometheus like、Elasticsearch、Jaeger 三种数据源,可以点击 系统信息-数据源 菜单,配置对应的数据源,即可在夜莺平台查看 metrics、logs、traces 的数据。
categraf 对接 v6
categraf 对接 v6 版本,需要升级到 0.2.35 版本,并且将配置文件 config.toml 里的 heartbeat 开关打开
v5 升级 v6 步骤
-
操作之前,记得备份下数据库!
-
需要先将你正在使用的夜莺数据源表结构更新到和 v5.15.0 一致,release 页面有每个版本表结构的更新说明,可以根据你正在使用的版本,按照说明,逐个执行下更新表结构的语句
-
解压 n9e 安装包,导入 upgrade.sql 到 n9e_v5 数据库
mysql -h 127.0.0.1 -u root -p1234 < cli/upgrade/upgrade.sql
- 执行 n9e-cli 完成数据库表结构升级, webapi.conf 为 v5 版本 n9e-webapi 正在使用的配置文件
./n9e-cli --upgrade --config webapi.conf
- 修改 n9e 配置文件中的数据库为 n9e_v5,启动 n9e 进程
nohup ./n9e &> n9e.log &
- n9e 监听的端口为 17000,需要将之前的 web 端口和数据上报的端口,都调整为 17000
组件安装
夜莺安装依赖 mysql、redis,这两个组件都是开源软件,请大家自行安装,这里也提供一个小脚本来安装这2个组件,大家可以参考:
# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
上例中mysql的root密码设置为了1234,建议维持这个不变,后续就省去了修改配置文件的麻烦。
安装夜莺
mkdir -p /opt/n9e && cd /opt/n9e
# 去 https://github.com/ccfos/nightingale/releases 找最新版本的包,文档里的包地址可能已经不是最新的了
tarball=n9e-v6.0.0-beta.5-linux-amd64.tar.gz
urlpath=https://download.flashcat.cloud/${tarball}
wget $urlpath || exit 1
tar zxvf ${tarball}
mysql -uroot -p1234 < n9e.sql
nohup ./n9e &> n9e.log &
# check logs
# check port
如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。nohup和systemd的使用教程
配置文件 etc/config.toml
中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码
夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root
,密码是 root.2020
,夜莺 v6 可以支持对接 Prometheus like、Elasticsearch、Jaeger 三种数据源,可以点击 系统信息-数据源 菜单,配置对应的数据源,即可在夜莺平台查看 metrics、logs、traces 的数据。
重要说明
当前是Beta版本,还在快速迭代,这个版本只是放出来让大家先看看相关的功能。先不要直接把v5升级到v6,等后面稳定之后,我们写一个升级工具,再通知大家。大家可以先用v6接入既有的数据源,告警、看图都可以测试了。
组件安装
夜莺安装依赖 mysql、redis,这两个组件都是开源软件,请大家自行安装,这里也提供一个小脚本来安装这2个组件,大家可以参考:
# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
上例中mysql的root密码设置为了1234,建议维持这个不变,后续就省去了修改配置文件的麻烦。
安装夜莺
mkdir -p /opt/n9e && cd /opt/n9e
# 去 https://github.com/ccfos/nightingale/releases 找最新版本的包,文档里的包地址可能已经不是最新的了
tarball=n9e-v6.0.0-beta.4-linux-amd64.tar.gz
urlpath=https://download.flashcat.cloud/${tarball}
wget $urlpath || exit 1
tar zxvf ${tarball}
mysql -uroot -p1234 < n9e.sql
nohup ./n9e &> n9e.log &
# check logs
# check port
如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。nohup和systemd的使用教程
配置文件 etc/config.toml
中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码
夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root
,密码是 root.2020
,夜莺 v6 可以支持对接 Prometheus like、Elasticsearch、Jaeger 三种数据源,可以点击 系统信息-数据源 菜单,配置对应的数据源,即可在夜莺平台查看 metrics、logs、traces 的数据。
重要说明
当前是Beta版本,还在快速迭代,这个版本只是放出来让大家先看看相关的功能。先不要直接把v5升级到v6,等后面稳定之后,我们写一个升级工具,再通知大家。大家可以先用v6接入既有的数据源,告警、看图都可以测试了。
组件安装
夜莺安装依赖 mysql、redis,这两个组件都是开源软件,请大家自行安装,这里也提供一个小脚本来安装这2个组件,大家可以参考:
# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
上例中mysql的root密码设置为了1234,建议维持这个不变,后续就省去了修改配置文件的麻烦。
安装夜莺
mkdir -p /opt/n9e && cd /opt/n9e
# 去 https://github.com/ccfos/nightingale/releases 找最新版本的包,文档里的包地址可能已经不是最新的了
tarball=n9e-v6.0.0-beta.3-linux-amd64.tar.gz
urlpath=https://download.flashcat.cloud/${tarball}
wget $urlpath || exit 1
tar zxvf ${tarball}
mysql -uroot -p1234 < n9e.sql
nohup ./n9e &> n9e.log &
# check logs
# check port
如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。nohup和systemd的使用教程
配置文件 etc/config.toml
中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码
夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root
,密码是 root.2020
,夜莺 v6 可以支持对接 Prometheus like、Elasticsearch、Jaeger 三种数据源,可以点击 系统信息-数据源 菜单,配置对应的数据源,即可在夜莺平台查看 metrics、logs、traces 的数据。
重要说明
当前是Beta版本,还在快速迭代,这个版本只是放出来让大家先看看相关的功能。先不要直接把v5升级到v6,等后面稳定之后,我们写一个升级工具,再通知大家。大家可以先用v6接入既有的数据源,告警、看图都可以测试了。
组件安装
夜莺安装依赖 mysql、redis,这两个组件都是开源软件,请大家自行安装,这里也提供一个小脚本来安装这2个组件,大家可以参考:
# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
上例中mysql的root密码设置为了1234,建议维持这个不变,后续就省去了修改配置文件的麻烦。
安装夜莺
mkdir -p /opt/n9e && cd /opt/n9e
# 去 https://github.com/ccfos/nightingale/releases 找最新版本的包,文档里的包地址可能已经不是最新的了
tarball=n9e-v6.0.0-beta.2-linux-amd64.tar.gz
urlpath=https://download.flashcat.cloud/${tarball}
wget $urlpath || exit 1
tar zxvf ${tarball}
mysql -uroot -p1234 < n9e.sql
nohup ./n9e &> n9e.log &
# check logs
# check port
如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。nohup和systemd的使用教程
配置文件 etc/config.toml
中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码
夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root
,密码是 root.2020
,夜莺 v6 可以支持对接 Prometheus like、Elasticsearch、Jaeger 三种数据源,可以点击 系统信息-数据源 菜单,配置对应的数据源,即可在夜莺平台查看 metrics、logs、traces 的数据。
重要说明
当前是Beta版本,还在快速迭代,这个版本只是放出来让大家先看看相关的功能。先不要直接把v5升级到v6,等后面稳定之后,我们写一个升级工具,再通知大家。大家可以先用v6接入既有的数据源,告警、看图都可以测试了。
组件安装
夜莺安装依赖 mysql、redis,这两个组件都是开源软件,请大家自行安装,这里也提供一个小脚本来安装这2个组件,大家可以参考:
# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
上例中mysql的root密码设置为了1234,建议维持这个不变,后续就省去了修改配置文件的麻烦。
安装夜莺
mkdir -p /opt/n9e && cd /opt/n9e
# 去 https://github.com/ccfos/nightingale/releases 找最新版本的包,文档里的包地址可能已经不是最新的了
tarball=n9e-v6.0.0-beta.1-linux-amd64.tar.gz
urlpath=https://download.flashcat.cloud/${tarball}
wget $urlpath || exit 1
tar zxvf ${tarball}
mysql -uroot -p1234 < n9e.sql
nohup ./n9e &> n9e.log &
# check logs
# check port
如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。nohup和systemd的使用教程
配置文件 etc/config.toml
中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码
夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root
,密码是 root.2020
,夜莺 v6 可以支持对接 Prometheus like、Elasticsearch、Jaeger 三种数据源,可以点击 系统信息-数据源 菜单,配置对应的数据源,即可在夜莺平台查看 metrics、logs、traces 的数据。
重要说明
当前是Beta版本,还在快速迭代,这个版本只是放出来让大家先看看相关的功能。先不要直接把v5升级到v6,等后面稳定之后,我们写一个升级工具,再通知大家。大家可以先用v6接入既有的数据源,告警、看图都可以测试了。
组件安装
夜莺安装依赖 mysql、redis,这两个组件都是开源软件,请大家自行安装,这里也提供一个小脚本来安装这2个组件,大家可以参考:
# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"
# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
上例中mysql的root密码设置为了1234,建议维持这个不变,后续就省去了修改配置文件的麻烦。
安装夜莺
mkdir -p /opt/n9e && cd /opt/n9e
# 去 https://github.com/ccfos/nightingale/releases 找最新版本的包,文档里的包地址可能已经不是最新的了
tarball=n9e-v6.0.0-beta.0-linux-amd64.tar.gz
urlpath=https://download.flashcat.cloud/${tarball}
wget $urlpath || exit 1
tar zxvf ${tarball}
mysql -uroot -p1234 < n9e.sql
nohup ./n9e &> n9e.log &
# check logs
# check port
如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。nohup和systemd的使用教程
配置文件 etc/config.toml
中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码
夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root
,密码是 root.2020
,夜莺 v6 可以支持对接 Prometheus like、Elasticsearch、Jaeger 三种数据源,可以点击 系统信息-数据源 菜单,配置对应的数据源,即可在夜莺平台查看 metrics、logs、traces 的数据。
重要说明
当前是Beta版本,还在快速迭代,这个版本只是放出来让大家先看看相关的功能。先不要直接把v5升级到v6,等后面稳定之后,我们写一个升级工具,再通知大家。另外Pushgateway逻辑先不要用,这块还想继续优化一下,大家可以先用v6接入既有的数据源,告警、看图都可以测试了,只是对象列表相关的功能暂时还测不了。
What’s Changed
- feat: effective time support array by @tripitakav in https://github.com/ccfos/nightingale/pull/1357
- fix: cas 3.0 login by @bbaobelief in https://github.com/ccfos/nightingale/pull/1365
- fix: host tag is overridden by ident by @MoonStill in https://github.com/ccfos/nightingale/pull/1359
- fix: n9e-server query https api by @710leo in https://github.com/ccfos/nightingale/pull/1368
- refactor: engine code refactor by @xiaoziv in https://github.com/ccfos/nightingale/pull/1361
- refactor: heartbeat and rule sync by @710leo https://github.com/ccfos/nightingale/pull/1362
Front End Changes
https://github.com/n9e/fe-v5/releases/tag/v5.15.0
- feat: new PromQL “Newbie Mode” can be used to edit PromQL by UI interface operation #164
- feat: new data conversion function for monitoring large table chart, configurable field name, sorting, and whether to display #218
- feat: alarm rules support setting multiple effective time @tripitakav
- feat: add preset filter to object list, can quickly filter out the ungrouped and all objects #230
- refactor: optimize new window issue for alert policy ccfos/nightingale #1356
- fix: no permission menu will be blank to occupy the place #243
- fix: the problem that the data source associated with the prometheus source cannot be deleted #233
- fix: the problem that the step setting of the monitoring disk does not take effect
- fix: the problem that the mean calc is not processed when importing the grafana disk.
- fix: the Series list under the Graph tab of the instant query is not fully displayed #240
Full Changelog: https://github.com/ccfos/nightingale/compare/v5.14.5...v5.15.0
Other releases: https://github.com/ccfos/nightingale/releases
alter table alert_rule modify enable_stime char(255) not null default '00:00';
alter table alert_rule modify enable_etime char(255) not null default '23:59';
alter table alert_rule modify enable_days_of_week varchar(255) not null default '' comment 'eg: "0 1 2 3 4 5 6 ; 0 1 2"';