登录夜莺
在浏览器输入http://127.0.0.1:17000,默认用户是root,密码是root.2020。
左边列表为主要功能模块:
仪表盘
告警管理
时序指标
日志分析
基础设施
告警自愈
人员组织
系统配置
仪表盘
夜莺的仪表盘可以对接兼容 promethues 协议的时序库和 elasticsearch 数据源。支持时间序列图、指标值、表格、饼图、蜂窝图、排行榜、文字卡片、仪表盘、内嵌文档等多种图表。
点击左边栏第一个菜单,进入到仪表盘列表页,页面的左边是业务组列表,我们可以在自己的业务组,创建和本业务组相关监控仪表盘,点击右上角的新增按钮,可以按照自己的需求,创建仪表盘。
导入夜莺的仪表盘模板,可以点击 仪表盘-内置仪表盘 菜单找到,如下图
夜莺的仪表盘,可以导入自己的仪表盘模板,也可以导入 Grafana 的仪表盘模板,如果你想配置大盘的组件,没在夜莺找到模板,可以到 Grafana 仪表盘市场 ,点击想要克隆的仪表盘,进入模版页面,点击右边的 Download JSON 按钮,下载完成之后,复制文件的内容,粘贴到下图的地方,点击导入即可。
图表配置
创建好一个仪表盘之后,进去仪表盘编辑页面,点击右上角的添加图标按钮,弹出图表编辑视图。
可用的内置变量:
{ name: '__from', value: from },
{ name: '__from_date_seconds', value: fromDateSeconds },
{ name: '__from_date_iso', value: fromDateISO },
{ name: '__from_date', value: fromDateISO },
{ name: '__to', value: to },
{ name: '__to_date_seconds', value: toDateSeconds },
{ name: '__to_date_iso', value: toDateISO },
{ name: '__to_date', value: toDateISO },
{ name: '__interval', value: `${interval}s` },
{ name: '__interval_ms', value: `${interval * 1000}ms` },
{ name: '__rate_interval', value: `${interval * 4}s` },
{ name: '__range', value: `${toDateSeconds - fromDateSeconds}s` },
{ name: '__range_s', value: `${toDateSeconds - fromDateSeconds}s` },
{ name: '__range_ms', value: `${(toDateSeconds - fromDateSeconds) * 1000}ms` }
样式配置参数:
标题:每个图表可以配置一个标题,方便更直观地知道图表的用途。
链接:有的场景我们可以先配置一个总览的图表,比如某个应用的健康度,当健康度异常时,点击点击这里配置的链接,进入另一个仪表盘,查看更详细的信息。
备注:对图表更详细的说明。
Tooltip 模式: 设置为 Single 时,鼠标移动到图表上时显示单个图例,All 时显示全部的图例。
Legand: 图例展示设置,提供了表格、列表、隐藏三种。
图表样式:可以配置折线图、柱状图、颜色是否渐变、是否堆叠、透明度、曲线宽度等。
高级配置:可以配置Y轴的上界和下界、数值的单位等。
阈值:可以在Y轴的某个位置标记红线阈值。
告警管理
告警规则
夜莺的告警规则提供了人性化的配置能力,可以满足各种场景下的配置需求。夜莺的告警规则主要分为四部分,基础配置、规则配置、生效配置和通知配置。
基础配置
规则名称:告警规则的名称,可以表明这个规则是对什么进行的监控,支持配置变量,例如 内存告警 {{$labels.busigroup}} 机器:{{$labels.ident}},如果告警事件中的标签包含了 busigroup 和 ident,最终告警事件中规则的标题会被替换为真实的 busigroup 和 ident, 内存告警 defaultbusigroup 机器:ningdeMacBook-Pro.local。
附加标签:在这里配置的附加标签,会追加到生成的告警事件的标签中,可以用来做后续的筛选条件。
备注:对告警规则更加详细的描述,也支持配置变量。
规则配置
夜莺告警规则支持两种类型的告警,metric 时序数据的告警和 host 类型的告警。
Metric类型告警
关联数据源:夜莺可以在一条规则中,关联多个数据源进行告警,可以有效降低规则的维护成本。
告警条件:本质上就是一条 promql,所以可以做一些条件筛选和四则运算,比如下面的告警规则:http_api_request_success{region="beijing"} / http_api_request_total{region="beijing"} < 0.995 表示:求取beijing这个region的所有http请求的成功率,如果成功率小于 99.5% 就告警。如果告警引擎通过此 promql 查到了数据,说明有有异常点产生,如果满足的持续时间,就会产生一个告警事件。
级别抑制:这里夜莺也有支持配置多个告警条件,如果打开了级别抑制开关,两个条件同时产生告警的话,只会发送高级别的告警,会对低级别的告警进行抑制,降低对大家的打扰。
执行频率 :告警规则执行检查的频率。
持续时长 :通常持续时长大于执行频率,在持续时长内按照执行频率多次执行 promql 查询,每次都触发才生成告警;如果持续时长置为0,表示只要有一次 promql 查询触发阈值,就生成告警。
Host 类型告警
机器筛选:支持全部机器、业务组、标签、机器标识多种维度的筛选,筛选之后,可以点击机器预览。
告警条件:host 类型告警支持三种告警能力。
机器失联:机器失联告警是一种常见的监控告警场景,用于检测服务器在一定时间内无法正常连接或通信。服务器失联可能是由于硬件故障、网络问题、电源中断等原因导致的。
生效配置
夜莺的生效配置,可以帮助用户更加灵活地管理告警规则,避免不必要的告警干扰,这对于那些只在特定时间需要关注的告警场景非常有用。
立即启用:在系统维护期间,可能会出现一些预期的指标波动或异常情况。
生效时间:有的业务可能每隔一段时间会停机维护,在定期维护期间,可能会进行系统升级、备份或其他操作,这些操作可能会引起一些预期的指标波动。
仅在本业务生效:在企业中,不同业务线往往有独立的运维团队。通过开启这个开关,我们可以确保各个业务线的告警规则仅对其关联的业务组下的机器生效。
通知配置
通知配置功能是用于定义告警触发后的通知方式、通知对象以及通知的附加内容。
通知媒介:夜莺监控默认支持了发送钉钉、企微、飞书、邮件、Mattermost、Telegram 多种通知渠道。
内置规则
夜莺监控提供了很多内置的告警规则模板,方便用户快速部署和配置告警策略。内置告警规则模板包含一系列预定义的告警条件,用户可以根据自己的需求进行选择和调整。
告警屏蔽
屏蔽规则是一种在特定情况下暂时禁止告警通知的功能。通过设置屏蔽规则,可以避免在特定场景下不必要的告警通知,减少对我们的打扰。
告警订阅
在使用监控平台的时候,有这样一种场景,一些机器和基础组件的告警规则是由基础架构的同学维护管理的,但业务的同学也想接收和自己业务相关的机器和基础组件的告警,如果直接去修改对应的告警规则的话,其实不太合适,这个时候,可以使用订阅规则,来订阅自己感兴趣的告警事件,当告警事件产生之后,通知到自己。
活跃告警
夜莺监控活跃告警页面是一个专门用于展示未恢复告警事件的页面。这个页面可以帮助我们快速了解当前存在的告警情况,从而及时响应和处理故障。
活跃告警页面提供了两种视图:
一种是卡片视图,可以将告警事件根据某个条件进行分组展示,然后从更高的维度了解活跃的告警事件的概况。
另一种是列表视图,会将指定时间范围内全部的活跃告警都详细地罗列出来。
历史告警
夜莺监控的历史告警页面是一个用于展示全部告警的列表页面,包括已恢复的和未恢复的告警。这个页面可以帮助用户了解过去的告警事件,以便分析系统状况和改进运维策略。
通知媒介
配置钉钉机器人通知
进入钉钉群,打开群设置-群管理-机器人,选择自定义机器人,点击“添加”按钮,设置机器人名称,添加关键词:“监控”。添加完成之后,复制 token 地址。
在个人联系方式中,添加要通知的钉钉群的机器人token。
添加完成之后,将已配置token的用户,添加到一会儿在告警规则配置的通知组中。
在告警规则中,勾选钉钉(dingtalk),通知接受组,选择对应的接受组即可。
时序指标
即时查询
采集器将监控数据上报到服务端之后,我们就可以查询数据了,即时查询页面提供了灵活的数据查询能力,支持使用 promql 语法查询所有的时序指标。
即时查询支持两种视图,Table 和 Graph 视图。
快捷视图
先让资深的工程师将经常要看的监控对象在快捷视图配置出来,其他同学可以通过点选的方式,来方便地查看监控对象的监控数据。
记录规则
记录规则其实是将 prometheus recording rule 的能力进行了页面化,配置很简单,这里不再详细展开,这里需要注意的一点是,这里选择的时序库集群,必须先配置好 Remote Write URL 参数,已经支持了远程写入。
日志分析
ES 数据源
夜莺从 v6 版本支持了对接 elasticsearch 类型的数据源,在数据源管理配置好 es 数据源之后,就可以在即时查询页面查询 es 的数据了,目前过滤条件支持 query string 的查询语法。

基础设施
机器列表
夜莺在接收到监控数据之后,如果识别到是机器的监控指标,会从监控数据中提取出机器的 ident 信息,展示在机器列表页面。如果采集器使用的是 categraf 并且打开了 heartbeat 开关,机器列表会将机器的元信息(内存、CPU、时间偏移、核数、操作系统、CPU架构、心跳时间、来源IP等)展示出来,相当于一个简单的 cmdb 页面。
采集配置
夜莺专业版支持了在页面上配置各种基础组件的监控数据采集,如果采集配置需要调整,直接在页面上编辑即可,不需要再登录机器,修复相关的配置文件。
告警自愈
告警自愈功能和 v5 基本一致,可以参考之前已有的视频教程 https://mp.weixin.qq.com/s/4xlbWjclbSyCn91HpVRT9g ,只有一点需要注意,之前 ibex 地址的配置是写到配置文件中的,在 v6 版本,我们放到了在页面上进行配置,在 故障自愈-自愈配置 页面。
人员组织
业务组管理
业务组是个管理概念,业务组下面的人才能操作业务组下面的机器,除了人和机器,监控大盘、告警规则、屏蔽规则、订阅规则、自愈脚本等等,都是隶属某个业务组的,只有这个业务组的人才能修改。
人和业务组是通过团队关联起来的,业务组下面有管理团队和只读团队,如果某人是某业务组的管理团队的一员,这个人就能管理这个业务组下的资源,如果这个人是只读团队的一员,那他就可以查看业务组下的资源,不能修改。
用户管理
夜莺平台提供了简单的用户管理,以实现权限管理,告警通知的功能。用户的添加有两种途径,一种是管理员手动添加,另一种是对接公司内部的SSO系统,夜莺现在支持对接 OIDC、Oauth2、LDAP和 CAS,在 “系统配置-单点登录” 页面可以管理对接。
团队管理
夜莺的团队主要用在两个地方,一个是在配置接收告警通知时会用到,另一个是进行权限控制时会用到。 夜莺的配置类信息都是通过 业务组 来进行管理的,在创建业务组的时候,可以配置管理团队,通知可以对团队设置只读和读写两种权限。我们可以根据自己的使用场景按需配置。
权限管理
夜莺提供了简单的页面权限管理,我们可以自己定义不同的角色,对角色赋予不同的页面的权限点,然后拥有这些角色的用户,就会具备这些页面的操作权限。
系统配置
数据源
夜莺从 v6 版本升级为可观测平台,支持对接 metrics、logs 等多种数据源,数据源的配置管理也放到的页面上来维护,在使用数据源之前,需要先在数据源管理页面添加想要使用的数据源。
通知配置
回调地址
在回调地址可以配置全局的回调,之后又告警生成,就会把时间发送给在此页面配置的回调地址。
通知脚本
通知脚本支持两个配置方式:
一个是配置脚本路径,使用的前提是,需要把脚本放到 夜莺进程 所在的机器上。
另一种是,可以直接将脚本的内容在页面上保存,使用起来更方便。
通知媒介
在通知媒介中配置的通知通道,会在告警规则配置,通知媒介中显示出来,如果你们公司有的通知媒介没用到,可以在这个页面将其隐藏掉。
联系方式
这个页面配置的联系方式,会在个人信息-更多联系方式 的地方展示出来,如果有没用到的,可以将其隐藏掉。
SMTP
将 v5 中 SMTP 的配置,贴到这个页面保存即可。