运维八一 运维八一
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)

运维八一

运维,运维!
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)
  • Devops笔记

  • Kubernetes

  • 运维监控系统

  • go分布式爬虫

  • Linux性能优化

  • 夜莺(nightingale)开源观测平台

    • 夜莺(nightingale)介绍
    • n9e 部署
    • Categraf 采集器部署
    • VictoriaMetrics 时序库部署
    • 夜莺功能介绍
      • 1. 告警规则
      • 2. 内置规则
      • 3. 屏蔽规则
      • 4. 订阅规则
      • 5. 活跃告警、历史告警
      • 6. 记录规则
  • kubernetes-network-policy-recipes

  • 专栏
  • 夜莺(nightingale)开源观测平台
lyndon
2023-05-30
目录

夜莺功能介绍

Grafana 更擅长监控面板的管理,N9e 更擅长告警规则的管理。

image-20230530142218248

# 1. 告警规则

image-20230530142317408

可以根据实际情况创建多个业务组(infra),然后就可以把涉及到多个业务组(infra)的告警规则进行分开管理。

默认导入进来的规则原则上是没有生效的,需要做一些额外配置。点开告警规则名称,进入配置页面。

image-20230530142610749

image-20230530142647275

基础配置

  • 规则名称: 自定义规则的名字
  • 附加标签:这个标签是key=value的格式,如果打了一个标签,比如servce=dream,那么可以在后续的规则处理中过滤
  • 备注:告警规则的附加备注

规则配置

分为Metric和Host机器类型的告警

Metirc类型的告警

  • 关联数据源: 配置的数据源时序库数据库
  • 告警条件:当服务主机到达这个条件就会发生告警警报
  • PromQL:用于Prometheus监控系统的查询语言,用于从Prometheus存储中检索和聚合指标数据。PromQL是一种非常灵活和可扩展的查询语言,可以支持各种不同类型的指标数据分析和检索。这里我们写一个触发条件,比如mem_available_percent < 50他就会触发报警
  • 触发告警:这里有三个等级,最严重优先级最高的就是一级报警,依次往后。当然也可以添加其他的告警条件,这里是可以添加多个告警条件来触发告警
  • 级别抑制:打开后,高级别的告警就会直接抑制低级别的告警,不会重复报警
  • 执行频率:每 xx 秒执行一次,连续持续 xx 秒依然满足告警规则,则会触发告警

Host类型的告警

image-20230530142754051

机器的筛选:

  • 业务组: 就是一个项目组一个组里面的机器,或者说一个项目组集群筛选
  • 标签:在基础设施里面给我们监控的机器打上特定的标签来筛选
  • 机器标识:就是具体的某一台主机筛选或多台主机筛选

机器告警规则: image-20230530142819748

  • 机器失联: 就是机器失去连接,连接状态出问题,或者机器死机情况
  • 机器时间偏移: 机器时间时钟的监控,监控对时间有要求,如果时间偏移大了,会影响数据的同步查看
  • 机器集群失联:设置集群失联比例,比如一个机器集群如果有百分之60的机器都失联了,那么就会发出告警。

机器类型告警也可以进行多个告警条件的设置:级别抑制、执行频率、持续时长

生效配置 用来配置该告警规则在什么时间段,什么业务组生效。

通知配置 通知配置则是配置通知媒介,也就是如果产生了告警,应该通过哪些渠道发到哪些地方。

  • 通知媒介:通知告警的方式,比如emall、短信等等
  • 告警接受组:哪个业务组接受这些告警
  • 启动恢复通知:告警恢复了,是否通知
  • 留观时长:如果告警出现的问题在留观时长没有到之前,偶尔的恢复正常,还是不算已经恢复告警,只有超过留观时长,运行的错误没有出现后,才会恢复正常,不然还是会告警。 比如留观时长设置5分钟,如果cpu占有率突然到达了百分之80以上并且符合告警条件,如果在处理告警错误的时间中,5分钟之内这个cpu占有率偶尔下降到了正常值,但是一会儿又升高了,那么这个告警就不会恢复,如果这个cpu占有率5分钟之后还是正常值,那么这个告警就恢复。
  • 重复通知间隔:通知的间隔,告警通知一次后,60分钟后再发送告警通知
  • 最大发送次数:发送通知的最大次数,不会一直发。
  • 回调地址:如果发生故障告警,会把故障回调给故障处理平台进行处理。收到告警内容,然后做相应的处理、清理磁盘等。目前是通过回调地址调用短信/微信 webhook来发送告警。
  • 附加信息:分为预案链接,仪表盘链接,描述。 预案连接就是如果发生此类的告警,事先做了一个预案来解决这个故障,那么就可以把那个预案的链接贴上。 仪表盘链接:故障的机器的仪表盘链接。 描述:备注这个告警规则。

# 2. 内置规则

image-20230530142859797

提供一套普适性的规则,旨在降低使用门槛。内置的告警规则默认不会生效,如果使用某个规则,可以把它克隆到告警规则中。

# 3. 屏蔽规则

image-20230530142933762

image-20230530142952165

屏蔽规则也是按业务组分的,可以设置告警屏蔽的时间,屏蔽的标签,屏蔽的数据内容时间等。创建屏蔽规则的方式:

  • 手动创建屏蔽规则
  • 基于活跃告警或历史告警,一键屏蔽

# 4. 订阅规则

image-20230530143021844

image-20230530143043386

如果一个告警在一段时间内还没进行处理,怎么办?

要么不是重要的告警 —— 把规则删了吧,留之无用。

要么是解决不了的告警 —— 升级吧,让更多人知道。

在夜莺中,在订阅规则中可以实现告警升级,可以重新定义告警级别、通知方式。

第一种应用场景:运维升级告警到研发。比如在一个公司,小王在运维部门,小李在开发部门。小王专门负责收集这些业务告警处理。有一天小李开发上线了一个自己业务叫Dream-stack,想要亲自查看获取这个业务的告警,但是这个告警规则什么的权限都是小王掌握的,并且配置告警规则的时候,告警接受组也是小王的运维团队,但是因为小王跟小李平时关系很好,这个时候小王就开启了夜莺的订阅规则,把只要是关于Dream-stack标签的告警规则的告警都转发告警接受组为小李,这个时候小李也能实时收到这个业务的告警信息了。

第二种应用场景:研发升级告警到运维。在一家公司,小李在开发部门,小王在运维部门。有一天,上线的一个服务业务突然告警故障,并且那个告警规则接受组是小李团队,这时候小李收到告警后,就开始处理故障,结果越搞越砸,故障越来越多,而且一直没有解决,小李就焦虑,想着如果这个故障处理不了就发给小王处理,然后小李就把这个订阅告警的订阅持续时长字段改为了10分钟,如果10分钟这个告警还没有解决,就把这个告警通过一级别的告警级别推送给小王。

第三种应用场景:L1升级到L2

# 5. 活跃告警、历史告警

查看当前有哪些告警信息,以及历史的告警记录。

# 6. 记录规则

image-20230530143234631

记录规则(Record Rule)实现基于现有指标数据计算出新指标数据,通过定时周期(interval)执行计算规则,形成新的指标时序数列,生产中记录规则往往用于简化PromQL复杂性。

夜莺系统中配置记录规则,并不是比如生成Rule规则文件下发到Prometheus中,而是采用【远程查询】- 【解析】 - 【远程写入】方式,涉及到远程读写,所以这里可能需要关注网络IO情况。 因为Prometheus配置管理这块较弱,没有提供配置管理功能,也没有相关接口,只能进行文件加载,若要搞成下发配置则需要agent才行,对于后面的告警规则一样,也是远程读取数据自行管理触发告警事件,而没有使用Rule Alarm方式。

上次更新: 2023/05/30, 14:37:41
VictoriaMetrics 时序库部署
create-cluster

← VictoriaMetrics 时序库部署 create-cluster→

最近更新
01
ctr和crictl显示镜像不一致
03-13
02
alpine镜像集成常用数据库客户端
03-13
03
create-cluster
02-26
更多文章>
Theme by Vdoing | Copyright © 2015-2024 op81.com
苏ICP备18041258号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式