Open xusir1 opened 1 year ago
请大神帮忙看看
把中文的值去掉就行了
{{ $urimsg:=""}}{{ range $key,$value:=$v.labels}}{{$urimsg = print $urimsg $key "=\"" $value "\"," }}{{end}}{{$data:=urlquery $urimsg }}[点我屏蔽该告警](http://192.168.80.252:9093/#/silences/new?filter=%7B{{SplitString $data 0 -3}}%7D)
{{ $urimsg:=""}}{{ range $key,$value:=$v.labels}}{{$urimsg = print $urimsg $key "=\"" $value "\"," }}{{end}}{{$data:=urlquery $urimsg }}[点我屏蔽该告警](http://192.168.80.252:9093/#/silences/new?filter=%7B{{SplitString $data 0 -3}}%7D)
$v.labels这个写法有问题报错
{{ $urimsg:=""}}{{ range $key,$value:=$v.labels}}{{$urimsg = print $urimsg $key "=\"" $value "\"," }}{{end}}{{$data:=urlquery $urimsg }}[点我屏蔽该告警](http://192.168.80.252:9093/#/silences/new?filter=%7B{{SplitString $data 0 -3}}%7D)
不错不错,这个可以用的 {{ $var := .externalURL}} {{ $urimsg:=""}}{{ range $key,$value:=$v.labels}}{{$urimsg = print $urimsg $key "=\"" $value "\"," }}{{end}} {{$data:=urlquery $urimsg }}[[ 点我屏蔽该告警 ]]({{$var}}/#/silences/new?filter=%7B{{SplitString $data 0 -3}}%7D)
这样会不会好一些 url 就不会固定了
我也遇到了问题,我定位出来问题在于url上标签连接的等号未进行url编码,但是默认的模板里面确实是对等号进行了url编码,或许是飞书渲染markdown的问题? 默认配置如下
{{ $var := .externalURL}}{{ range $k,$v:=.alerts }}{{if eq $v.status "resolved"}}**[Prometheus恢复信息]({{$v.generatorURL}})**
*[{{$v.labels.alertname}}]({{$var}})*
告警级别:{{$v.labels.level}}
开始时间:{{TimeFormat $v.startsAt "2006-01-02 15:04:05"}}
结束时间:{{TimeFormat $v.endsAt "2006-01-02 15:04:05"}}
故障主机IP:{{$v.labels.instance}}
**{{$v.annotations.description}}**{{else}}**[Prometheus告警信息]({{$v.generatorURL}})**
*[{{$v.labels.alertname}}]({{$var}})*
告警级别:{{$v.labels.level}}
开始时间:{{TimeFormat $v.startsAt "2006-01-02 15:04:05"}}
结束时间:{{TimeFormat $v.endsAt "2006-01-02 15:04:05"}}
故障主机IP:{{$v.labels.instance}}
**{{$v.annotations.description}}**{{end}}{{ end }}
{{ $urimsg:=""}}{{ range $key,$value:=.commonLabels }}{{$urimsg = print $urimsg $key "%3D%22" $value "%22%2C" }}{{end}}[*** 点我屏蔽该告警]({{$var}}/#/silences/new?filter=%7B{{SplitString $urimsg 0 -3}}%7D)
重点在于
$urimsg = print $urimsg $key "%3D%22" $value "%22%2C"
可以使用如下命令进行测试,注意替换机器人token和alertmanager地址
curl -X POST \
https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxx \
-H 'Content-Type: application/json' \
-d '{
"msg_type": "interactive",
"card": {
"elements": [
{
"tag": "div",
"text": {
"content": "[屏蔽告警](http://xxxxxxx:9093/#/silences/new?filter=%7BIPMI%3D%2210.0.0.71%22%2Calertname%3D%22cpu温度过高%22%2Ccomment%3D%22A6000服务器%22%2Cid%3D%224%22%2Cinstance%3D%2210.0.2.30%22%2Cjob%3D%22ipmi_exporter%22%2Cname%3D%22CPU Temp%22%2Cseverity%3D%22critical%22%7D)",
"tag": "lark_md"
},
"content": "",
"elements": null
},
{
"tag": "hr",
"text": {
"content": "",
"tag": ""
},
"content": "",
"elements": null
},
{
"tag": "note",
"text": {
"content": "",
"tag": ""
},
"content": "",
"elements": [
{
"tag": "lark_md",
"text": {
"content": "",
"tag": ""
},
"content": "PrometheusAlert告警消息",
"elements": null
}
]
}
],
"header": {
"title": {
"content": "PrometheusAlert告警消息",
"tag": "plain_text"
},
"template": "red"
}
}
}'
实际上只有%3D这个等于符号的url编码在某处被解码了
飞书告警模板,点击“点我屏蔽告警”,打开Alertmanager Slicense页面,但是Matchers字段不显示“Alerts affected by this silence”内容,钉钉飞书告警是正常可显示的。 这是飞书告警点击屏蔽告警页面: 这是钉钉告警点击屏蔽告警页面: