告警自愈ibex如何传递prometheus采集的信息

Viewed 142

环境为n9e只使用告警功能,采集存储都在prometheus
告警规则的回调地址填写的是:${ibex}/1/node01.beijing.cn,并且参考了这篇文章https://mp.weixin.qq.com/s/6FRfBupon7o8FWMPdw3IBA

问题:如何把报警的主机信息传递给脚本执行呢?因为我需要通过中控机(node01.beijing.cn)去远程执行命令操作告警的机器。

4 Answers

https://github.com/ccfos/nightingale/blob/main/alert/sender/callback.go#L141,这个网址打不开,怎么获取告警事件的tagsMap

要不尝试打印一下从stdin接收到的字符串,代码里把它序列化成json字符串了

#!/usr/bin/env python3

-- coding: UTF-8 --

import sys
import json

if name == "main":
payload = json.load(sys.stdin)
with open(".payload", 'w') as f:
f.write(json.dumps(payload, indent=4))
回调脚本用这个报错了,报错截图,我发下面

你好,跟你一样的场景,报警的主机信息你获取到了吗

我是这样获取的
date=date +%Y%m%d
data=$(cat -)
echo "$data" |awk -F : '{print $5}'|sed 's/"//g' >> /da1/host.$date

自愈脚本按照这个打印出来的内容为空,categraf已经最新版本了