Alertmanager邮箱和企业微信的告警模板分享

前言

Prometheus监控功能十分强大,上手很快,而且是轻量级的。监控面板可以通过Grafana来展现,撘过ELK的都明白Kibana绘图是多么费劲,而Grafana社区提供非常丰富的仪表盘模板,引入十分轻松。至于告警可以借助Alertmanager来实现。在此分享一下Alertmanager邮箱和企业微信的告警模板。

效果展现

■ 邮箱

① 告警
在这里插入图片描述
② 消警
在这里插入图片描述

■ 企业微信

在这里插入图片描述

模板

■ 邮箱 —— email.tmpl

{{ define "email.html" }}
{{- if gt (len .Alerts.Firing) 0 -}}
<h2>告警</h2>
<table border="5">
    <tr><td>报警项</td>
        <td>实例</td>
        <td>报警详情</td>
        <td>报警级别</td>
        <td>开始时间</td>
    </tr>
    {{ range $i, $alert := .Alerts }}
        <tr><td>{{ index $alert.Labels "alertname" }}</td>
            <td style="color:#32CD32" >{{ index $alert.Labels "instance" }}</td>
            <td>{{ index $alert.Annotations "description" }}</td>
            <td>{{ $alert.Labels.severity }}</td>
            <td style="color:#FF7F50">{{ $alert.StartsAt.Local.Format "2006-01-02 15:04:05" }}</td>
        </tr>
    {{ end }}
</table>
{{ end }}
{{- if gt (len .Alerts.Resolved) 0 -}}
<h2>已经恢复</h2>
<table border="5">
    <tr><td>报警项</td>
        <td>实例</td>
        <td>报警详情</td>
        <td>报警级别</td>
        <td>开始时间</td>
		<td>恢复时间</td>
    </tr>
    {{ range $i, $alert := .Alerts }}
        <tr><td>{{ index $alert.Labels "alertname" }}</td>
            <td style="color:#32CD32">{{ index $alert.Labels "instance" }}</td>
            <td>{{ index $alert.Annotations "description" }}</td>
            <td>{{ $alert.Labels.severity }}</td>
            <td style="color:#FF7F50">{{ $alert.StartsAt.Local.Format "2006-01-02 15:04:05" }}</td>
            <td style="color:#FF7F50">{{ $alert.EndsAt.Local.Format "2006-01-02 15:04:05" }}</td>
        </tr>
    {{ end }}
</table>
{{ end }}{{- end }}

■ 企业微信 —— wechat.tmpl

{{ define "wechat.message" }}
{{- if gt (len .Alerts.Firing) 0 -}}
{{- range $index, $alert := .Alerts -}}
{{- if eq $index 0 -}}
# 报警项: {{ $alert.Labels.alertname }}
{{- end }}
> `**===告警详情===**` 
> 告警级别: {{ $alert.Labels.severity }}
> 告警详情: <font color="comment">{{ index $alert.Annotations "description" }}{{ $alert.Annotations.message }}</font>
> 故障时间: <font color="warning">{{ $alert.StartsAt.Local.Format "2006-01-02 15:04:05" }}</font>
> 故障实例: <font color="info">{{ $alert.Labels.instance }}</font>
{{- end }}
{{- end }}
{{- if gt (len .Alerts.Resolved) 0 -}}
{{- range $index, $alert := .Alerts -}}
{{- if eq $index 0 -}}
# 恢复项: {{ $alert.Labels.alertname }}
{{- end }}
> `**===恢复详情===**` 
> 告警级别: {{ $alert.Labels.severity }}
> 告警详情: <font color="comment">{{ index $alert.Annotations "description" }}{{ $alert.Annotations.message }}</font>
> 故障时间: <font color="warning">{{ $alert.StartsAt.Local.Format "2006-01-02 15:04:05" }}</font>
> 恢复时间: <font color="warning">{{ $alert.EndsAt.Local.Format "2006-01-02 15:04:05" }}</font>
> 故障实例: <font color="info">{{ $alert.Labels.instance }}</font>
{{- end }}
{{- end }}
{{- end }}

告警规则例子

groups:
- name: node_export_up
  rules:
  - alert: 存在监控节点下线
    expr: up < 1
    for: 10s    # 当一个监控项超过了阀值时,这个告警处于pengding状态,而pending状态维持for秒以后,就会切换为fire状态,也就是将告警信息发送给了alertmanager
    labels:
      severity: 可空闲处理
      action: text
      kind: node_export
    annotations:
      summary: "{{ $labels.instance }} 已停止运行!"
      last: "{{ $value }}"
      description: "{{ $labels.instance }} 检测到异常停止!请及时处理!!!"
- name: redis_up
  rules:
  - alert: redis节点挂了
    expr: redis_up < 1
    for: 10s    # 当一个监控项超过了阀值时,这个告警处于pengding状态,而pending状态维持for秒以后,就会切换为fire状态,也就是将告警信息发送给了alertmanager
    labels:
      severity: 应及时处理
      action: text
      kind: node_export
    annotations:
      summary: "{{ $labels.instance }} 已停止运行!"
      last: "{{ $value }}"
      description: "{{ $labels.instance }} 检测到异常停止!请及时处理!!!"
- name: mysql_up
  rules:
  - alert: mysql挂了
    expr: mysql_up < 1
    for: 10s    # 当一个监控项超过了阀值时,这个告警处于pengding状态,而pending状态维持for秒以后,就会切换为fire状态,也就是将告警信息发送给了alertmanager
    labels:
      severity: 紧急处理
      action: text
      kind: node_export
    annotations:
      summary: "{{ $labels.instance }} 已停止运行!"
      last: "{{ $value }}"
      description: "{{ $labels.instance }} 检测到异常停止!请及时处理!!!"
  - alert: mysql慢sql太多
    expr: rate(mysql_global_status_slow_queries[1m]) > 0.15
    for: 10s    # 当一个监控项超过了阀值时,这个告警处于pengding状态,而pending状态维持for秒以后,就会切换为fire状态,也就是将告警信息发送给了alertmanager
    labels:
      severity: 紧急处理
      action: text
      kind: node_export
    annotations:
      summary: "{{ $labels.instance }} 慢sql太多!"
      last: "{{ $value }}"
      description: "{{ $labels.instance }} 检测到异常!请及时处理!!!"

最后

如此即可实现可观的告警。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
Rancher 是一款容器管理平台,可以帮助企业以更高效的方式部署和管理容器化的应用程序。相比起传统的虚拟机部署方式,容器化的应用程序具有更高的可移植性和跨平台性。然而,随着容器规模的不断扩大,监控和告警成为企业微信(Rancher企业微信告警)中不可忽视的一部分。 Rancher 的告警功能可以帮助用户及时了解到容器集群中发生的异常情况,并通过各种途径通知相关人员。企业微信作为一款流行的企业通讯工具,可以与Rancher集成,将告警信息发送给企业微信中指定的用户或者群组。 用户可以根据自己的需求,在Rancher中配置告警规则。例如,当容器的CPU使用率或内存使用率超过设定的阈值时,Rancher会触发告警,并将相关信息发送到企业微信中。同时,Rancher还支持通过企业微信发送告警通知的方式,可以提供详细的应用程序日志和监控指标,方便用户了解到问题的具体原因。 Rancher企业微信告警的好处在于,可以及时通知相关人员,让他们能够快速响应并采取应对措施。另外,Rancher还支持自定义告警模板,用户可以根据自身需求,定制化告警通知的内容和格式,提高告警信息的可读性。 总结一下,Rancher企业微信告警是将容器集群中的异常情况以告警的形式发送到企业微信中,通过该功能,用户可以及时了解到问题并采取相应的措施。这种集成功能能够提升企业运维效率,确保容器应用程序的稳定性和可靠性。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值