Monit 5.5只能绑定到localhost,但应该是全部

使用Centos 6.4,使用安装了Monit 5.5的yum。

我有2个服务器安装了监视 – 相同的版本,相同的configuration – 但一个绑定在所有地址上,另一个只绑定在本地主机上。

问题服务器:

# service monit restart Stopping monit: [ OK ] Starting monit: Starting monit daemon with http interface at [localhost:8080] [ OK ] 

好的服务器:

 # service monit restart Stopping monit: [ OK ] Starting monit: Starting monit daemon with http interface at [*:8080] [ OK ] 

configuration是这样的:

 set httpd port 8080 allow fofo:sdad allow fdgdfg:dsfsdf SSL ENABLE PEMFILE /var/certs/monit.pem signature disable 

我猜这个问题是一些networkingconfiguration错误的问题服务器 – 因此它不能绑定在外部端口 – 但其他的事情都工作正常 – HTTP,SSH等…

更新一些更多的信息 – 感谢您的意见:问题框:

 # rpm -qi monit Name : monit Relocations: (not relocatable) Version : 5.5 Vendor: Dag Apt Repository, http://dag.wieers.com/apt/ Release : 1.el6.rf Build Date: Wed 20 Mar 2013 02:09:54 PM WET Install Date: Sat 04 May 2013 09:30:54 PM WEST Build Host: lisse.hasselt.wieers.com Group : Applications/Internet Source RPM: monit-5.5-1.el6.rf.src.rpm Size : 716992 License: GPLv3 Signature : DSA/SHA1, Wed 20 Mar 2013 03:59:25 PM WET, Key ID a20e52146b8d79e6 Packager : Steve Huff <[email protected]> URL : http://mmonit.com/monit/ Summary : Process monitor and restart utility Description : Monit is an utility for monitoring daemons or similar programs running on a Unix system. It will start specified programs if they are not running and restart programs not responding. 

工作箱:

 # rpm -qi monit Name : monit Relocations: (not relocatable) Version : 5.5 Vendor: Dag Apt Repository, http://dag.wieers.com/apt/ Release : 1.el6.rf Build Date: Wed 20 Mar 2013 02:09:54 PM WET Install Date: Fri 22 Mar 2013 04:02:32 AM WET Build Host: lisse.hasselt.wieers.com Group : Applications/Internet Source RPM: monit-5.5-1.el6.rf.src.rpm Size : 716992 License: GPLv3 Signature : DSA/SHA1, Wed 20 Mar 2013 03:59:25 PM WET, Key ID a20e52146b8d79e6 Packager : Steve Huff <[email protected]> URL : http://mmonit.com/monit/ Summary : Process monitor and restart utility Description : Monit is an utility for monitoring daemons or similar programs running on a Unix system. It will start specified programs if they are not running and restart programs not responding. 

/ etc / hosts在它们之间看起来非常相似,如下所示:

 cat /etc/hosts # Automatically generated by ptisp cloud 127.0.0.1 localhost xxxx [hostname] 

问题框:

 # netstat -tln | grep ":8080" tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 

工作箱:

 # netstat -tln | grep ":8080" tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 

还运行'ip addr',其输出在工作和非工作框之间看起来非常相似。

更新2

刚刚添加M / monit混合今晚和这个盒子奇怪地显示了两次,一次不活动。 我想这是因为m / monit服务器不能ping回客户端…

提前感谢您的任何想法。 克里斯

如果Monit行为与configuration文件中写入的内容不匹配,则可能的原因可能是Monit实际上使用了不同的configuration文件。

monit-5.5-1.el6.rf软件包中的/etc/rc.d/init.d/monit脚本在不指定configuration文件名的情况下启动monit-5.5-1.el6.rf ,因此Monit会尝试在多个位置查找configuration文件,并使用第一个一个被发现。 另一个重要的是,这个包中的默认configuration文件名与monitrc的未修改上游版本所使用的monitrc – 上游使用了monitrc ,但monitrc的包使用了monit.conf

用于configuration文件的search顺序如下所示:

  1. ~/.monitrc的上游版本中使用~/.monit.conf ,或者在RepoForge包中使用~/.monit.conf (使用启动monit的用户的主目录;如果从初始化脚本启动了Monit,则该用户为root )。 使用getpwuid(geteuid()) (即从/etc/passwd或任何其他NSS数据库)读取主目录,而不是从HOME环境variables读取。

  2. /etc/monitrc的上游版本中的/etc/monitrc ,或RepoForge软件包中的/etc/monit.conf。 如果使用RepoForge软件包,/ /etc/monit.conf最初包含一个未注释的include行,这会导致/etc/monit.d/etc/monit.d目录读取其他configuration文件:

     include /etc/monit.d/* 

    在上游源中,示例monitrc文件将此行注释掉,因此默认情况下不会使用其他configuration文件。

    还要注意RepoForge软件包有一个postinstall脚本:

     # Moving old style configuration file to conf standard location if [ -f /etc/monitrc ]; then mv -f /etc/monitrc /etc/monit.conf fi 

    因此,如果在软件包安装或升级之前存在/etc/monitrc文件,则该文件将被重命名为/etc/monit.conf ,并将其默默覆盖。

  3. $SYSCONFDIR/monitrc在上游版本的$SYSCONFDIR/monitrc中,其中$SYSCONFDIR是在编译源代码时传递给configure脚本的--sysconfdir=...选项的值(该选项的默认值是$prefix/etc ,as通常使用Autoconf生成的configure脚本,默认的前缀是/usr/local ,因此configuration文件名称变为/usr/local/etc/monitrc )。 在RepoForge软件包中,这个文件名变为/etc/monit.conf ,使其成为冗余。

  4. /usr/local/etc/monitrc/usr/local/etc/monitrc的上游版本中,或者在RepoForge包中的/usr/local/etc/monit.conf中。 这里的/usr/local/etc目录是硬编码的,不依赖于任何configure选项。

  5. ./monitrc./monitrc的上游版本中,或者在RepoForge包中的./monit.conf(当从init脚本开始时,当前目录很可能是/ )。

检查~/.monit.conf是否不存在 – 在/etc/monit.conf之前search此位置,即使是root。 ( ~/.monitrc上游版本使用~/.monitrc/etc/monitrc ,但是这个特定的软件包使用不同的configuration文件名。)