当实际上 Nginx 服务不是 运行 时,如何消除与 Passenger 相关的 Sensu 通知?

How can I eliminate Sensu notifications related to Passenger when actually the Nginx service is not running?

我有两项 Sensu 检查,一项关于 Nginx,另一项关于 Passenger。第一个确保 Nginx 服务是 运行,第二个检查 Passenger 进程是否是 运行.

    "nginx": {
    "command": "check-process.rb -p nginx",
    "handler": "mailer",
    "interval": 10,
    "occurences": 3,
    "refresh": 600,
    "standalone": true
},
"passenger": {
    "command": "check-process.rb -p \"Passenger RubyApp\"",
    "handler": "mailer",
    "interval": 10,
    "occurences": 3,
    "refresh": 600,
    "standalone": true
},

问题是当 Nginx 关闭时,我会自动收到 Passenger 关闭的警报,从当前配置来看这是正常的。我想在 Nginx 关闭时消除乘客通知,因为我认为这是多余的。

Sensu企业版有这个功能,它叫check_dependencies。如果检查有一个事件,并且它的一个或多个依赖项有一个事件,那么它不会发出警报。

https://sensuapp.org/docs/latest/enterprise/filters/check-dependencies.html

在您的情况下,您使 nginx 成为 passenger 的依赖项。然后,如果 nginx 出现故障,乘客警报将不会触发。