玩转prometheus告警 alertmanger(一)之prometheus告警规则

这篇具有很好参考价值的文章主要介绍了玩转prometheus告警 alertmanger(一)之prometheus告警规则。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1. 告警系统原理概述

2.  配置prometheus规则

2.1 配置告警规则目录

2.2 告警规则

3. 查看效果


1. 告警系统原理概述

在开始之前,需要了解下prometheus和altermanger之间的关系是什么?从prometheus的架构及生态系统组件来看

prometheus配置alerts,prometheus,linux,运维,服务器

  Prometheus从targets中抓取指标(metric)并存储,通过对指标进行分析生成告警(alert),并将告警(alert)推送(push)到Alertmanger,Alertmanger对告警进行分组、聚合等处理后,通过邮件、Slack、webhook等方式对用户进行发送告警信息。

总结整个告警系统工作流程:

1)制定prometheus告警规则,当监控指标触发告警规则时,向altermanger发送告警;

2)altermanger接收prometheus发送的告警,管理告警信息,通过分组、静默、抑制、聚合等处理,将告警通过路由发送到对应的接收器上,按不同的规则发送给不同的模块负责人,支持邮件、salck及webhook(对接企业微信/钉钉/飞书)方式发送告警通知。

2.  配置prometheus规则

prometheus告警规则主要依赖于采集指标(metric),通过对指标进行分析设置阀值来达到告警的目的

  • node监控指标可参考:node_exporter监控项说明https://lnsyyj.github.io/2019/05/27/prometheus-node-exporter-%E7%9B%91%E6%8E%A7%E9%A1%B9/
  •  mysql exporter指标可参考:
  • GitHub - prometheus/mysqld_exporter: Exporter for MySQL server metricshttps://github.com/prometheus/mysqld_exporter

2.1 配置告警规则目录

创建rules目录,用于统一存放告警规则

# 在prometheus根目录下创建rules目录
mkdir -p /usr/local/prometheus/rules

# 配置prometheus.yml rule_files路径
# vim /usr/local/prometheus/prometheus.yml

global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:   # 增加alertmanager配置
  alertmanagers:
    - static_configs:
        - targets: ['localhost:9093']
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files: # 配置告警规则目录
  - rules/*.yml

重启prometheus生效规则

# 热重载
curl -X POST http://127.0.0.1:9090/-/reload

2.2 告警规则

 告警规则示例以服务器资源监控指标为准,包括主机CPU/内存/硬盘/网络/TCP等告警规则,所有告警规则以*.yml的后缀存放到/usr/local/prometheus/rules目录下,目录可自定义(详看2.1配置告警规则目录)

2.2.1 主机存活

groups:
- name: 主机存活告警  # 命名
  rules:
  - alert: 主机存活告警 # 命名
    expr: up == 0 # 表达式,分析指标判定告警
    for: 60s  # 触发告警持续时间
    labels:   # 自定义告警标签
      severity: warning
    annotations:   # 告警内容注释,根据需要制定
      summary: "{{ $labels.instance }} 宕机超过1分钟!"  

2.2.2 内存利用

groups:
- name: 主机内存使用率告警
  rules:
  - alert: 主机内存使用率告警
    expr: (1 - (node_memory_MemAvailable_bytes / (node_memory_MemTotal_bytes))) * 100 > 80
    for: 15m
    labels:
      severity: warning
    annotations:
      summary: "内存利用率大于80%, 实例: {{ $labels.instance }},当前值:{{ $value }}%"

2.2..3 cpu利用

groups:
- name: 主机CPU使用率告警
  rules:
  - alert: 主机CPU使用率告警
    expr: 100 - (avg by (instance)(irate(node_cpu_seconds_total{mode="idle"}[1m]) )) * 100 > 80
    for: 15m
    labels:
      severity: warning
    annotations:
      summary: "CPU近15分钟使用率大于80%, 实例: {{ $labels.instance }},当前值:{{ $value }}%"

2.2..4 磁盘利用

# 磁盘利用>80%
groups:
- name: 主机磁盘使用率告警
  rules:
  - alert: 主机磁盘使用率告警
    expr: 100 - node_filesystem_free_bytes{fstype=~"xfs|ext4"} / node_filesystem_size_bytes{fstype=~"xfs|ext4"} * 100 > 80 
    for: 15m
    labels:
      severity: warning
    annotations:
      summary: "磁盘使用率大于80%, 实例: {{ $labels.instance }},当前值:{{ $value }}%"

2.2.5 tcp time_wait

groups:
- name: 主机Tcp TimeWait数量过多告警
  rules:
  - alert: 主机Tcp TimeWait数量过多告警
    expr: node_sockstat_TCP_tw >= 5000
    for: 1m
    labels:
      severity: warning
    annotations:
      summary: "Tcp TimeWait数量大于5000, 实例: {{ $labels.instance }},当前值:{{ $value }}%"

2.2.6 iowait

groups:
- name: 主机iowait较高
  rules:
  - alert: 主机iowait较高
    expr: (sum(increase(node_cpu_seconds_total{mode='iowait'}[5m]))by(instance)) / (sum(increase(node_cpu_seconds_total[5m]))by(instance))  *100 >= 10
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "CPU ioWait近5分钟占比大于等于10%, 实例: {{ $labels.instance }},当前值:{{ $value }}%"

2.2.7 磁盘读过大

groups:
- name: 主机磁盘读过大
  rules:
  - alert: 主机磁盘读过大
    expr: sum by (instance) (rate(node_disk_read_bytes_total[2m])) > 50*1024 *1024 
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "磁盘读过大, 实例: {{$labels.instance}},当前值: {{ $value | humanize1024 }}。"

2.2.8 磁盘写过大

# 写入 > 50MB/s
groups:
- name: 主机磁盘写过大
  rules:
  - alert: 主机磁盘写过大
    expr: sum by (instance) (rate(node_disk_written_bytes_total[2m])) > 50 * 1024 * 1024
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "磁盘写过大, 实例: {{$labels.instance}},当前值: {{ $value | humanize1024 }}。"

2.2.9 重启prometheus生效规则

# 热重载
curl -X POST http://127.0.0.1:9090/-/reload

3. 查看效果

查看:http://127.0.0.1:9090/alerts?search=

Prometheus Alert 告警状态有三种状态:Inactive、Pending、Firing。

  • Inactive:非活动状态,表示正在监控,但是还未有任何警报触发。
  • Pending:表示这个警报必须被触发。由于警报可以被分组、压抑/抑制或静默/静音,所以等待验证,一旦所有的验证都通过,则将转到 Firing 状态。
  • Firing:将警报发送到 AlertManager,它将按照配置将警报的发送给所有接收者。一旦警报解除,则将状态转到 Inactive,如此循环。

prometheus配置alerts,prometheus,linux,运维,服务器

 至此,prometheus告警系统告警规则部分就完成了,其它告警规则根据需要自行添加,这里就不做分享了

觉得好用就点个收藏 吧~文章来源地址https://www.toymoban.com/news/detail-641461.html

到了这里,关于玩转prometheus告警 alertmanger(一)之prometheus告警规则的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 阿里云ACK托管版安装Prometheus并配置kafka告警

    前提条件: 1.已有ACK集群。 一、ACK集群中创建prometheus、alert的持久化的存储类(总共创建2个,步骤一致,名称和挂载的nas盘或者子目录不同而已)。grafana的dashboard持久化通过添加配置文件并打标签实现。 一、在应用市场找到ack-prometheus-operator,点击进入后选择\\\"一键部署\\\"。  二、

    2024年01月22日
    浏览(32)
  • prometheus 配置服务器监控、服务监控、容器中服务监控与告警

           最近公司有几个服务遇到了瓶颈,也就是数据量增加了,没有人发现,这不是缺少一个监控服务和告警的系统吗?         主要需求是监控每个服务,顺带监控一下服务器和一些中间件,这里采集的2种,zabbix和prometheus,由于我们要监控的是Docker容器中的服务,最终

    2024年02月14日
    浏览(38)
  • Springboot 集成Prometheus 数据采集 使用grafana 监控报告告警 邮件配置

    目录 Springboot 相关 Pom 重点包 如果有需要可以增加安全包-一般内部机房没啥事-(非必选) Application.yml配置文件-(非必选) Application.properties management.endpoints.web.exposure.include介绍 启动类 查看监控信息 Prometheus Prometheus.yml 配置 如果使用类安全包-(非必选) 启动就可以看到了

    2024年02月11日
    浏览(41)
  • Prometheus接入AlterManager配置邮件告警(基于K8S环境部署)

    基于 此环境做实验 1.创建AlertManager ConfigMap资源清单 执行YAML资源清单: 2.配置文件核心配置说明 group_by: [alertname]:采用哪个标签来作为分组依据。 group_wait:10s:组告警等待时间。就是告警产生后等待10s,如果有同组告警一起发出。 group_interval: 10s :上下两组发送告警的间隔

    2024年04月17日
    浏览(29)
  • prometheus进程监控配置告警及解决grafana监控面板不展示主机名问题

    process_exporter进程监控及告警 监控服务器全部或某些进程是否健康,以及进程所占用资源是否异常使用process_exporter监测器进行进程信息的采集与node_exporter监测器相同,需要监测哪台服务器的进程,就将process_exporter监测器部署在哪台 安装process_exporter wget Release v0.7.10 · ncabato

    2024年02月13日
    浏览(35)
  • Prometheus接入AlterManager配置企业微信告警(基于K8S环境部署)

    注意:请基于 Prometheus+Grafana监控K8S集群(基于K8S环境部署)文章之上做本次实验。 1、创建企业微信机器人 点击登入企业微信网页版: 应用管理 机器人 创建应用 创建好之后如上图,我们获取 点击查看获取 Secret 值。 2、获取企业ID 1、创建AlterManager ConfigMap资源清单 执行YAML资源

    2024年02月04日
    浏览(35)
  • 【Linux】部署Prometheus + Grafana简介、监控及设置告警详细操作(多种方式安装,亲测无问题)

    🍁 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 服务器类型 IP地址 组件 Prometheus 服务器、agent 服务器、grafana 服务器 172.16.11.209 Prometheus、node_exporter、Grafana

    2024年02月13日
    浏览(32)
  • Linux部署docker以及prometheus+node_exporter+mysqld-exporter+grafana+cadvisor+Alertmanager(告警)

    Linux安裝docker以及部署prometheus+node_exporter+mysqld-exporter+grafana+cadvisor+Alertmanager(告警) 1、官方安裝脚本自动安装docker curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 2、启动docker systemctl start docker 3、搜索镜像-例如搜索prometheus docker search prom/prometheus 4、拉取镜像--这里仅列出我

    2024年03月15日
    浏览(55)
  • 容器云平台监控告警体系(五)—— Prometheus发送告警机制

    在Prometheus的架构中告警被划分为两个部分,在Prometheus Server中定义告警规则以及产生告警,Alertmanager组件则用于处理这些由Prometheus产生的告警。本文主要讲解Prometheus发送告警机制也就是在Prometheus Server中定义告警规则和产生告警部分,不过多介绍Alertmanager组件。 在Prometheus中

    2023年04月23日
    浏览(36)
  • prometheus告警处理

    一.告警简介 1.工作流程 prometheus收集监测的信息 prometheus.yml 文件中定义 rules 文件,rules 里包含告警信息 prometheus 把告警信息 push 给 altermanager,alertmanager 里定义收件人和发件人 altermanager 发送文件到邮箱或微信 2.告警生命周期 定期采集监控数据 定期扫描告警规则,发现告警

    2023年04月08日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包