У меня есть небольшая установка Nagios 4.1.1, которую я только что завершил. Она работает на Raspberry Pi с использованием Raspbian. Проверяется нормально, и когда я запускаю ее вручную с использованием, /etc/init.d/nagios start
она работает нормально.
Я всегда указывал своим системам Debian запускать процессы при загрузке системы, делая что-то вроде этого: ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
я вижу, что символическая ссылка успешно создана.
Но он не срабатывает во время загрузки. Я могу запустить скрипты запуска после загрузки системы, сделав /etc/rcS.d/S99nagios start
это, я знаю (/думаю), что символическая ссылка хороша. Когда сервер запускается, Apache работает, и страница Nagios открыта, но на домашней странице написано "Невозможно получить статус процесса", что и ожидается, когда служба nagios не запущена. Есть ли способ посмотреть журналы запуска, чтобы увидеть, пытается ли он это сделать, или есть лучший способ заставить его запускаться при загрузке?
Обновление: Я запустил update-rc.d
и получил следующее:
update-rc.d: using dependency based boot sequencing
update-rc.d: warning: default start runlevel arguments (2 3 4 5) do not match resize2fs_once Default-Start values (2 3 4 5 S)
update-rc.d: warning: default stop runlevel arguments (0 1 6) do not match resize2fs_once Default-Stop values (none)
insserv: Script nagios is broken: incomplete LSB comment.
insserv: missing `Default-Start:' entry: please add even if empty.
insserv: missing `Default-Stop:' entry: please add even if empty.
insserv: Script nagios is broken: incomplete LSB comment.
insserv: missing `Default-Start:' entry: please add even if empty.
insserv: missing `Default-Stop:' entry: please add even if empty.
insserv: Default-Start undefined, assuming empty start runlevel(s) for script `nagios'
insserv: Default-Stop undefined, assuming empty stop runlevel(s) for script `nagios'
Я никогда этого не видел и не знаю, что делать, но это должно быть как-то связано.
Обновление 2: Немного почитав, я пришел к выводу, что это может быть связано с форматированием скриптов init.d. Если это так, то, скорее всего, эта проблема есть и у других, и это не первый раз, когда скрипты init.d вызывают проблемы для Nagios в системах на базе Debian. Я собираюсь закрыть это и открыть тикет на багтрекере Nagios.
решение1
Похоже, проблема в форматировании скрипта init.d. Это решило проблему для меня:
Сначала отредактируйте скрипт nagios init.d:
nano /etc/init.d/nagios
Замените блок, который начинается и заканчивается следующим образом:
### BEGIN INIT INFO
#
# stuff in here
#
### END INIT INFO
С этим:
### BEGIN INIT INFO
# Provides: nagios
# Required-Start: $local_fs $syslog $network
# Required-Stop: $local_fs $syslog $network
# Short-Description: Start and Stop Nagios monitoring server
# Description: Nagios is is a service monitoring system
# Default-Start: start
# Default-Stop: stop
### END INIT INFO
Отздесь
Затем выполните:
sudo update-rc.d nagios defaults
Вы получите несколько предупреждений, которые можно смело игнорировать. Например:
update-rc.d: warning: default start runlevel arguments (2 3 4 5) do not match nagios Default-Start values (start)
Перезагрузитесь и проверьте. У меня теперь все запускается автоматически.
Итак, похоже, что общее форматирование соответствует требуемому стандарту, просто в блоке INIT не хватает некоторых вещей. Я предпочитаю этот метод использованию чужого файла init.d для Nagios, потому что я считаю, что разработчики, вероятно, поддерживают этот скрипт лучше, чем я. Стоит отметить, что если вы когда-либо обновите Nagios из исходного кода и запустите make install-init
его, он перезапишет этот файл, и вам придется сделать это снова. Альтернатива — установить то, что вам нужно, исключив скрипт init.
решение2
Да, вы правы. Скрипт инициализации неправильно отформатирован.
Можете попробовать скрипт инициализации здесь:http://roger.steneteg.org/blog/installing-nagios-from-source/