使用Centos 6.4,使用yum 安装Monit 5.5。
我有 2 台安装了 monit 的服务器 - 相同的版本,相同的配置 - 但一个绑定在所有地址上,另一个只绑定在本地主机上。
问题服务器:
# 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 等......
更新更多信息-感谢您的评论:问题框:
# 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
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 行为与配置文件中写入的内容不匹配,一个可能的原因可能是 Monit 实际上使用了不同的配置文件。
包中的
/etc/rc.d/init.d/monit
脚本monit-5.5-1.el6.rf
启动时monit
未指定配置文件名,因此 Monit 尝试在多个位置查找配置文件并使用找到的第一个。另一件重要的事情是这个包中的默认配置文件名与未修改的上游版本的 Monit 使用的不同 - 上游使用monitrc
,但来自 RepoForge 的包使用monit.conf
.用于配置文件的搜索顺序如下:
~/.monitrc
在 Monit 的上游版本中,或者~/.monit.conf
在 RepoForge 包中(使用启动用户的主目录monit
;如果 Monit 从 init 脚本启动,则用户为root
)。主目录是使用getpwuid(geteuid())
(即从/etc/passwd
或任何其他 NSS 数据库)读取的,而不是从HOME
环境变量读取的。/etc/monitrc
在 Monit 的上游版本中,或/etc/monit.conf
在 RepoForge 包中。如果使用 RepoForge 包,/etc/monit.conf
最初包含一个未注释的include
行,这会导致 Monit 从/etc/monit.d
目录中读取其他配置文件:在上游源代码中,示例
monitrc
文件已将此行注释掉,因此默认情况下不使用其他配置文件。还要注意 RepoForge 包有一个安装后脚本:
因此,如果该
/etc/monitrc
文件在软件包安装或升级之前存在,该文件将被重命名为/etc/monit.conf
,并以静默方式覆盖它。$SYSCONFDIR/monitrc
在 Monit 的上游版本中,编译源代码时传递给脚本$SYSCONFDIR
的选项的值在哪里(这个选项的默认值是,与 Autoconf 生成的脚本一样,默认前缀是,所以配置文件名变成)。在 RepoForge 包中,此文件名变为,使其变得多余。--sysconfdir=...
configure
$prefix/etc
configure
/usr/local
/usr/local/etc/monitrc
/etc/monit.conf
/usr/local/etc/monitrc
在 Monit 的上游版本中,或/usr/local/etc/monit.conf
在 RepoForge 包中。这里的/usr/local/etc
目录是硬编码的,不依赖于任何configure
选项。./monitrc
在 Monit 的上游版本中,或者./monit.conf
在 RepoForge 包中(从 init 脚本启动时,当前目录很可能是/
)。检查
~/.monit.conf
不存在——这个位置/etc/monit.conf
甚至在查找 root 之前就被搜索过。(Monit 的上游版本使用~/.monitrc
and/etc/monitrc
,但这个特定的包使用不同的配置文件名。)