Monit 将 Apache 列为未监控

Monit 将 Apache 列为未监控

我刚刚安装并配置了monitmonit 文档除 Apache 之外的所有服务都列为正在运行,但 Apache 说未受监控

monit 配置中的相关行是:

check process apache with pidfile /var/run/httpd.pid
        group www
        start program = "/etc/init.d/httpd start"
        stop program = "/etc/init.d/httpd stop"
        if failed host localhost port 80
        protocol http then restart
        if 5 restarts within 5 cycles then timeout

我可以访问http://localhost/服务器状态http://本地主机服务器正常运行。Monit 列出了 Apache 的监控模式积极的

服务器正在运行CentOS 5.4。

父 httpd 服务器的 PID 文件是正确的:

[server ~]$ cat /var/run/httpd.pid
2905
[server ~]$ ps auxc | grep httpd
root      2905  0.0  0.9  26952  4808 ?        Ss   11:36   0:00 httpd

答案1

确保 pid 文件的内容与 Apache 主进程的 pid(即httpd以 root 身份运行的进程)匹配。pid 文件可能已过时。

如果它已经过时,请获取 Apache 主进程的 pid,然后执行类似的事情echo 1234 > /var/run/httpd.pid1234所讨论的 pid 在哪里。

之后运行monit monitor apache重新启动该服务的监控。

答案2

您没有提供操作系统版本/发行版,但在 CentOS 6 上,您应该监控的 PID 文件位于:/var/run/httpd/httpd.pid

所以改为:

check process apache with pidfile /var/run/httpd/httpd.pid

顺便说一下,CentOS 5 的 Apache PID 文件位于:/var/run/httpd.pid

编辑:还引用 PID 路径。

Monit 邮件列表中有一条关于您正在使用的协议测试的说明:

http://lists.gnu.org/archive/html/monit-general/2004-12/msg00057.html

如果您使用基于名称的虚拟主机,则可能需要传递主机名或站点名称。

相关内容