Prometheus告警常用配置

引言:

Prometheus是一个按功能划分的凭条,指标的收集和存储与警报是分开的。警报管理功能是由Alertmanager的工具提供,该工具是监控体系中的独立组件。

在Prometheus上定义警报规则后,这些规则可以出发事件,然后传播到Alertmanager,Alertmanager会决定如何处理相应的警报。Alertmanager对警报进行去重、分组,然后路由到不同的接收器,如电子邮件、短信或SaaS服务(PagerDuty等)。我们将在Prometheus服务器上编写警报规则 [2] ,这些规则将使用我们收集的指标并在指定的阈值或标准上触发警报。我们还将看到如何为警报添加一些上下文。当指标达到阈值或标准时,会生成一个警报并将其推送到Alertmanager。与Prometheus一样,Alertmanager配置也是基于YAML的配置文件。

 

一、Alertmanager安装使用

下载地址:

https://prometheus.io/download/#alertmanager

解压并将以下两个文件复制到指定目录,如下

[root@bogon alertmanager]# cp alertmanager /usr/local/bin/
[root@bogon alertmanager]# cp amtool /usr/local/bin/

[root@bogon ~]# alternatives --version  #查看版本  
alternatives version 1.7.2

[root@bogon alertmanager]# ./alertmanager  #启动Alertmanager

浏览器访问ip:9093即可查看到Alertmanager图形页面

二、Prometheus配置Alertmanager

修改prometheus.yml文件,添加lerting块。具体内容如下:(其中最后一行的alertmanager为ip地址,或可以解析到对应的Alertmanager的IP)

alerting:

  alertmanagers

  - static_configs:

   -targets:

    -alertmanager:9093

配置监控好Alertmanager后,告警内容会发送给Alertmanager

三、Alertmanager服务发现

暂时没明白什么意思,后续清楚了再进行补充

 

四、监控Alertmanager

配置prometheus.yml文件

- job_name: 'alertmanager'

  static_configs:

  - targets: ['localhost:9093']

添加报警规则

在prometheus.yml的同级目录中,创建rules目录,在该新建目录下创建node_alerts.yml文件,内容如下:

rule_files:

  - "rules/*_rules.yml"

  - "rules/*_alerts.yml"

需要重启Prometheus才能使该文件配置生效

添加第一条警报规则-》如果5分钟内节点平均CPU使用率在至少60分钟内超过80%,则会触发警报

groups:

- name: node_alerts

  rules:

  - alert: HighNodeCPU

    expr: instance:node_cpu:avg_rate5m >80

    for: 60m

    labels:

       serverity:warning

    annotations:

       summary: High Node CPU for 1 hour

       console: You might want to check the Node Dashboard 

解释:指定组名为nod_alerts,警报名称为HighNodeCPU(每个警报组中,警报名称必须唯一),触发警报的测试表达式在expr中,检查条件为该指标是否大于80(或者说是80%使用率),for为测试表达式必须为true的时间长度。其中annotations里的summary的标签用来描述警报,console用注释提供上下文,方便快速排错。

五、警报触发

Prometheus以一个固定时间间隔来评估所有规则,这个时间由evaluate_interval定义,我们将其设置为15秒。

警报有三中状态:Inactive 警报未激活。Pending:警报已满足测试表达式条件,但未达到for指定的持续时间。Firing:警报满足测试表达式条件,且持续时间达到了for指定的持续时间。

 

上一篇:bt宝塔linux面板命令大全


下一篇:prometheus 与 alertmanager 结合 发送邮件报警