用monit监视错误率

有没有办法告诉monit在一定时间内在日志文件中是否有超过X个错误(例如,匹配“ERROR”的行)?

我的用例是:错误有时出现在我的日志文件(即networking错误,远程服务器打嗝等),他们并不重要。 但是,如果有一个高峰,我想要通知,因为这需要快速调查(例如,拙劣的部署,新引入的bug)。

理想情况下,我正在考虑类似的东西

check file myapplog with path /var/myapp.log every 2 cycles if lines matching "ERR" > 10% then alert 

我想我可以通过写一个外部脚本,然后做类似的事情来得到这个

 check program cer with path /usr/local/bin/checkerrorrate.sh if status != 0 then alert 

但我想知道是否有更好的select。

我不认为Monit是评估这些错误信息频率的最佳select。 文件内容testing程序的限制可能会使这个棘手的问题,而不需要外部的解决scheme。 请参阅: http : //mmonit.com/monit/documentation/monit.html#file_content_testing

特别:

  • 内容仅在每个周期进行检查。 如果在两次检查之间添加和删除内容,则不会引起注意。

  • 在启动时,读取位置被设置为文件的结尾,Monit继续扫描到每个周期的文件末尾。 但是,如果文件大小应该减less或inode更改读取位置设置为文件的开始。

  • 只有以换行符结尾的行才被检查。 因此,行被忽略,直到他们完成这个性格。 另请注意,只有一行的前511个字符被检查。

我会轮询远程服务器或相关服务来检查运行状况。