Monit虚假警报

时间:2015-08-19 10:20:17

标签: monit

我正在使用PID监视java守护进程。以下是代码。

  check process SemanticReplication with pidfile "/ngs/app/edwt/opsmonit  /monit/scripts/process.pid"
    start = "/ngs/app/edwt/scripts/javadaemon/start_daemon.ksh"
    stop = "/ngs/app/edwt/scripts/javadaemon/stop_daemon.ksh"

很多时候,即使java守护程序进程已启动并运行,但由于进程未运行,我会收到虚假警报。 在下一个监视周期(一分钟之后),当进程启动并运行时,另一个监视警报会触发。

有人可以帮助我们如何避免这种虚假警报?

1 个答案:

答案 0 :(得分:0)

你的检查语句是monit检查是否存在pid文件(看起来很奇怪,有空格,顺便说一句)。如果没有,则默认发送警报,然后运行start指令。

我通过这样的check process ... matching声明来解决这个问题:

check process app-pass matching 'Passenger RubyApp: \/home\/app\/app-name\/public'

基本上,"匹配"相当于ps aux | grep ...当我不能依赖现有的pid文件时,它可以做得更好,就像子进程一样。