我已经在很多虚拟机上安装了 monit。除了这台虚拟机之外,其他都运行正常。
Monit 设置为监控 apache 并检查它是否已关闭。出于某种原因,monit 说 apache 已关闭(但实际上没有),需要重新启动。在尝试运行启动脚本后,它仍然显示“启动失败”。monit 日志如下:
[CEST Oct 4 20:16:21] error : 'apache2' process is not running
[CEST Oct 4 20:16:21] info : 'apache2' trying to restart
[CEST Oct 4 20:16:21] info : 'apache2' start: /etc/init.d/apache2
[CEST Oct 4 20:16:52] error : 'apache2' failed to start
此后 apache 服务器仍可工作,但 monit 仍显示未启动且将取消监控。
我的 apache 配置如下:
check process apache2 with pidfile /var/run/apache/apache2.pid
alert [email protected] but not on { pid }
start program = "/etc/init.d/apache2 start"
stop program = "/etc/init.d/apache2 stop"
if failed host vm01.domain.com port 80
protocol HTTP request "/monit_check.html" then restart
if cpu > 60% for 2 cycles then alert
if 5 restarts within 5 cycles then timeout
该服务器是 ubuntu 14.01.1 LTS Linux 服务器。如能得到任何帮助,我们将不胜感激!
答案1
感谢 Paul Haldane(评论我的第一篇帖子),我找到了答案。我无法让 monit 运行到前台并显示详细内容。我忘了大写的 I。
我这样做之后,发现它找不到 pid - 原来是我输入了 PID 文件的路径,并将其设置为 apache 而不是 apache2。
感谢你们俩!
答案2
听起来好像无法访问“monit_check.html”页面。当您尝试自己在本地访问时,它可以正常工作吗?
curl http://vm01.d-cloud.nl/monit_check.html
这可能不是正确的语法(我可能错了):
if failed host vm01.d-cloud.nl port 80
protocol HTTP request "/monit_check.html" then restart
尝试在“请求”之前放置“和”:
if failed host vm01.d-cloud.nl port 80 protocol HTTP
and request "/monit_check.html"
then restart