监控相关
ZABBIX安装与使用
自动发现与自动注册
配置文件
分布式监控
zabbix_sender安装和使用
zabbix_get安装与使用
自定义监控
自动发现监控json
PERCONA插件
PERCONA多实例
日志监控
相关项目监控
监控MySQL
监控Haproxy
Fluentd日志监控
Grafana(可视化监控指标)
grafana地图插件
添加prometheus模板
开启HTTPS
添加zabbix插件
Grafana模板
正则表达式
Prometheus监控
安装与使用
Prometheus存储
服务发现
Prometheus标签
PromQL查询
PushGateway推送组件
AlertManager告警组件
告警规则rule
K8S监控(kube-state-metric/cadvisor)
探针监控(blackbox_exporter)
Node_export
Mysql_export
Redis-exporter
cloudeye-exporter【华为云监控】
RabbitMQ-exporter
K8S监控
本文档使用MrDoc发布
返回首页
-
+
AlertManager告警组件
2021年6月18日 11:26
admin
#下载主页 https://prometheus.io/download/ #安装AlertManager wget https://github.com/prometheus/alertmanager/releases/download/v0.22.2/alertmanager-0.22.2.linux-amd64.tar.gz tar -zxvf alertmanager-0.22.2.linux-amd64.tar.gz mv alertmanager-0.22.2.linux-amd64 /usr/local/alertmanager cd /usr/local/alertmanager ./alertmanager --version --- #AlertManager配置: # 全局配置项 global: resolve_timeout: 5m #处理超时时间,默认为5min smtp_smarthost: 'smtp.sina.com:25' # 邮箱smtp服务器代理 smtp_from: '******@sina.com' # 发送邮箱名称 smtp_auth_username: '******@sina.com' # 邮箱名称 smtp_auth_password: '******' # 邮箱密码或授权码 smtp_require_tls: false #wechat_api_url: 'https://qyapi.weixin.qq.com/cgi-bin/' # 企业微信地址 # 定义模板信心 templates: - 'template/*.tmpl' # 定义路由树信息 route: group_by: ['alertname'] # 报警分组依据 group_wait: 10s # 最初即第一次等待多久时间发送一组警报的通知 group_interval: 10s # 在发送新警报前的等待时间 repeat_interval: 1m # 发送重复警报的周期 对于email配置中,此项不可以设置过低,否则将会由于邮件发送太多频繁,被smtp服务器拒绝 receiver: 'email' # 发送警报的接收者的名称,以下receivers name的名称 # 定义警报接收者信息 receivers: - name: 'email' # 警报 email_configs: # 邮箱配置 - to: '******@163.com' # 接收警报的email配置 html: '{{ template "test.html" . }}' # 设定邮箱的内容模板 headers: { Subject: "[WARN] 报警邮件"} # 接收邮件的标题 webhook_configs: # webhook配置 - url: 'http://127.0.0.1:5001' send_resolved: true #wechat_configs: # 企业微信报警配置 #- send_resolved: true #to_party: '1' # 接收组的id #agent_id: '1000002' # (企业微信-->自定应用-->AgentId) #corp_id: '******' # 企业信息(我的企业-->CorpId[在底部]) #api_secret: '******' # 企业微信(企业微信-->自定应用-->Secret) #message: '{{ template "test_wechat.html" . }}' # 发送消息模板的设定 # 一个inhibition规则是在与另一组匹配器匹配的警报存在的条件下,使匹配一组匹配器的警报失效的规则。两个警报必须具有一组相同的标签。 inhibit_rules: - source_match: severity: 'critical' target_match: severity: 'warning' equal: ['alertname', 'dev', 'instance'] --- #模板配置: ####原始模板 ![](/media//202106/2021-06-28142459473878.png) --- ####邮件模板 vim template/test.tmpl --- {{ define "test.html" }} <table border="1"> <tr> <td>报警项</td> <td>实例</td> <td>报警阀值</td> <td>开始时间</td> </tr> {{ range $i, $alert := .Alerts }} <tr> <td>{{ index $alert.Labels "alertname" }}</td> <td>{{ index $alert.Labels "instance" }}</td> <td>{{ index $alert.Annotations "value" }}</td> <td>{{ $alert.StartsAt }}</td> </tr> {{ end }} </table> {{ end }} ![](/media//202106/2021-06-28142412594982.png) --- ####企业微信模板 vim template/test_wechat.tmpl --- { define "cdn_live_wechat.html" }} {{ range $i, $alert := .Alerts.Firing }} [报警项]:{{ index $alert.Labels "alertname" }} [实例]:{{ index $alert.Labels "instance" }} [报警阀值]:{{ index $alert.Annotations "value" }} [开始时间]:{{ $alert.StartsAt }} {{ end }} {{ end }} ![](/media//202106/2021-06-28142609337273.png) --- #启动AlertManager cd /usr/local/alertmanager ./alertmanager #前台启动 nohup ./alertmanager & #后台启动 ----------------------------------------------------------- --web.listen-address=":9091" #alertmanager监听的端口,默认是9091,若需要修改则通过此参数。 --web.telemetry-path="/metrics" #获取metric信息的url,默认是/metrics,若需要修改则通过此参数 --log.level="info" #设置日志级别 --log.format="logger:stderr" #设置打印日志的格式,若有自动化日志提取工具可以使用这个参数规范日志打印的格式 --- #查看 http://【AlertManager服务器IP】:9093/ ![](/media//202106/2021-06-28115030215973.png) --- #SERVER配置: alerting: alertmanagers: - static_configs: - targets: - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: - "rules/first_rules.yml" --- #SERVER RULE配置: mkdir -p rules vim rules/first_rules.yml --- groups: - name: test-rules rules: - alert: InstanceDown # 告警名称 expr: up == 0 # 告警的判定条件,参考Prometheus高级查询来设定 for: 2m # 满足告警条件持续时间多久后,才会发送告警 labels: #标签项 team: node annotations: # 解析项,详细解释告警信息 summary: "{{$labels.instance}}: has been down" description: "{{$labels.instance}}: job {{$labels.job}} has been down " value: "{{$value}}"
分享到: