Prometheus配置企业微信告警
16lz
2021-03-10
kubernetes operator安装 的Prometheus,如果不会可以参考使用Operator部署Prometheus前提:创建企业微信,创建应用
然后配置altermanager.yaml
global: resolve_timeout: 5mreceivers:- name: wechat wechat_configs: - agent_id: "100000x" api_secret: Nm7PRrxxxxG8EpkyWuXDAWMLmFo corp_id: wwf9d3833cd2323ewdd send_resolved: true to_user: Jokerroute: group_by: - job group_interval: 5m group_wait: 30s receiver: wechat repeat_interval: 12h routes: - match: alertname: Watchdog receiver: wechat
然后删除原有的alertmanager-main
kubectl delete secret alertmanager-main -n monitoring
重新创建
kubectl create secret generic alertmanager-main --from-file=alertmanager.yaml -n monitoring
然后就可以收到告警了
不过现在这个告警不好看,我们可以自定义模板。
创建一个template.tmp1的文件。如下
{{ define "wechat.default.message" }}{{- if gt (len .Alerts.Firing) 0 -}}{{- range $index, $alert := .Alerts -}}{{- if eq $index 0 }}==========异常告警==========告警类型: {{ $alert.Labels.alertname }}告警级别: {{ $alert.Labels.severity }}告警详情: {{ $alert.Annotations.message }}{{ $alert.Annotations.description}};{{$alert.Annotations.summary}}故障时间: {{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}{{- if gt (len $alert.Labels.instance) 0 }}实例信息: {{ $alert.Labels.instance }}{{- end }}{{- if gt (len $alert.Labels.namespace) 0 }}命名空间: {{ $alert.Labels.namespace }}{{- end }}{{- if gt (len $alert.Labels.node) 0 }}节点信息: {{ $alert.Labels.node }}{{- end }}{{- if gt (len $alert.Labels.pod) 0 }}实例名称: {{ $alert.Labels.pod }}{{- end }}============END============{{- end }}{{- end }}{{- end }}{{- if gt (len .Alerts.Resolved) 0 -}}{{- range $index, $alert := .Alerts -}}{{- if eq $index 0 }}==========异常恢复==========告警类型: {{ $alert.Labels.alertname }}告警级别: {{ $alert.Labels.severity }}告警详情: {{ $alert.Annotations.message }}{{ $alert.Annotations.description}};{{$alert.Annotations.summary}}故障时间: {{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}恢复时间: {{ ($alert.EndsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}{{- if gt (len $alert.Labels.instance) 0 }}实例信息: {{ $alert.Labels.instance }}{{- end }}{{- if gt (len $alert.Labels.namespace) 0 }}命名空间: {{ $alert.Labels.namespace }}{{- end }}{{- if gt (len $alert.Labels.node) 0 }}节点信息: {{ $alert.Labels.node }}{{- end }}{{- if gt (len $alert.Labels.pod) 0 }}实例名称: {{ $alert.Labels.pod }}{{- end }}============END============{{- end }}{{- end }}{{- end }}{{- end }}
然后将其和上面的altermanager.yaml放到同一个secret中。
先修改altermanager.yaml,如下:
global: resolve_timeout: 5mreceivers:- name: wechat wechat_configs: - agent_id: "100000x" api_secret: Nm7PRrxxxxG8EpkyWuXDAWMLmFo corp_id: wwf9d3833cd66f34d8 send_resolved: true to_user: Jokerroute: group_by: - job group_interval: 5m group_wait: 30s receiver: wechat repeat_interval: 12h routes: - match: alertname: Watchdog receiver: wechattemplates:- /etc/alertmanager/config/template.tmp1
如下先删除,再创建
kubectl delete secret alertmanager-main -n monitoringkubectl create secret generic alertmanager-main --from-file=alertmanager.yaml --from-file=template.tmp1 -n monitoring
然后报警出来就会好看些了。
完
©著作权归作者所有:来自51CTO博客作者mb5ff97f7b72697的原创作品,如需转载,请注明出处,否则将追究法律责任
更多相关文章
- 华为防火墙双机热备(VRRP)的配置实例
- python集合类型实例
- H3C服务器红灯故障解决方案
- 【spring】别被一个FactoryBean问蒙了
- C# EmguCV图像处理实例
- 第7章 0202-面向对象编程基础,学习心得、笔记(类声明,类的实例化,类
- 西门子PLC s7-1200 1500 modbus-rtu通信实例编程详细指导
- vue学习之路(组件)
- PHP基础: 类(class)的声明,实例化,静态成员和类的扩展﹑trait的功