使用 Sensu 忽略基于 Uchiwa 依赖项的检查

Ignore Checks Based on Dependencies on Uchiwa using Sensu

我目前正在使用 sensu 和 Uchiwa 试图摆脱 Zabbix,问题是一些检查仍然存在,即使它们依赖于其他检查。 例如: 我有一个检查,检查 vpn 进程是否处于活动状态:

    "vpn-process": {
  "command": "check-process.rb -f /var/run/openvpn/client.pid",
  "subscribers": [
    "uni"
  ],
  "interval": 60,
  "dependencies": [
    "http-url1",
    "http-url2",
    "http-url3"
  ]
},

我还检查了 HTTP 响应,但如果 vpn 已关闭,这将不起作用。

    "http-url1": {
  "command": "python /etc/sensu/plugins/check-http.py https://url",
  "subscribers": [
    "uni" 
  ],
  "interval": 60
}, 

Uchiwa 仍然警告 VPN 检查 HTTP 检查。 Uchiwa showing VPN and HTTP checks

我读到了 dependency check filters, but as far as I could understand, it only works for handlers and Uchiwa is not a handler?

Uchiwa 显示系统中事件的当前状态 -- 它是 checks/events 的被动视图,而处理程序是主动的。即使 VPN 关闭,HTTP 检查也会按计划执行,并且无论您是否有依赖项过滤器,它都会被视为 CRITICAL

如果 VPN 关闭,让 HTTP 检查 not 产生 CRITICAL 值的唯一方法是,如果您能够以某种方式在HTTP 检查和 return 一个不同的值而不是 CRITICAL。但是,VPN 出现故障可能看起来与其他与网络相关的问题非常相似,因此最好避免这种情况。

也许尝试将 VPN 和 HTTP 检查变成 check aggregate?

似乎你不能使用 Uchiwa 作为处理程序(我与维护人员核实过),我不得不在 python 中编写自己的处理程序,以便在每次 VPN 关闭时调用 API 并且使我不想在仪表板中显示的支票静音。这样我就创建了自己的依赖。