k8s系列-prometheus使用邮件告警(代码片段)

lihanlin lihanlin     2023-04-05     419

关键词:

感谢作者分享-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: ‘xxx@163.com‘ # 发送信息的邮箱名称  
 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: ‘xxxxxx@aliyun.com‘ # 接收告警的邮箱  
 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: ‘xxx@163.com‘ # 发送信息的邮箱名称  
 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: ‘xxxxxx@aliyun.com‘ # 接收告警的邮箱  
 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: ‘xxx@163.com‘ # 发送信息的邮箱名称  
 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: ‘xxxxxx@aliyun.com‘ # 接收告警的邮箱  
 headers:  Subject: "[WARN] 报警邮件" # 接收邮件的标题  
  
inhibit_rules:  
 - source_match:  
 severity: ‘critical‘  
 target_match:  
 severity: ‘warning‘  
 equal: [‘alertname‘, ‘dev‘, ‘instance‘]

4、验证

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

技术图片

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

技术图片

使用prometheus实现邮件/企业微信告警(代码片段)

一、安装AlterManager如果没有安装Prometheus以及监控客户端的话,可以看博主前面的文章:Prometheus(普罗米修斯)监控系统[root@k8s-master01~]#wgethttps://github.com/prometheus/alertmanager/releases/download/v0.24.0/ 查看详情

prometheus实现邮件告警(代码片段)

一:Prometheus告警机制简介警报一直是整个监控系统中的重要组成部分,Prometheus监控系统中,采集与警报是分离的。警报规则在Prometheus定义,警报规则触发以后,才会将信息转发到给独立的组件Alertmanager,... 查看详情

prometheus实现邮件告警(代码片段)

一:Prometheus告警机制简介警报一直是整个监控系统中的重要组成部分,Prometheus监控系统中,采集与警报是分离的。警报规则在Prometheus定义,警报规则触发以后,才会将信息转发到给独立的组件Alertmanager,... 查看详情

prometheus实现邮件告警(代码片段)

一:Prometheus告警机制简介警报一直是整个监控系统中的重要组成部分,Prometheus监控系统中,采集与警报是分离的。警报规则在Prometheus定义,警报规则触发以后,才会将信息转发到给独立的组件Alertmanager,... 查看详情

使用prometheus实现邮件/企业微信告警(代码片段)

一、安装AlterManager如果没有安装Prometheus以及监控客户端的话,可以看博主前面的文章:Prometheus(普罗米修斯)监控系统[root@k8s-master01~]#wgethttps://github.com/prometheus/alertmanager/releases/download/v0.24.0/alertmanager-0.24.0.linu... 查看详情

devops之prometheus实现优雅的告警

参考技术A目前prometheus的告警,常用的有grafana自带的告警和prometheus插件alertmanger的告警两种,这里测试下alertmanger的告警功能。综合考虑,配合上prometheusoperator,使用alertmanger,能够使监控告警这块的工作更加devops。prometheusoperato... 查看详情

技术分享|如何使用prometheus实现系统监控报警邮件通知(代码片段)

上一篇关于Prometheus的文章中说到了Prometheus是如何实现进程监控。在实际的线上环境中,当系统进程出现异常后需要实时通知到值班运维人员,去检查系统是否还正常运转。下面我们就介绍下基于Prometheus如何实现监控报... 查看详情

prometheus入门(代码片段)

prometheus入门(一)大纲基础架构介绍官方站点以及后期用到的软件包介绍prometheus以及各类exporter的使用告警配置高可用架构docker&k8s监控基础架构介绍官方站点:https://prometheus.io官方架构图:大体组成部分以及流程介绍数据采集... 查看详情

k8s结合prometheus构建企业级监控告警系统

深度解读Prometheus什么是Prometheus?Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,... 查看详情

实用干货丨如何使用prometheus配置自定义告警规则(代码片段)

前言Prometheus是一个用于监控和告警的开源系统。一开始由Soundcloud开发,后来在2016年,它迁移到CNCF并且称为Kubernetes之后最流行的项目之一。从整个Linux服务器到stand-aloneweb服务器、数据库服务或一个单独的进程,它都能监控。在... 查看详情

prometheus安装及使用入门

...的内容是promehtues系列的安装和入门。建议从第一篇文章prometheus的基础入门开始学习。1.prometheus介绍1.1prometheus的起源Prometheus是由SoundCloud开源监控告警解决方案,从2012年开始编写代码,再到2015年github上开源以来,已经吸引了2W+... 查看详情

k8s上搭建loki日志服务并通过prometheus进行错误日志告警

...2.要解决的问题3.进入正题自定义应用日志筛选思路1.前言prometheus和loki的基础概念就不赘述了,如需查看请先移步到官网prometheus->https://prometheus.io/loki->https://grafana.com/oss/loki/2.要解决的问题之前测试环境搭建Loki采集日志没有... 查看详情

prometheus+grafana+alertmanager+邮件+钉钉告警

Prometheus+Grafana+alertmanager+邮件+钉钉告警本文模拟生产环境一ansible部署ansbile部署在线安装yuminstallansible-y离线安装#离线环境,提前在有网络的服务器上下载好需要的软件包mkdir-p/home/ansibleyuminstallansible-y--downloadonly--downloaddir/home/ansib... 查看详情

prometheus配置alertmanager告警邮件通知

参考技术A位置:/etc/prometheus/prometheus.yml修改以下内容,targets填入alertmanager的ip和端口位置:/etc/alertmanager/alertmanager.yml注意:这里用的是163的邮箱测试的,开启tls加密一直没调通,不开tls可以,不开tls的smtp端口是25位置:/etc/alert... 查看详情

接口告警

参考技术A晚上收到服务接口电话告警,第一时间通过prometheus查看服务耗时却正常。这就奇怪了,为了确保告警程序没有问题,不是误报。登录服务器查看告警程序的日志,通过日志发现确实是接口调用频繁超时引起的告警。因... 查看详情

alertmanager告警写入kafka及k8s部署prometheusalertmanager(代码片段)

部署alertmanagerhelm部署prometheus及其周边,其他都正常部署,但是部署alertmanagerChart,prometheusserver启动不起来报:fieldalertmanagersnotfoundintypeconfig.ScrapeConfig#kubectllogsprometheus-prometheus 查看详情

3.prometheus+grafana实现可视化告警(代码片段)

3.Prometheus+Grafana实现可视化、告警3.1.什么是Grafana3.2.快速入门3.3.Grafana的下载3.4.启动grafana3.5.配置数据源3.6.配置面板3.7.邮件通道配置3.8.指标告警配置3.9.Dashboards模板下载3.Prometheus+Grafana实现可视化、告警转自:https://www.... 查看详情

prometheus告警处理(代码片段)

在PrometheusServer中定义告警规则以及产生告警,Alertmanager组件则用于处理这些由Prometheus产生的告警。Alertmanager即Prometheus体系中告警的统一处理中心。Prometheus告警简介告警能力在Prometheus的架构中被划分成两个独立的部分。如下所... 查看详情