我有两个安装了monit的服务器 – 相同的版本,相同的配置 – 但是一个绑定在所有地址上,另一个只绑定在localhost上.
问题服务器:
# 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 ]
配置是这样的:
set httpd port 8080 allow fofo:sdad allow fdgdfg:dsfsdf SSL ENABLE PEMFILE /var/certs/monit.pem signature disable
我猜这个问题是问题服务器的一些网络配置错误 – 因此它无法绑定外部端口 – 但其他东西工作正常 – http,ssh等…
UPDATE
更多信息 – 感谢您的评论:
问题框:
# 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 <shuff@vecna.org> 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,Key ID a20e52146b8d79e6 Packager : Steve Huff <shuff@vecna.org> 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 x.x.x.x [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-5.5-1.el6.rf包中的/etc/rc.d/init.d/monit脚本启动monit而不指定配置文件名,因此Monit尝试在几个地方查找配置文件并使用第一个一个被发现.另一个重要的事情是这个包中的默认配置文件名与未修改的Monit上游版本使用的名称不同 – 上游使用monitrc,但RepoForge的包使用monit.conf.
Monit的上游版本中的〜/ .monitrc,或者RepoForge包中的〜/ .monit.conf(使用启动monit的用户的主目录;如果从init脚本启动Monit,则用户是root) .使用getpwuid(geteuid())(即来自/ etc / passwd或任何其他NSS数据库)而不是来自HOME环境变量来读取主目录.
> Monit的上游版本中的/ etc / monitrc,或RepoForge包中的/etc/monit.conf.如果使用RepoForge包,/ etc / monit.conf最初包含一个未注释的include行,这会导致Monit从/etc/monit.d目录中读取其他配置文件:
include /etc/monit.d/*
在上游源中,示例monitrc文件已将此行注释掉,因此默认情况下不使用其他配置文件.
另请注意,RepoForge包具有安装后脚本:
# 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,并以静默方式覆盖它.> Monit的上游版本中的$SYSCONFDIR / monitrc,其中$SYSCONFDIR是编译源时传递给configure脚本的–sysconfdir = …选项的值(此选项的默认值为$prefix / etc,像往常一样使用Autoconf生成的配置脚本,默认前缀是/usr/local,因此配置文件名变为/usr/local / etc / monitrc).在RepoForge包中,此文件名变为/etc/monit.conf,使其成为冗余.> Monit的上游版本中的/usr/local / etc / monitrc,或RepoForge包中的/usr/local/etc/monit.conf.这里/usr/local / etc目录是硬编码的,不依赖于任何配置选项.Monit的上游版本中的./monitrc,或RepoForge包中的./monit.conf(从init脚本开始时,当前目录可能是/).