Prometheus搭建alter manager发送邮件告警信息

1.Alter manager 简述

Alertmanager是一个独立的告警模块,接收Prometheus等客户端发来的警报,之后通过分组、删除重复等处理,并将它们通过路由发送给正确的接收器。Prometheus的警报分为两个部分。Prometheus服务器中的警报规则将警报发送到Alertmanager。该Alertmanager 然后管理这些警报,包括沉默,抑制,聚集和通过的方法,如电子邮件发出通知,对呼叫通知系统,以及即时通讯平台。
设置警报和通知的主要步骤:
1) 设置并配置Alertmanager;
2) 配置Prometheus对Alertmanager访问;
3) 在普罗米修斯创建警报规则;
Alert的三种状态:
1) pending:警报被激活,但是低于配置的持续时间。这里的持续时间即rule里的FOR字段设置的时间,该状态下不发送报警。
2) firing:警报已被激活,而且超出设置的持续时间。该状态下发送报警。
3) inactive:既不是pending也不是firing的时候状态变为inactive。
prometheus触发一条告警的过程:prometheus—>触发阈值—>超出持续时间—>alertmanager—>分组|抑制|静默—>媒体类型—>邮件|钉钉|微信等。

2.安装并修改alertmanager.yml配置文件

	global:
	  # resolve_timeout:解析超时时间
	  resolve_timeout: 5m
	  # smtp_smarthost: 使用email打开服务配置
	  smtp_smarthost: 'smtp.qq.com:465'
	  # smtp_from:指定通知报警的邮箱
	  smtp_from: '*****@qq.com'
	  # smtp_auth_username:邮箱用户名
	  smtp_auth_username: '*****@qq.com'(发邮箱)
	  # smtp_auth_password:授权密码
	  smtp_auth_password: '*****'(IMAP的授权码)
	  # smtp_require_tls:是否启用tls
	  smtp_require_tls: false
	route:
	  # group_by:采用哪个标签作为分组的依据
	  group_by: ['alertname']
	  # group_wait:分组等待的时间
	  group_wait: 10s
	  # group_interval:上下两组发送告警的间隔时间
	  group_interval: 10s
	  # repeat_interval:重复发送告警时间。默认1h
	  repeat_interval: 1m
	  # receiver 定义谁来通知报警
	  receiver: 'mail'
	receivers:
	# name:报警来源自定义名称
	- name: 'mail'
	  # email_configs:通过邮箱发送报警
	  email_configs:
	    # to:指定接收端email
    - to: '*****@qq.com'(收邮箱)

smtp_smarthost: 这里为 QQ 邮箱 SMTP 服务地址,官方地址 smtp.qq.com 端口为 465 或 587,同时设置开启 IMAP/SMTP 服务。
smtp_auth_password: 这里为第三方登录 QQ 邮箱的授权码,非 QQ 账户登录密码,否则会报错,获取方式在 QQ 邮箱服务端设置开启 IMAP/SMTP 服务时会提示。

3.写service文件启动alert manager

	[Unit]
	Description=alertmanager
	After=local-fs.target network-online.target network.target
	Wants=local-fs.target network-online.target network.target
	
	[Service]
	ExecStart=/.../alertmanager-0.23.0/alertmanager --config.file=/.../alertmanager-0.23.0/alertmanager.yml
	Restart=on-failure
	
	[Install]
	WantedBy=multi-user.target
启动alert manager指令:
# systemctl daemon-reload
# systemctl enable alertmanager.service
# systemctl start alertmanager.service
# systemctl status alertmanager.service
# systemctl stop alertmanager.service(启动完成之后可以关掉服务)

浏览器访问9093端口查看alertmanager效果:

4.Prometheus配置alertmanager连接和告警规则

在prometheus.yml中增加关于alertmanager的配置:
告警配置连接:

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      - 192.168.32.129:9093

告警规则配置文件位置:

rule_files:
  - "rules/*.yml"

监控alert manager:

  - job_name: 'alertmanager'
    static_configs:
      - targets: ['192.168.32.129:9093']

在prometheus.yml的同级目录下,创建rules目录,在该rules目录下创建node_alerts.yml文件:

	# groups:组告警
	groups:
	# name:组名。报警规则组名称
	- name: general.rules
	  # rules:定义角色
	  rules:
	  # alert:告警名称。 任何实例5分钟内无法访问发出告警
	  - alert: NodeFilesystemUsage
	    # expr:表达式。 获取磁盘使用率 大于百分之30 触发
	    expr: 100 - (node_filesystem_free_bytes{mountpoint="/",fstype=~"ext4|xfs"} / node_filesystem_size_bytes{fstype=~"ext4|xfs"} * 100) > 30
	    # for:持续时间。 表示持续一分钟获取不到信息,则触发报警。0表示不使用持续时间
	    for: 1m
	    # labels:定义当前告警规则级别
	    labels:
	      # severity: 指定告警级别。
	      severity: warning
	    # annotations: 注释 告警通知
	    annotations:
	      # 调用标签具体指附加通知信息
	      summary: "Instance {{ $labels.instance  }} :{{ $labels.mountpoint }} 分区使用率过高" # 自定义摘要
	      description: "{{ $labels.instance  }} : {{ $labels.job  }} :{{ $labels.mountpoint  }} 这个分区使用大于百分之30% (当前值:{{ $value }})" # 自定义具体描述
配置完之后要通过service方式启动n

配置完之后要通过service方式启动node exporter和Prometheus服务。

5.发送/接收告警邮件

采用qq邮箱发送/接收告警邮件,结果如图所示,注意一定要在邮箱处开启IMAP/SMTP服务,并记录授权密码。
后续尝试了一下用126邮箱发送,qq邮箱接收也是可以的,只要对应发送邮箱配置了IMAP/SMTP协议即可。

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340