Monit Web Service不可用

我正尝试使用厨师独奏在我的服务器上configurationmonit。 当我访问端口2812响应说this webpage is not availble

configuration/厨师/文件/默认/ monitrc

 set daemon 30 set pidfile /var/run/monit_real.pid set logfile syslog facility log_daemon set idfile /var/monit/id set statefile /var/monit/state set eventqueue basedir /var/monit/events slots 100 set httpd port 2812 allow admin:"secret" include /etc/monit/conf.d/* 

monit食谱

 package 'monit' do action :install end service "monit" do supports :status => true, :restart => true, :start => true,:stop => true action [ :enable, :start ] end directory '/etc/monit' do owner 'deploy' group 'deploy' mode '0755' recursive true action :create notifies :restart, resources(:service => "monit"), :immediate end cookbook_file '/etc/monit/monitrc' do source 'monitrc' owner 'deploy' group 'deploy' mode '0755' action :create end cookbook_file '/etc/monit/conf.d/puma.conf' do source 'monit-puma' owner 'deploy' group 'deploy' mode '0755' action :create end cookbook_file '/etc/monit/conf.d/nginx.conf' do source 'monit-nginx' owner 'deploy' group 'deploy' mode '0755' action :create end execute 'sudo monit reload' execute 'sudo monit start all' 

这部分是debugging为什么monit不会启动。

使用日志logfile syslog...的日志语句logfile syslog...你应该看看你的syslog守护进程的输出logging详细信息。 我修改了monitrc来使用一个文件来简化debugging,就像这样:

 set logfile /var/log/monit.log 

输出显示:

 [UTC Mar 3 13:13:14] info : Starting monit daemon with http interface at [*:2812] [UTC Mar 3 13:13:14] error : Cannot open for write -- No such file or directory 

所以其中一个configuration指令指向一个不存在的path。

您也可以交互地运行monit命令以获取更多详细信息。

 /usr/bin/monit -c /etc/monit/monitrc -I -vv 

这会发出很多很棒的debugging信息。

在这种情况下,我们可以看到相同的消息被重复:

 Cannot open for write -- No such file or directory 

不幸的是,输出没有告诉我们正在尝试哪个文件或目录。

看一下configuration,我们可以看到以/var/monit/开头的path,但没有关联的资源在Chef配方中创build这些path。

 # ls /var/monit ls: cannot access /var/monit: No such file or directory 

因此,这将表明monit守护进程正试图在不存在的path中打开/写入状态,id和队列文件。

Ubuntu软件包中用于监视/var/lib/monit/的默认path – 您可以更改您的configuration以使用该path,或者您可以将另一个资源添加到您的配方以创build所需的path。