Sensu说:当检查结果表明状态发生变化时,就会创建一个Sensu事件。
是否可以创建一个自定义事件,而该事件不是检查的结果?
Sensu没有创建事件的命令:https://sensuapp.org/docs/latest/api-events。
发布于 2016-02-16 08:38:04
是的,但它会在乌奇瓦看上去是一张支票--尽管没有用感觉来定义。
见本页:input
我在一个客户机(linux)上运行;
echo '{ "name": "my_check", "output": "some output", "status": 0 }' > /dev/tcp/localhost/3030它神奇地出现在Uchiwa客户的支票清单下。
然后,我再次运行它,状态字段设置为1:
echo '{ "name": "my_check", "output": "some output", "status": 1 }' > /dev/tcp/localhost/3030而Uchiwa则把它作为警告。
我第三次运行它,状态为2,正如预期的那样,它变成了一个临界状态。在状态为0的情况下再次运行它将返回到正常状态。
因此,根据您想要实现的目标,您可以在PHP/Python/任何客户机上执行它,然后在您的感觉服务器上为它定义一个处理程序,以完成您需要做的任何事情。只需将处理程序名称添加到JSON,再加上要传递的任何其他数据即可。
例:
echo '{ "name": "trickyCheck", "output": "cake is delicious", "status": 0, "handler": "handlerOfDoom", "link": "http://cats.com" }' > /dev/tcp/localhost/3030处理程序:
{
"handlers": {
"handlerOfDoom": {
"type": "pipe",
"command": "doSomethingCool.rb",
"severities": ["warning","critical"]
}
}
}
}ruby脚本将访问JSON中的所有内容;输出、链接、状态等.在那里做你需要做的事。
为了在Windows上实现同样的Sensu,可能需要另一个工具将数据发送到本地主机上的tcp端口。https://serverfault.com/questions/629682/send-text-string-to-a-socket-in-windows
https://stackoverflow.com/questions/34360162
复制相似问题