品牌建设网站例子,网站制作运营,百度竞价产品,详情页设计模板图片一、Alertmanager 发送告警的介绍
Prometheus 对指标的收集、存储与告警能力分属于 Prometheus Server 和 AlertManager 两个独立的组件#xff0c;前者仅负责定义告警规则生成告警通知#xff0c; 具体的告警操作则由后者完成。
Alertmanager 负责处理由 Prometheus Serve…一、Alertmanager 发送告警的介绍
Prometheus 对指标的收集、存储与告警能力分属于 Prometheus Server 和 AlertManager 两个独立的组件前者仅负责定义告警规则生成告警通知 具体的告警操作则由后者完成。
Alertmanager 负责处理由 Prometheus Server 发来的告警通知Alertmanager对告警通知进行分组、去重后根据路由规则将其路由到不同的receiver如 Email、钉钉或企业微信等。
除了基本的告警通知能力外Altermanager还支持对告警进行去重、分组、抑制、静默和路由等功能 ●分组Grouping将相似告警合并为单个告警通知的机制在系统因大面积故障而触发告警潮时分组机制能避免用户被大量的告警噪声淹没进而导致关键信息的隐没
●抑制Inhibition系统中某个组件或服务故障而触发告警通知后那些依赖于该组件或服务的其它组件或服务可能也会因此而触发告警抑制便是避免类似的级联告警的一种特性从而让用户能将精力集中于真正的故障所在
●静默Silent是指在一个特定的时间窗口内即便接收到告警通知Alertmanager也不会真正向用户发送告警信息的行为通常在系统例行维护期间需要激活告警系统的静默特性
●路由route用于配置Alertmanager如何处理传入的特定类型的告警通知其基本逻辑是根据路由匹配规则的匹配结果来确定处理当前告警通知的路径和行为
二、Alertmanager邮箱报警设置
1上传 alertmanager-0.24.0.linux-amd64.tar.gz 到 /opt 目录中并解压
cd /opt/
tar xf alertmanager-0.24.0.linux-amd64.tar.gz
mv alertmanager-0.24.0.linux-amd64 /usr/local/alertmanager
2修改 alertmanager 配置文件添加邮件告警路由信息
vim /usr/local/alertmanager/alertmanager.yml
#global 配置段用于定义全局配置
#templates 配置段负责自定义告警内容模板文件
#route 配置段用于指定如何处理传入的告警
#receiver 配置段则定义了告警信息的接收器每个接收器都应该有其具体的定义global: #在全局配置段设置发件人邮箱信息resolve_timeout: 5m #定义持续多长时间未接收到告警通知后就将告警状态标记为resolvedsmtp_smarthost: smtp.qq.com:25smtp_from: 这里使用的是个人邮箱smtp_auth_username: 这里使用的是个人邮箱smtp_auth_password: xxxxxx #此处为授权码登录QQ邮箱【设置】-【账户】中的【生成授权码】获取smtp_require_tls: false #禁用TLS的传输方式
route: #设置告警的分发策略group_by: [alertname] #采用哪个标签来作为分组依据这里使用告警名称做为规则满足规则的告警将会被合并到一个通知中group_wait: 20s #一组告警第一次发送之前等待的时延即产生告警20s将组内新产生的消息合并发送通常是0s~几分钟默认是30sgroup_interval: 5m #一组已发送过初始告警通知的告警接收到新告警后下次发送通知前等待时延通常是5m或更久默认是5mrepeat_interval: 20m #一组已经发送过通知的告警重复发送告警的间隔通常设置为3h或者更久默认是4hreceiver: my-email #定义告警接收人
receivers: #设置收件人邮箱信息
- name: my-emailemail_configs:- to: 收件人的邮箱 #设置收件人邮箱地址send_resolved: true 3配置启动文件
cat /usr/lib/systemd/system/alertmanager.service EOF
[Unit]
Descriptionalertmanager
Documentationhttps://prometheus.io/
Afternetwork.target[Service]
Typesimple
ExecStart/usr/local/alertmanager/alertmanager \
--config.file/usr/local/alertmanager/alertmanager.yml \
--log.leveldebugExecReload/bin/kill -HUP $MAINPID
Restarton-failure[Install]
WantedBymulti-user.target
EOF#启动 Alertmanager
systemctl start alertmanager
systemctl enable alertmanagernetstat -natp | grep :9093 4添加告警规则
mkdir /usr/local/prometheus/alter_rulesvim /usr/local/prometheus/alter_rules/instance_down.yaml
groups:
#若某个 Instance 的 up 指标的值转为 0 持续超过 1 分钟后将触发告警
- name: AllInstancesrules:- alert: InstanceDown #告警规则的名称一个组内的告警规则名称必须惟一# Condition for alertingexpr: up 0 #基于PromQL表达式的告警触发条件布尔表达式for: 1m #控制在触发告警之前测试表达式的值必须为true的时长#表达式值为true但其持续时间未能满足for定义的时长时相关的告警状态为pending#满足该时长之后相关的告警将被触发并转为firing状态#表达式的值为false时告警将处于inactive状态# Annotation - additional informational labels to store more informationannotations: #附加在告警之上的注解信息title: Instance downdescription: Instance has been down for more than 1 minute.# Labels - additional labels to be attached to the alertlabels:severity: critical #在告警上附加的自定义的标签
#CPU 使用率大于 80% 触发告警
- name: node_alertrules:- alert: cpu_alertexpr: 100 -avg(irate(node_cpu_seconds_total{modeidle}[1m])) by (instance)* 100 80for: 5mlabels:level: warningannotations:description: instance: {{ $labels.instance }} ,cpu usage is too high ! value: {{$value}}summary: cpu usage is too high 5修改 prometheus 配置文件添加 Alertmanager 实例的配置
vim /usr/local/prometheus/prometheus.yml
......
alerting:alertmanagers:- static_configs:- targets:- 192.168.80.30:9093 #任意一台k8s主机IP及exporter服务监听端口rule_files:- /usr/local/prometheus/alter_rules/*.yamlsystemctl reload prometheus 6进行报警测试
systemctl stop node_exporter.service 7恢复监控节点的exporter服务
systemctl start node_exporter.service 三、Alertmanager钉钉报警设置
1上传 prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz 到 /opt 目录中并解压
cd /opt/
tar xf prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz
mv prometheus-webhook-dingtalk-2.1.0.linux-amd64 /usr/local/dingtalk
2登录阿里钉钉并且进行设置
创建群 - 群设置 - 智能群助手 - 添加机器人 - 添加机器人 - 自定义
消息推送 开启
Webhook 复制
安全设置 - 勾选 加签 - 复制
点击完成
3修改 dingtalk 告警插件配置文件
cd /usr/local/dingtalk
cp -p config.example.yml config.ymlvim config.yml
timeout: 5s## Uncomment following line in order to write template from scratch (be careful!)
#no_builtin_template: true## Customizable templates path
templates:- contrib/templates/legacy/template.tmpl## You can also override default template using default_message
## The following example to use the legacy template from v0.3.0
default_message:title: {{ template legacy.title . }}text: {{ template legacy.content . }}## Targets, previously was known as profiles
targets:webhook1:url: 粘贴Webhook的内容# secret for signaturesecret: 粘贴加签的内容#启动服务
./prometheus-webhook-dingtalk
4修改 alertmanager 配置文件
vim /usr/local/alertmanager/alertmanager.yml
global:resolve_timeout: 5mroute:group_by: [alertname]group_wait: 10sgroup_interval: 15srepeat_interval: 20mreceiver: dingding.webhook1receivers:
- name: dingding.webhook1webhook_configs:- url: http://192.168.73.108:8060/dingtalk/webhook1/sendsend_resolved: truesystemctl reload alertmanager
5测试告警
systemctl stop node_exporter