K8s系列-Prometheus使用邮件告警

感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30650.html

1、指定告警服务和规则文件

告诉Promentheus,将告警信息发送给那个告警管理服务,以及使用那个告警规则文件。这里的告警服务在Kubernetes中部署,对外提供的服务名称为alertmanager,端口为9093。告警规则文件为“/etc/prometheus/rules/”目录下的所有规则文件。

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).  

# 指定告警服务器
alerting:
 alertmanagers:
 - static_configs:
 - targets:
 - alertmanager:9093  

# 指定告警规则文件
rule_files:
 - "/etc/prometheus/rules/*.yml"
 # - "second_rules.yml"  

# A scrape configuration containing exactly one endpoint to scrape:
# Here it‘s Prometheus itself.
scrape_configs:
 # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
 - job_name: ‘prometheus‘  

# metrics_path defaults to ‘/metrics‘
 # scheme defaults to ‘http‘.  

static_configs:
 - targets: [‘localhost:9090‘]
 - job_name: ‘redis‘
 static_configs:
 - targets: [‘redis-exporter-np:9121‘]
 - job_name: ‘node‘
 static_configs:
 - targets: [‘prometheus-prometheus-node-exporter:9100‘]
 - job_name: ‘windows-node-001‘
 static_configs:
 - targets: [‘10.0.32.148:9182‘]
 - job_name: ‘windows-node-002‘
 static_configs:
 - targets: [‘10.0.34.4:9182‘]
 - job_name: ‘rabbit‘
 static_configs:
 - targets: [‘prom-rabbit-prometheus-rabbitmq-exporter:9419‘]

2、设置告警规则

设置告警的规则,Prometheus基于此告警规则,将告警信息发送给告警服务。这将未启动的实例信息发送给告警服务,告知哪些实例没有正常启动。

#rules
groups:
 - name: node-rules
 rules:
 - alert: InstanceDown # 告警名称
   expr: up == 0 # 告警判定条件
   for: 3s # 持续多久后,才发送
   labels: # 标签
    team: k8s
   annotations: # 警报信息
    summary: "{{$labels.instance}}: has been down"
    description: "{{$labels.instance}}: job {{$labels.job}} has been down "

3、设置告警信息路由和接收器

这里设置通过邮件接收告警信息,当告警服务接收到告警信息后,会通过邮件将告警信息发送给被告知者。

global:
 resolve_timeout: 5m
 smtp_smarthost: ‘smtp.163.com:25‘ # 发送信息邮箱的smtp服务器代理
 smtp_from: ‘[email protected]‘ # 发送信息的邮箱名称
 smtp_auth_username: ‘xxx‘ # 邮箱的用户名
 smtp_auth_password: ‘SYNUNQBZMIWUQXGZ‘ # 邮箱的密码或授权码  

route:
 group_by: [‘alertname‘]
 group_wait: 10s
 group_interval: 10s
 repeat_interval: 1h
 receiver: ‘email‘
receivers:
 - name: ‘email‘
 email_configs:
 - to: ‘[email protected]‘ # 接收告警的邮箱
 headers: { Subject: "[WARN] 报警邮件"} # 接收邮件的标题  

inhibit_rules:
 - source_match:
 severity: ‘critical‘
 target_match:
 severity: ‘warning‘
 equal: [‘alertname‘, ‘dev‘, ‘instance‘]

4、验证

在方案中Prometheus所监控的实例中,redis和windows-node-002没有正常启动,因此根据上述的告警规则,应该会将这些信息发送给被告警者的邮箱。

在被告警者的邮箱中,接收的告警信息如下。

感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30650.html

1、指定告警服务和规则文件

告诉Promentheus,将告警信息发送给那个告警管理服务,以及使用那个告警规则文件。这里的告警服务在Kubernetes中部署,对外提供的服务名称为alertmanager,端口为9093。告警规则文件为“/etc/prometheus/rules/”目录下的所有规则文件。

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).  

# 指定告警服务器
alerting:
 alertmanagers:
 - static_configs:
 - targets:
 - alertmanager:9093  

# 指定告警规则文件
rule_files:
 - "/etc/prometheus/rules/*.yml"
 # - "second_rules.yml"  

# A scrape configuration containing exactly one endpoint to scrape:
# Here it‘s Prometheus itself.
scrape_configs:
 # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
 - job_name: ‘prometheus‘  

# metrics_path defaults to ‘/metrics‘
 # scheme defaults to ‘http‘.  

static_configs:
 - targets: [‘localhost:9090‘]
 - job_name: ‘redis‘
 static_configs:
 - targets: [‘redis-exporter-np:9121‘]
 - job_name: ‘node‘
 static_configs:
 - targets: [‘prometheus-prometheus-node-exporter:9100‘]
 - job_name: ‘windows-node-001‘
 static_configs:
 - targets: [‘10.0.32.148:9182‘]
 - job_name: ‘windows-node-002‘
 static_configs:
 - targets: [‘10.0.34.4:9182‘]
 - job_name: ‘rabbit‘
 static_configs:
 - targets: [‘prom-rabbit-prometheus-rabbitmq-exporter:9419‘]

2、设置告警规则

设置告警的规则,Prometheus基于此告警规则,将告警信息发送给告警服务。这将未启动的实例信息发送给告警服务,告知哪些实例没有正常启动。

#rules
groups:
 - name: node-rules
 rules:
 - alert: InstanceDown # 告警名称
   expr: up == 0 # 告警判定条件
   for: 3s # 持续多久后,才发送
   labels: # 标签
    team: k8s
   annotations: # 警报信息
    summary: "{{$labels.instance}}: has been down"
    description: "{{$labels.instance}}: job {{$labels.job}} has been down "

3、设置告警信息路由和接收器

这里设置通过邮件接收告警信息,当告警服务接收到告警信息后,会通过邮件将告警信息发送给被告知者。

global:
 resolve_timeout: 5m
 smtp_smarthost: ‘smtp.163.com:25‘ # 发送信息邮箱的smtp服务器代理
 smtp_from: ‘[email protected]‘ # 发送信息的邮箱名称
 smtp_auth_username: ‘xxx‘ # 邮箱的用户名
 smtp_auth_password: ‘SYNUNQBZMIWUQXGZ‘ # 邮箱的密码或授权码  

route:
 group_by: [‘alertname‘]
 group_wait: 10s
 group_interval: 10s
 repeat_interval: 1h
 receiver: ‘email‘
receivers:
 - name: ‘email‘
 email_configs:
 - to: ‘[email protected]‘ # 接收告警的邮箱
 headers: { Subject: "[WARN] 报警邮件"} # 接收邮件的标题  

inhibit_rules:
 - source_match:
 severity: ‘critical‘
 target_match:
 severity: ‘warning‘
 equal: [‘alertname‘, ‘dev‘, ‘instance‘]

4、验证

在方案中Prometheus所监控的实例中,redis和windows-node-002没有正常启动,因此根据上述的告警规则,应该会将这些信息发送给被告警者的邮箱。

在被告警者的邮箱中,接收的告警信息如下。

感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30650.html

1、指定告警服务和规则文件

告诉Promentheus,将告警信息发送给那个告警管理服务,以及使用那个告警规则文件。这里的告警服务在Kubernetes中部署,对外提供的服务名称为alertmanager,端口为9093。告警规则文件为“/etc/prometheus/rules/”目录下的所有规则文件。

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).  

# 指定告警服务器
alerting:
 alertmanagers:
 - static_configs:
 - targets:
 - alertmanager:9093  

# 指定告警规则文件
rule_files:
 - "/etc/prometheus/rules/*.yml"
 # - "second_rules.yml"  

# A scrape configuration containing exactly one endpoint to scrape:
# Here it‘s Prometheus itself.
scrape_configs:
 # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
 - job_name: ‘prometheus‘  

# metrics_path defaults to ‘/metrics‘
 # scheme defaults to ‘http‘.  

static_configs:
 - targets: [‘localhost:9090‘]
 - job_name: ‘redis‘
 static_configs:
 - targets: [‘redis-exporter-np:9121‘]
 - job_name: ‘node‘
 static_configs:
 - targets: [‘prometheus-prometheus-node-exporter:9100‘]
 - job_name: ‘windows-node-001‘
 static_configs:
 - targets: [‘10.0.32.148:9182‘]
 - job_name: ‘windows-node-002‘
 static_configs:
 - targets: [‘10.0.34.4:9182‘]
 - job_name: ‘rabbit‘
 static_configs:
 - targets: [‘prom-rabbit-prometheus-rabbitmq-exporter:9419‘]

2、设置告警规则

设置告警的规则,Prometheus基于此告警规则,将告警信息发送给告警服务。这将未启动的实例信息发送给告警服务,告知哪些实例没有正常启动。

#rules
groups:
 - name: node-rules
 rules:
 - alert: InstanceDown # 告警名称
   expr: up == 0 # 告警判定条件
   for: 3s # 持续多久后,才发送
   labels: # 标签
    team: k8s
   annotations: # 警报信息
    summary: "{{$labels.instance}}: has been down"
    description: "{{$labels.instance}}: job {{$labels.job}} has been down "

3、设置告警信息路由和接收器

这里设置通过邮件接收告警信息,当告警服务接收到告警信息后,会通过邮件将告警信息发送给被告知者。

global:
 resolve_timeout: 5m
 smtp_smarthost: ‘smtp.163.com:25‘ # 发送信息邮箱的smtp服务器代理
 smtp_from: ‘[email protected]‘ # 发送信息的邮箱名称
 smtp_auth_username: ‘xxx‘ # 邮箱的用户名
 smtp_auth_password: ‘SYNUNQBZMIWUQXGZ‘ # 邮箱的密码或授权码  

route:
 group_by: [‘alertname‘]
 group_wait: 10s
 group_interval: 10s
 repeat_interval: 1h
 receiver: ‘email‘
receivers:
 - name: ‘email‘
 email_configs:
 - to: ‘[email protected]‘ # 接收告警的邮箱
 headers: { Subject: "[WARN] 报警邮件"} # 接收邮件的标题  

inhibit_rules:
 - source_match:
 severity: ‘critical‘
 target_match:
 severity: ‘warning‘
 equal: [‘alertname‘, ‘dev‘, ‘instance‘]

4、验证

在方案中Prometheus所监控的实例中,redis和windows-node-002没有正常启动,因此根据上述的告警规则,应该会将这些信息发送给被告警者的邮箱。

在被告警者的邮箱中,接收的告警信息如下。

原文地址:https://www.cnblogs.com/lihanlin/p/12657690.html

时间: 2024-10-30 16:07:48

K8s系列-Prometheus使用邮件告警的相关文章

linux服务器登录邮件告警python程序

linux服务器用户登录邮件告警python小程序,一旦有人登录服务器就发邮件通知系统管理员.作为SA有些服务器只有自己可以登录的,你懂的!可有时候会被研发坑,被运维坑.为了全面掌控服务器,配置一个用户登录系统邮件通知,是很必要滴! 比较渣渣的一个脚本,不过在次基础上可以很容易的扩展滴.直接上代码了. #!/usr/bin/python#coding:utf8import smtplibimport stringimport psutilimport datetime HOST = "smtp.

利用 msmtp+mutt+shell来实现邮件告警

场景: 需要对redis keys值进行监控,利用crond周期执行监控脚本.如有异常,通过邮件告知. 一.安装msmtp下载软件wget http://sourceforge.net/projects/msmtp/files/msmtp/1.4.32/msmtp-1.4.32.tar.bz2tar -jxvf msmtp-1.4.32.tar.bz2cd msmtp-1.4.32./configure --prefix=/usr/local/msmtpcd msmtp-1.4.32make &

zabbix详解:(三)添加邮件告警配置

大家应该心理有底,做监控不是只为了看服务器状态,虽然那也是监控的目的之一,但绝对不是全部,大家做监控的目的肯定是想预警,甚至是出问题就告警,毫无疑问zabbix也是支持告警规则的,现在来介绍传统的添加邮件告警,后面还会介绍微信告警. 添加邮件告警配置: 关于zabbix邮件告警的原理,其实是调用脚本,然后脚本通过邮件功能来向外发邮件,后面介绍的微信告警也是通过脚本调用微信接口来做的. 所以,告警的关键,就是脚本了,其实zabbix邮件告警这个功能很多文章有写,也有很多脚本可以参考,只是大部分版本

2.0-zabbix配置邮件告警

sendmail和postfix都可以发送邮件,前提是服务已经启动. 设置触发器的目的是为了让监控的服务实现告警, 那告警如何告呢, 下面我们来配置一下邮件告警.发邮件是服务器通过自己的 sendmail 服务发出的,有时候如果配置不合适或者服务没有启动,我们是发不出邮件的.所以,要先测试一下. 注意:是在zabbix服务端做以下操作 # yum install -y sendmail # /etc/init.d/sendmail start # echo "test mail" |m

zabbix使用msmtp&&mutt搭建邮件告警服务

zabbix使用msmtp&&mutt搭建邮件告警服务 zabbix可以通过脚本和邮件服务器搭建邮件告警服务,以下就是告警服务实现的流程图 关注点一: 脚本需要放在zabbix安装目录下../share/zabbix/alertscripts/目录 脚本内容 关注点二: msmtp是一个SMTP客户端. 在默认模式下,它将邮件发送到SMTP服务器(例如,163.com邮箱服务器),该服务器负责进一步的传送.要将此程序与您的邮件用户代理(MUA)一起使用,请使用邮件帐户创建一个配置文件,并告

监控和安全运维 1.7 nagios配置邮件告警

8. 配置邮件告警 服务端 vim /etc/nagios/objects/contacts.cfg 增加: define contact{ contact_name 123 use generic-contact alias denny email 836503270@qq.com } define contact{ contact_name 456 use generic-contact alias aaa email [email protected] } define contactgr

Zabbix3.2邮件告警python脚本

一.概述及环境要求 1.概述 zabbix监控也起到重要作用,以下是使用python脚本发送告警邮件配置方法.之前使用过sendemail邮件报警但是发现邮件主题为中文时候会出现乱码的问题. 2.环境安装要求 Zabbix软件版本:zabbix3.2.6 操作系统:CentOS release 6.8 (Final) 二.脚本创建及测试 1.查看配置zabbix_server.conf ,找到AlertScriptsPath,查看路径位置,如被注释,将注释打开,把send.py 文件保存到该目录

3.3 zabbix 配置邮件告警

设置触发器的目的是为了让监控的服务实现告警,那告警如何实现呢,下面来配置一下邮件告警.发邮件是服务器通过自己的sendmail服务发出的,有时候如果配置不合适或者服务没有启动,我们是发不出邮件的. 安装sendmail [[email protected] ~]# yum install -y mailx sendmail [[email protected] ~]# /etc/init.d/sendmail start 正在启动 sendmail:                       

Zabbix邮件告警

1.Zabbix邮件告警 说明: Zabbix监控服务端.客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常. 实现目的: 在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱 首先在配置文件里修改AlertScriptsPath [[email protected] alertscripts]# vim /usr/local/zabbix/etc/zabbix_server.conf AlertScriptsPath=/usr/