在 prometheus alertmanager 通知中提及 slack 用户
Posted
技术标签:
【中文标题】在 prometheus alertmanager 通知中提及 slack 用户【英文标题】:mention slack users in prometheus alertmanager notification 【发布时间】:2021-11-25 04:37:28 【问题描述】:所以我有一个通用标签opsteam
,一旦 alertmanager 被解雇,它应该会让 DM 陷入松弛状态。但是在 slack 中,我得到的用户名是纯文本,没有突出显示,这些用户也没有收到任何消息。
nodeSelector:
prometheus: "true"
enabled: true
retention: "30d"
extraFlags:
- web.enable-lifecycle
- web.enable-admin-api
strategy:
type: RollingUpdate
global:
scrape_interval: 30s
external_labels:
env: prod
client: client
cluster: project-prod-eks
opsteam: "@U0325FRAD @U01GN7KJHU"
如果我将opsteam: "@U0325FRAD @U01GN7KJHU"
更改为opsteam: "@john @jim"
,它也没有任何效果。
这是我的自定义 slack 通知
notifications.tmpl: |
define "__alert_silence_link" -
.ExternalURL /#/silences/new?filter=%7B
- range .CommonLabels.SortedPairs -
- if ne .Name "alertname" -
- .Name %3D"- .Value -"%2C%20
- end -
- end -
alertname%3D"- .CommonLabels.alertname -"%7D
- end
define "__alert_severity" -
- if eq .CommonLabels.severity "critical" -
*Severity:* `Critical` if eq .Status "firing" :fire:- else -:ok:- end -
- else if eq .CommonLabels.severity "warning" -
*Severity:* `Warning`
- else if eq .CommonLabels.severity "info" -
*Severity:* `Info`
- else -
*Severity:* :question: .CommonLabels.severity
- end
- end
define "__alert_client_details" -
*Env:* .CommonLabels.env
*Client:* .CommonLabels.client
*Cluster:* .CommonLabels.cluster
- end
define "slack.title" -
[ .Status | toUpper -
if eq .Status "firing" : .Alerts.Firing | len - end -
] .CommonLabels.cluster - .CommonLabels.alertname
- end
define "slack.text" -
.CommonLabels.opsteam <<-----------------WANT THEM TO BE User Mentions!!!!!
template "__alert_severity" .
template "__alert_client_details" .
- if (index .Alerts 0).Annotations.summary
- "\n" -
*Summary:* (index .Alerts 0).Annotations.summary
- end
range .Alerts
- if .Annotations.description
.Annotations.description - "\n" -
- end
- if .Annotations.message
.Annotations.message - "\n" -
- end
- end
- end
define "slack.color" -
if eq .Status "firing" -
if eq .CommonLabels.severity "warning" -
warning
- else if eq .CommonLabels.severity "critical" -
danger
- else -
#439FE0
- end -
else -
good
- end
- end
是的,我的消息只是松弛的文本。
【问题讨论】:
【参考方案1】:在 Slack 中嵌入用户名有一种给定的格式。https://api.slack.com/reference/surfaces/formatting#mentioning-users
【讨论】:
以上是关于在 prometheus alertmanager 通知中提及 slack 用户的主要内容,如果未能解决你的问题,请参考以下文章
小姐姐带你入门Alertmanager与Prometheus告警规则
prometheus 与 alertmanager 结合 发送邮件报警
linux(centos8):prometheus使用alertmanager发送报警邮件(prometheus 2.18.1/alertmanager 0.20.0)
linux(centos8):prometheus使用alertmanager发送报警邮件(prometheus 2.18.1/alertmanager 0.20.0)