Monit将Apache列为“不受监视”


11

我刚刚根据monit文档安装并配置了monit。除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 / server-statushttp:// localhost。Monit列出了Apache的监视模式为active

服务器正在运行CentOS 5.4。

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

[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

Answers:


13

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

如果过时了,请获取Apache主进程的pid,然后执行echo 1234 > /var/run/httpd.pid,如1234pid所示。

之后,运行monit monitor apache以重新启动对该服务的监视。


2
PID文件是正确的,但是运行monit monitor apache使它启动,现在,重新启动服务后,它似乎工作正常。我还应该尝试单击Web界面上的“启用监视器”按钮。
dunxd 2012年

1

您没有提供操作系统版本/发行版,但是在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

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


它是CentOS 5.4。PID文件正确。
dunxd 2012年

在CentOS 5服务器上使用您的配置,我得到Process 'apache' status Does not exist monitoring status monitored
ewwhite

您在哪里看到该输出?
dunxd 2012年

您应该将您的pidfile路径引用为“ /var/run/httpd/httpd.pid”。另请参阅我在初始答案中写的关于可能需要VirtualHosts指令的注释。
ewwhite 2012年

引用或不引用没有区别。
dunxd 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.