本节重点介绍 :
- 告警回调能用来做什么
- 报警回调执行命令过程
- 回调重启服务实战
告警回调能用来做什么
- 重启服务
- 抓火焰图
- 硬件告警回调换配件工单
回调架构图
报警回调执行命令过程
- prometheus配置rule规则生成报警发往alm
- alm根据配置好的receive发往回调处理程序
- 处理程序解析报警中的app ip等信息触发动作
- 控制节点发送命令给目标机器
回调重启服务的playbook
- name: restart for {{ app }}
hosts: all
user: root
gather_facts: false
become_user: root
tasks:
#重启服务
- name: restart for {{ app }}
systemd: name={{ app }} state=restarted
register: result
- name: Show debug info
debug: var=result verbosity=0
实验 效果
- 通过告警触发,打给callback处理程序
- callback处理程序解析字段 和标签,选择不同的playbook
- 根据instance标签调ansible-api 执行动作
准备alertmanger.yml
global:
resolve_timeout: 30m
route:
group_by: ['alertname']
group_wait: 5s
group_interval: 5s
repeat_interval: 5m
receiver: 'callback'
routes: #子路由,父路由的所有属性都会被子路由继承
receivers:
- name: 'callback'
webhook_configs:
- url: 'http://127.0.0.1:5004/alert/callback'
准备rule_callback.yml
groups:
- name: g12
rules:
- alert: mem_callback
expr: node_memory_MemTotal_bytes > 0
for: 10s
labels:
app: prometheus
severity: warning
annotations:
summary: "服务器: {{$labels.alertname}} 内存报警"
description: "回调测试"
value: "{{ $value }}"
启动告警回调处理程序 alert_callback.py
传入restart_service.yaml 变量执行restart服务
本节重点总结 :
- 告警回调能用来做什么
- 报警回调执行命令过程
- 回调重启服务实战