目录
(一):如何把数据转发给多个时序库
(二):监控仪表盘的配置
(三):告警的配置管理
(1):告警规则
①: 基础配置
②:规则配置:分为Metric和Host机器类型的告警
③: 生成配置
④:通知配置
(2): 内置规则
(3) 屏蔽规则
(4) 订阅规则
(5) 活跃告警
(6) 历史告警
(三):时序指标
(四):日志分析
(五):链路追踪
(六):基础设施
(七):告警自愈
(八):人员组织
(九):系统配置
(1)数据源:
(2)通知设置:
(十):对接邮箱告警案列配置
(1) 创建告警规则
(2)配置邮箱SMTP进行告警
(3)触发告警
(一):如何把数据转发给多个时序库
上一期讲了整个夜莺中心式搭建的单节点部署流程 ,这一期讲一下具体的用法,页面功能,夜莺的实际功能用法
首先说一下怎么把数据转发给多个时序库,比如victoria-metrics,Prometheus等等
打开n9e的配置文件 (config.toml)文件然后找到[[Pushgw.Writers]]数据字段
这里的Url就是时序库地址,现在图上的时序库地址是一个victoria-metrics的单机版的地址,如果要再添加一个Prometheus的时序库,这里只需要把这段[[Pushgw.Writers]]的整个数据字段复制粘贴一段,然后再添加Prometheus的地址
再重启一下n9e就添加完成了
(这里再补充一下怎么添加多台主机监控)
假如现在我有主机A 主机B ,我现在也想监控主机B,只需要把categraf的安装包放主机B解压,然后打开配置文件,把下面两个字段的url改为n9e的IP地址,然后启动就可以了
并且如果你的这台主机B安装了victoria-metrics并且端口跟n9e的时序数据库的端口一样并且在n9e的web页面已经添加过同类型的时序数据库,他就会自动识别,直接在web可视化页面查看查询即可
(二):监控仪表盘的配置
接下来就是逐一介绍夜莺的功能,从可视化仪表盘开始
首先点击仪表盘的内置仪表盘进行配置添加监控收集的的数据,这里我们选linux主机监控,夜莺有很多可以监控的,分类一栏所有服务都可以做仪表盘的配置
这里可以查看仪表盘大盘信息,第一个是用Prometheus Exporter收集的数据,第二个是Telegraf收集,第三个是Categraf收集的,因为我们配置监控的只是两台linux主机的信息 ,所以点击查看Telegraf和Gategraf的仪表盘就可以看见仪表盘的信息内容
当然也可以自定义监控的数据或者是想要的仪表盘
(三):告警的配置管理
告警规则分为几个小板块,告警规则,内置规则,屏蔽规则,订阅规则,活跃规则,历史告警
(1):告警规则
告警规则顾名思义就是制定告警的规则,制定自己需要的规则来触发告警的条件来监控服务的状态,分为几大板块:基础配置,规则配置,生成配置,通知配置
①: 基础配置
规则名称: 自定义你的规则的名字
附加标签:这个标签是key=value的格式,你如果打了一个标签,比如servce=dream,那么在后续的规则处理中过滤
备注:告警规则的附加备注
②:规则配置:分为Metric和Host机器类型的告警
(1): Metirc类型的告警
关联数据源: 配置的数据源时序库数据库
告警条件:当服务主机到达这个条件就会发生告警警报
PromQL:用于Prometheus监控系统的查询语言,用于从Prometheus存储中检索和聚合指标数据。PromQL是一种非常灵活和可扩展的查询语言,可以支持各种不同类型的指标数据分析和检索。这里我们写一个触发条件,比如mem_available_percent < 50他就会触发报警
触发告警:这里有三个等级,最严重优先级最高的就是一级报警,依次往后。当然也可以添加其他的告警条件,这里是可以添加多个告警条件来触发告警
这里如果把级别限制打开后,那么高级别的告警就会直接抑制低级别的告警,不会重复报警打扰我们处理
(2): 机器类型告警
机器告警有三个规则: 机器失联,机器集群失效,机器时间偏移
机器失联: 就是机器失去连接,连接状态出问题,或者机器死机情况
机器时间偏移: 机器时间时钟的监控,监控对时间有要求,如果时间偏移大了,会影响数据的同步查看
机器集群失联:设置集群失联比例,比如一个机器集群如果有百分之60的机器都失联了,那么就会发出告警。
机器的筛选:
业务组: 就是一个项目组一个组里面的机器,或者说一个项目组集群筛选
标签:在基础设施里面给我们监控的机器打上特定的标签来筛选
机器标识:就是具体的某一台主机筛选或多台主机筛选
机器类型告警这里也是可以进行多个告警条件的设置,级别压制
执行频率:告警多久执行一次
持续时长:满足告警条件多少秒后告警
③: 生成配置
生效的时间:什么时候给我发出告警
④:通知配置
通知媒介:通知告警的方式,比如钉钉,emall,手机等等
告警接受组:哪个业务组接受这些告警
启动恢复通知:告警恢复了,是否通知
留观时长:如果告警出现的问题在留观时长没有到之前,偶尔的恢复正常,还是不算已经恢复告警,只有超过留观时长,运行的错误没有出现后,才会恢复正常,不然还是会告警。比如这里的留观时长我设置5分钟,如果我的cpu占有率突然到达了百分之80以上并且符合我的告警条件,如果在我处理告警错误的时间中,5分钟之内这个cpu占有率偶尔下降到了正常值,但是一会儿又升高了,那么这个告警就不会恢复,如果这个cpu占有率5分钟之后还是正常值,那么这个告警就恢复
重复通知间隔:通知的间隔,告警通知一次后,60分钟后再给我发送告警通知
最大发送次数:给我发送通知的最大次数,不会一直给我们发。
回调地址:如果发生故障告警,那么他就把故障回调给一些故障处理平台进行处理,然后我们会收到告警的内容,比如我的磁盘满了,告警,我这里回调地址了一个平台,或者说就是夜莺的告警自愈平台,他就会去那个故障处理平台,收到告警内容,然后做相应的处理,清理磁盘等等
附加信息:分为预案链接,仪表盘链接,描述。预案连接就是如果发生此类的告警,我们事先做了一个预案来解决这个故障,那么就可以把那个预案的链接贴上。 仪表盘链接:故障的机器的仪表盘链接。描述:备注这个告警规则
(2): 内置规则
夜莺平台提供的写好的一些告警规则,如果你是新手或者嫌麻烦自己创建,可以直接在这里克隆规则到业务组进行规则设置
这里也有多个收集器的告警规则的选择
克隆好告警规则后在告警规则里查看本业务组设置的告警规则并且启动
(3) 屏蔽规则
当我们收到告警之后,在处理故障的时候,我们不想他一直给我们推送告警信息来打扰我们,那么我们就可以设置屏蔽规则来屏蔽这个告警,不让他打扰我们处理事件
假如我们有这样一条告警,我们想要他不再告警,屏蔽,直接点屏蔽设置
然后就可以设置这个告警屏蔽的时间,屏蔽的标签,屏蔽的数据内容时间等
还有一种屏蔽告警的场景就是,比如我们要部署或者升级一个服务,要更改主机的设置,或者会让主机进行关机等等,就是我们将要做的一些事件会触发这个告警条件,那么我们可以新建设置一个屏蔽告警的规则,来让他自动屏蔽掉这个告警,
屏蔽时长: 比如这里我们要升级变更服务1个小时 那么这里屏蔽时长就可以设置为1个小时
屏蔽事件标签:比如我们有几个规则打了标签,比如service=dream,那么在这里屏蔽规则声明屏蔽标签后,他就会把有这个标签的告警规则都屏蔽掉,屏蔽一个小时
(4) 订阅规则
第一种应用场景:比如在一个公司,小王在运维部门,小李在开发部门。小王能就专门负责收集这些业务告警处理。有一天小李开发上线了一个自己业务叫Dream-stack,想要亲自查看获取这个业务的告警,但是这个告警规则什么的权限都是小王掌握的,并且配置告警规则的时候,告警接受组也是小王的运维团队,但是因为小王跟小李平时关系很好,这个时候小王就开启了夜莺的订阅规则,把只要是关于Dream-stack标签的告警规则的告警都转发告警接受组为小李,这个时候小李也能实时收到这个业务的告警信息了。
这样就把这个Dream-stack的告警都订阅转发给了小李开发团队的人并且使用的媒介是用电子邮箱通知他们告警信息,并且也能更改告警的级别,回调地址,把关于Dream-stack的告警都转发订阅给了小李团队的业务组
第二种应用场景:在一家公司,小李在开发部门,小王在运维部门。有一天,上线的一个服务业务突然告警故障,并且那个告警的规则接受是小李团队,这时候小李收到告警后,就开始处理故障,结果越搞越砸,故障越来越多,而且一直没有解决,小李就焦虑,想着如果这个故障处理不了就把锅甩给小王,他想毕竟都是亲兄弟,小王工资高一点扣一点无所谓,然后小李就把这个订阅告警的订阅持续时长超过字段改为了10分钟,如果10分钟这个告警还没有解决,就把这个告警通过一级别的告警级别推送给小王背锅,
(5) 活跃告警
活跃告警就是告警产生后,我们能实时看有哪些告警没有恢复,还有那些故障还在持续
(6) 历史告警
历史告警顾名思义就是总共发生多少条告警故障,方便我们总结查看
(三):时序指标
即时查询:就是查看像普罗米修斯一样输入PromQL语句来查询想要的数据
快捷视图:夜莺内置的一些PromQL语句你可以直接点击查询想要的数据字段。
(四):日志分析
对接日志分析组件,这里直接系统设置,数据源添加Elasticsearch的数据源,就可以在这里实时查看日志
(五):链路追踪
跟日志分析一样,先配置jaeger数据源,然后这里添加数据源直接就可以查看使用了
还可以支持拓扑分析
(六):基础设施
查看监控的主机有哪些,机器列表状态等等
(七):告警自愈
告警自愈这个功能很强大,可以自动处理告警规则,可以自己创建一些自愈脚本来处理解决故障 我们创建一个自愈脚本,这个脚本可以自己根据实际环境编写,对运维来说很友好,因为可以使用shell脚本等等
这里面大多数字段都有介绍,比如这里我们写了一个查看端口的命令脚本,来解决告警,如何使用这个告警自愈功能呢,我们现在打开我们的告警规则设置,并且要注意我们这里创建的自愈脚本的ID为2
打开告警规则配置,找到回调地址
这些填写${ibex}/2 前面的${ibex}/是固定的格式,2是我们的自愈脚本的ID号,这样添加设置后,这个告警规则触发后,它就会自动执行我们的自愈脚本里面的任务,这里的${ibex}可以在后面的系统配置的通知设置里面自定义格式
(八):人员组织
这里就是一些用户的创建,业务组的创建,团队的创建,权限管理这几个模块
用户创建完成后,可以分配到指定的团队里面,团队也可以进去某一个业务组里面,然后权限管理就是对应创建不同的角色,每个角色分配不同的权限进行管理
角色是在创建用户的时候赋予的角色权限
这里还可以把用户直接绑定到钉钉机器人,或者企业wx什么的进行发送告警推送
这里的联系方式的添加在下面的系统配置里面给大家介绍
(九):系统配置
系统配置也是分为几块模块:数据源,通知设置,通知模板,单点登陆,告警引擎 ,系统版本
(1)数据源:
数据源就是用来配置添加一些数据源的接收信息,接收地址,常用的呢比如添加Prometheus的数据源,victor-metrics的数据源,Elasticsearch的日志分析等等,添加完成后,就可以通过夜莺的时序指标、日志分析或者链路追踪来实时查看监控
(2)通知设置:
通知设置也分为几块小模块:
回调地址:就是前面告警规则里面配置的处理告警故障的平台,也可以做全局回调。
通知脚本:配置自定义的一些通知媒介,比如手机通知告警,短信等等,也可以直接使用本地的文件路径
通知媒介:告警通知的方式,可以自定义进行添加手机,emall,钉钉等通知渠道
联系方式: 控制每个角色用户的联系方式,比如手机号,钉钉机器人,上面人员组织栏中的用户创建的联系方式就是在这里自定义添加机器人或者其他的联系手段。
SMTP:是用于邮箱告警的声明配置,对接的邮件网关
告警自愈:上面我们使用的告警规则里面的告警自愈的那个地址(${ibex}/2 )就是在这里申明配置自定义的。
(十):对接邮箱告警案列配置
这里我们做一个小小的实验来验证夜莺的告警推送和规则触发,我们使用QQ邮箱来做通知媒介来进行告警通知
(1) 创建告警规则
我们这里创建一个叫test的告警规则,告警配置是当机器失联断开超过5秒就触发报警,并且告警的通知媒介为email,回调地址为我们上面创建的自愈脚本ID为2的脚本
(2)配置邮箱SMTP进行告警
先打开qq邮箱的SMTP功能
接下来打开夜莺的SMTP设置配置
格式为:
Host = "smtp.qq.com" # 这里固定的Port = 465 # 这里端口也要固定User = "2369831769@qq.com" # 这里为你qq邮箱地址Pass = "" # 这里为你刚刚qq邮箱开启smtp功能的密钥From = "2369831769@qq.com" # 这里也为你qq邮箱的地址InsecureSkipVerify = true # 默认不变Batch = 5 # 默认不变
然后保存设置
(3)触发告警
这里我们本地有两台主机,我们告警的规则设置的是机器失联触发,这里我们去linux上把这台主机关掉,然后等5秒就回收到邮箱告警通知
第二次夜莺讲完了,搞了一晚上,可以说全网最详细的面板教程了,观众老爷们多点点赞转发一下这个国产之光夜莺!了解过的都说牛逼, 而且我觉得夜莺的优点就是能把多个数据监控都统一到夜莺n9e这一个监控模板上面查看,巨方便我们查看,而且告警自愈的功能也是十分的强大,后面还会继续持续更新这个系列,下一期讲讲mysql的监控还有一些其他的关于夜莺的功能,一周之内更新!♥