Sensu 手动触发事件

标签 sensu

森苏 说:
当检查结果表明状态发生变化时,就会创建 Sensu 事件。

是否可以创建一个不是检查结果的自定义事件?

Sensu API 没有创建事件的命令:https://sensuapp.org/docs/latest/api-events .

最佳答案

是的,但它看起来像是 Uchiwa 中的支票 - 尽管没有在 sensu 中定义。

看这个页面:https://sensuapp.org/docs/0.16/external_result_input

在我运行的客户端(linux)上;

echo '{ "name": "my_check", "output": "some output", "status": 0 }' > /dev/tcp/localhost/3030

它神奇地出现在 Uchiwa 中该客户的检查 list 下。

然后我再次运行它,状态字段设置为 1:
echo '{ "name": "my_check", "output": "some output", "status": 1 }' > /dev/tcp/localhost/3030

内和将其显示为警告。

我第三次运行它,状态为 2,正如预期的那样,它变成了关键。再次以 0 状态运行它会使其恢复正常。

因此,根据您想要实现的目标,您可以在客户端上的 PHP/Python/Whatever 中执行此操作,然后在您的 sensu 服务器上为其定义一个处理程序,以执行您需要执行的任何操作。只需将处理程序名称添加到 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

关于Sensu 手动触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34360162/

相关文章:

mysql - sensu 服务器、客户端和 api 无法启动

amazon-ec2 - 如何使用 Sensu 框架收集的系统数据自动扩展 EC2 实例?

redis - Sensu检查结果历史记录

docker - Docker 容器内的 Sensu-Client

Sensu 处理程序给出未定义的方法错误

ruby - 如何使用 Sensu 中的 check-tail 插件检查重复的字符串?

plugins - 将 Slack 插件安装到 Sensu 非企业版

linux - 设置 sensu 时出错 "sensu must be a hash"