Monit Web 服务不可用

Monit Web 服务不可用

我正在尝试使用 chef solo 在我的服务器上配置 monit。当我访问端口 2812 时,响应显示this webpage is not availble

配置/chef/文件/默认/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/*

监控配方

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'

答案1

其中一部分是调试为什么 monit 无法启动。

使用日志语句,logfile syslog...您应该查看 syslog 守护程序的输出以获取日志详细信息。我修改了 monitrc 以使用文件进行更简单的调试,如下所示:

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

因此,其中一个配置指令指向不存在的路径。

您还可以以交互方式运行 monit 命令以获取更多详细信息。

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

这将会发出大量的调试信息。

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

Cannot open for write -- No such file or directory

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

查看配置,我们可以看到以/var/monit/- 开头的路径,但没有相关资源可以在 Chef 配方中创建这些路径。

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

所以这表明 monit 守护进程正在尝试在不存在的路径中打开/写入状态、id 和队列文件。

Ubuntu 包中用于 monit 的默认路径/var/lib/monit/- 您可以更改配置以使用该路径,或者可以向配方中添加另一个资源来创建所需的路径。

相关内容