监控系统中非常重要的一环,就是告警,系统得在故障发生的第一时间将事件发送出来,通知干系人,prometheus提供了alertmanager来实现这个功能。

第一步:prometheus.yml配置文件,配置alertmanager地址

第二步:编写触发器,也就是在什么情况下产生告警。

Prometheus.yml填写触发器配置文件路径

alert_rule.yml内容

groups:
- name: node
rules:
- alert: node_cpu>80%
expr: (1-rate(node_cpu_seconds_total{mode="idle"}[1m]))*100 > 80
labels:
severity: 3
- alert: node_mem_availble<%
expr: node_memory_MemAvailable_bytes/node_memory_MemTotal_bytes*100 < 20
labels:
severity: 3
- alert: node_cpu_load>10
expr: node_load1 > 10
labels:
severity: 3
- alert: node_disk<%
expr: node_filesystem_avail_bytes{device!='nsfs'}/node_filesystem_size_bytes{device!='nsfs'}*100 < 20
labels:
severity: 3
- name: docker
rules:
- alert: docker_cpu>50%
expr: rate(container_cpu_usage_seconds_total{image!=''}[1m])*100 > 50
labels:
severity: 3
- alert: docker_restarted
expr: changes(container_start_time_seconds[1m]) != 0
labels:
severity: 4

其中expr就是产生告警的条件,即当这个语句条件成立时,触发告警,下面的labels是告警内容中的标签,这里添加了一个标签,即告警等级severity,可以自定义1-5,来区分不同级别的告警。

第三步:产生的告警怎么处理,是发消息?发送给谁?通过什么发送?都是在这里配置。alertmanager.yml配置文件

内容如下:

global:
resolve_timeout: 5m route:
group_by: ['alertname']
group_wait: 10s
group_interval: 10s
repeat_interval: 1h
receiver: 'wechat'
routes:
- match_re:
severity: 1|2|3|4|5
receiver: 'wechat'
continue: true
- match:
severity: 5
receiver: 'message'
continue: true
- match:
severity: 5
receiver: 'call'
continue: true
receivers:
- name: 'wechat'
webhook_configs:
- url: 'http://localhost/alert_wechat'
- name: 'message'
webhook_configs:
- url: 'http://localhost/alert_message'
- name: 'call'
webhook_configs:
- url: 'http://localhost/alert_call'
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'dev', 'instance']

这里用了一个receiver,即web_hook,Prometheus会把告警内容post到指定的url地址。

【Prometheus】第三篇:配置alertmamager的更多相关文章

  1. 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...

  2. (转) 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    原文地址: http://www.cnblogs.com/lyhabc/p/4682986.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第三篇,这一篇才真正开始搭建Alwa ...

  3. 第三篇——第二部分——第五文 配置SQL Server镜像——域环境SQL Server镜像日常维护

    本文接上面两篇搭建镜像的文章: 第三篇--第二部分--第三文 配置SQL Server镜像--域环境:http://blog.csdn.net/dba_huangzj/article/details/ ...

  4. 第三篇——第二部分——第三文 配置SQL Server镜像——域环境

    原文:第三篇--第二部分--第三文 配置SQL Server镜像--域环境 原文出处:http://blog.csdn.net/dba_huangzj/article/details/28904503 ...

  5. 第三篇——第二部分——第四文 配置SQL Server镜像——非域环境

    原文:第三篇--第二部分--第四文 配置SQL Server镜像--非域环境 本文为非域环境搭建镜像演示,对于域环境搭建,可参照上文:http://blog.csdn.net/dba_huangzj/ ...

  6. Spring第二篇和第三篇的补充【JavaConfig配置、c名称空间、装载集合、JavaConfig与XML组合】

    前言 在写完Spring第二和第三篇后,去读了Spring In Action这本书-发现有知识点要补充,知识点跨越了第二和第三篇,因此专门再开一篇博文来写- 通过java代码配置bean 由于Spr ...

  7. 从0开始搭建SQL Server 2012 AlwaysOn 第三篇(安装数据,配置AlwaysOn)

    这一篇是从0开始搭建SQL Server 2012 AlwaysOn 的第三篇,这一篇才真正开始搭建AlwaysOn,前两篇是为搭建AlwaysOn 做准备的 操作步骤: 1.安装SQL server ...

  8. (转载) 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    这一篇是从0开始搭建SQL Server AlwaysOn 的第三篇,这一篇才真正开始搭建AlwaysOn,前两篇是为搭建AlwaysOn 做准备的 步骤 这一篇依然使用step by step的方式 ...

  9. 第三篇:配置Hadoop的Eclipse开发环境

    前言 在先前的文章中,已经介绍了如何在Ubuntu Kylin操作系统下搭建Hadoop运行环境,而现在将在之前工作的基础上搭建Eclipse开发环境. 配置 开发环境:Eclipse 4.2,其他同 ...

随机推荐

  1. 【JavaScript】【PPT】继承的本质

    ※文件引自OneDrive,有些人可能看不到

  2. php闭包使用例子

    一.依据闭包实现一个容器 class Di { private $factory; public function set($id, $value) { $this->factory[$id] ...

  3. django model filter 条件过滤,及多表连接查询、反向查询,某字段的distinct

    1.多表连接查询:当我知道这点的时候顿时觉得django太NX了.  class A(models.Model):    name = models.CharField(u'名称')  class B ...

  4. DNS、bind 953端口

    1.953端口是rndc 的端口 2.rndc是监控bind的统计数据用的,同时不需要为了更新某个zone而重启bind 3.输入rndc ,如果ok的话,是这样的 4.看到第一条语句了没. 不需要重 ...

  5. iOS代码覆盖率测试工具

    基于lcov-1.11的:CodeCoverage4iOS   阅读目录 环境准备 Xcode工程配置 构建并安装程序 收集代码覆盖率 过滤结果 合并多个Coverage.info⽂件⽣成覆盖率报告: ...

  6. NSMutableAttributedString 的使用方法,设置格式

    NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:title]; NS ...

  7. C#中后台线程和UI线程的交互

    在C#中,从Main()方法开始一个默认的线程,一般称之为主线程,如果在这个进行一些非常耗CPU的计算,那么UI界面就会被挂起而处于假死状态,也就是说无法和用户进行交互了,特别是要用类似进度条来实时显 ...

  8. Html.BeginForm 与Section、Partial View 和 Child Action

    该方法用于构建一个From表单的开始,他的构造方法为: Html.BeginForm("ActionName","ControllerName",FormMet ...

  9. Verilog利用$fdisplay命令往文件中写入数据

    最近在做的事情是,用FPGA生成一些满足特定分布的序列.因此为了验证我生成的序列是否拥有预期的性质,我需要将生成的数据提取出来并且放到MATLAB中做数据分析. 但是网上的程序很乱,表示看不懂==其实 ...

  10. Agri-Net - poj 1258 (Prim 算法)

      Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 44373   Accepted: 18127 Description F ...