最近看了一个问题,monit监控在读取配置文件之后,访问的文件是残留在容器中的,导致认为服务异常,其实一开始容器启动,并没有对应的服务。
[root@10-36-235-119.fin-wealth-api.bj02 /]# /usr/bin/monit -vv 。。。 Process Name = rsyslod Pid file = /var/run/syslogd.pid Monitoring mode = active On reboot = start Start program = '/usr/sbin/rsyslogd' timeout 30 s Existence = if does not exist then restart 。。。
它会检查/var/run/syslogd.pid是否存在,并且里面的pid是否和运行的服务一致,由于这个文件在异常掉电时,并不会清理,所以在容器起来的时候,检查报错。
具体的例子可以参考:
https://mmonit.com/wiki/Monit/ConfigurationExamples
我们曾今在以往的项目中使用脚本来进行检查某些服务,但是很明显,monit更强大。包括发送邮件,告警等。