Назад | Перейти на главную страницу

Веб-служба Monit недоступна

Я пытаюсь настроить monit на своем сервере с помощью chef solo. Когда я захожу на порт 2812, я говорю: this webpage is not availble.

конфигурация / шеф / файлы / по умолчанию / 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'

Частично это объясняется тем, почему monit не запускается.

С записью журнала logfile syslog... вы должны посмотреть на вывод вашего syslog daemon, чтобы узнать подробности регистрации. Я изменил 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 пытается открыть / записать файлы состояния, идентификатора и очереди по несуществующему пути.

Пути по умолчанию, используемые в пакете Ubuntu для мониторинга /var/lib/monit/ - вы можете изменить свою конфигурацию, чтобы использовать этот путь, или вы можете добавить другой ресурс в свой рецепт, чтобы создать желаемый путь.