我有一些在无限循环中运行的守护程序脚本,如果检测到的节点发生故障,它们会执行一些操作。例如;在 AWS 中移动弹性 IP。
如何集成这个无限循环运行的脚本以将警报推送到 sensu?有关检查的传统 Sensu 文档不适用(此脚本将永远运行)。我需要一种方法将自定义事件直接发送到 sensu。我以为API可能就是这样,但似乎我不能推送事件。
答案1
Sensu 在此处提供了有关如何执行此操作的文档:https://sensuapp.org/docs/latest/clients#client-socket-input
基本上,每个 sensu 客户端 ( client.json
) 都有一个可以向其发送外部数据的内部套接字;默认情况下,此套接字仅侦听127.0.0.1:3030
,因此必须调整客户端的配置:
{
"client": {
"name": "my.host",
"address": "x.x.x.x",
"subscriptions": [
"all"
],
"socket": {
"bind": "0.0.0.0",
"port": 3030
}
}
}
然后,外部脚本需要使用以下格式通过 TCP 或 UDP 以 JSON 格式将数据发送到客户端套接字:
{
"name": "some_name",
"output": "ITS DOWN OH NO!",
"status": 2
}