kubernetes operator安裝,如果不會安裝可以查看我前面的博客。
前提:創建企業微信,創建應用
然后配置altermanager.yaml
global:
resolve_timeout: 5m
receivers:
- name: wechat
wechat_configs:
- agent_id: "100000x"
api_secret: Nm7PRrxxxxG8EpkyWuXDAWMLmFo
corp_id: wwf9d3833cd66f34d8
send_resolved: true
to_user: Joker
route:
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: 5m
receivers:
- name: wechat
wechat_configs:
- agent_id: "100000x"
api_secret: Nm7PRrxxxxG8EpkyWuXDAWMLmFo
corp_id: wwf9d3833cd66f34d8
send_resolved: true
to_user: Joker
route:
group_by:
- job
group_interval: 5m
group_wait: 30s
receiver: wechat
repeat_interval: 12h
routes:
- match:
alertname: Watchdog
receiver: wechat
templates:
- /etc/alertmanager/config/template.tmp1
如下先刪除,再創建
kubectl delete secret alertmanager-main -n monitoring
kubectl create secret generic alertmanager-main --from-file=alertmanager.yaml --from-file=template.tmp1 -n monitoring
然后報警出來就會好看些了。