根据多种情况重启 Monit 服务

根据多种情况重启 Monit 服务

我有一个由 monit 监控的服务,如果它满足以下两个不同条件之一,我想重新启动它:

  1. 如果内存使用率>15%
  2. 如果内存使用率 >5% 并且当前系统时间在凌晨 4 点到 6 点之间。

下面是处理前一种情况的 monit 配置示例:

check process myservice with pidfile /var/run/myscript.pid
    start = "/bin/systemctl start myservice.service"
    stop = "/bin/systemctl stop myservice.service"
    if mem usage > 10% for 3 cycles then restart

还有一个配置文件可以处理后一种情况(我认为——实际上还没有测试过):

check process myservice with pidfile /var/run/myscript.pid
    every "* 4-6 * * *"
    start = "/bin/systemctl start myservice.service"
    stop = "/bin/systemctl stop myservice.service"
    if mem usage > 5% for 3 cycles then restart

但是我该如何结合这两个条件呢?

(用例背景:在正常使用情况下,预计服务的 RAM 会缓慢增加,比如每天 1%,但在实际使用服务期间,即白天,重启会造成一定程度的破坏。因此,第二种情况处理预期的服务间歇性夜间重启。第一种情况是针对意外的病理场景,其中 RAM 使用量快速增加。)

相关内容