你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

prometheus-Alertmanager告警模板

2021/12/18 20:13:45

Prometheus Server是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储以及查询。 Prometheus Server可以通过静态配置管理监控目标,也可以配合使用Service Discovery的方式动态管理监控目标,并从这些监控目标中获取数据。其次Prometheus Server需要对采集到的监控数据进行存储,Prometheus Server本身就是一个时序数据库,将采集到的监控数据按照时间序列的方式存储在本地磁盘当中。最后Prometheus Server对外提供了自定义的PromQL语言,实现对数据的查询以及分析。

Prometheus Server内置的Express Browser UI,通过这个UI可以直接通过PromQL实现数据的查询以及可视化。

Prometheus Server的联邦集群能力可以使其从其他的Prometheus Server实例中获取数据,因此在大规模监控的情况下,可以通过联邦集群以及功能分区的方式对Prometheus Server进行扩展。

在普罗米修斯配置单可以配置rule规则,根据rule规则Alotermanager在配置单中进行配置进行推送,可推送邮箱,手机短信、钉钉,顶顶、微信等需要通过webhook下的url进行触发告警。

Alertmanager告警模板

Alertmanager文件夹下的templates /*.html

{{ define "test.html" }}
        {{ if gt (len .Alerts.Firing) 0 }}
                {{ range $i, $alert := .Alerts }}
                        <h3>告警邮件</h3>
                        <table border="1">
                                <tr>
                                        <td><strong>告警项:</strong></td>
                                        <td>{{ index $alert.Labels "alertname" }}</td>
                                </tr>
                                <tr>
                                        <td><strong>告警实例:</strong></td>
                                        <td>{{ index $alert.Labels "instance" }}</td>
                                </tr>
                                <tr>
                                        <td><strong>告警级别:</strong></td>
                                        <td bgcolor="{{ index $alert.Labels "severity" }}">{{ index $alert.Labels "severity" }}</td>
                                </tr>
                                <tr>
                                        <td><strong>告警主题:</strong></td>
                                        <td>{{ index $alert.Annotations "summary" }}</td>
                                </tr>
                                <tr>
                                        <td><strong>告警描述:</strong></td>
                                        <td>{{ index $alert.Annotations "description" }}</td>
                                </tr>
                                <tr>
                                        <td><strong>触发时间:</strong></td>
                                        <td>{{ $alert.StartsAt }}</td>
                                </tr>
                                <tr>
                                        <td><strong>当前告警值:</strong></td>
                                        <td>{{ index $alert.Annotations "value" }}</td>
                                </tr>
                        </table>
                {{ end }}
        {{ end }}
        {{ if gt (len .Alerts.Resolved) 0 }}
                {{ range $i, $alert := .Alerts }}
                        <h3>告警恢复邮件</h3>
                        <table border="1">
                                <tr>
                                        <td><strong>告警项:</strong></td>
                                        <td>{{ index $alert.Labels "alertname" }}</td>
                                </tr>
                                <tr>
                                        <td><strong>告警实例:</strong></td>
                                        <td>{{ index $alert.Labels "instance" }}</td>
                                </tr>
                                <tr>
                                        <td><strong>告警级别:</strong></td>
                                        <td bgcolor="green"></td>
                                </tr>
                                <tr>
                                        <td><strong>告警主题:</strong></td>
                                        <td>{{ index $alert.Annotations "summary" }}</td>
                                </tr>
                                <tr>
                                        <td><strong>告警描述:</strong></td>
<td>{{ index $alert.Annotations "description" }}</td>
                                </tr>
                                <tr>
                                        <td><strong>触发时间:</strong></td>
                                        <td>{{ $alert.StartsAt }}</td>
                                </tr>
                                <tr>
                                        <td><strong>当前告警值:</strong></td>
                                        <td>{{ index $alert.Annotations "value" }}</td>
                                </tr>
                        </table>
                {{ end }}
        {{ end }}
        {{ if gt (len .Alerts.Resolved) 0 }}
                {{ range $i, $alert := .Alerts }}
                        <h3>告警恢复邮件</h3>
                        <table border="1">
                                <tr>
                                        <td><strong>告警项:</strong></td>
                                        <td>{{ index $alert.Labels "alertname" }}</td>
                                </tr>
                                <tr>
                                        <td><strong>告警实例:</strong></td>
                                        <td>{{ index $alert.Labels "instance" }}</td>
                                </tr>
                                <tr>
                                        <td><strong>告警级别:</strong></td>
                                        <td bgcolor="green"></td>
                                </tr>
                                <tr>
                                        <td><strong>告警主题:</strong></td>
                                        <td>{{ index $alert.Annotations "summary" }}</td>
                                </tr>
                                <tr>
                                        <td><strong>告警描述:</strong></td>
                                        <td>{{ index $alert.Annotations "description" }}</td>
                                </tr>
                                <tr>
                                        <td><strong>恢复时间:</strong></td>
                                        <td>{{ $alert.EndsAt }}</td>
                                </tr>
                                <tr>
                                        <td><strong>当前值:</strong></td>
                                        <td>{{ index $alert.Annotations "value" }}</td>
                                </tr>
                        </table>
                {{ end }}
        {{ end }}
{{ end }}