부팅 후 Nagios가 시작되지 않습니다

부팅 후 Nagios가 시작되지 않습니다

방금 완료한 작은 Nagios 4.1.1 설치가 있습니다. Raspbian을 사용하여 Raspberry Pi에서 실행됩니다. 확인 결과, 수동으로 시작하면 정상적으로 /etc/init.d/nagios start작동합니다.

나는 항상 다음과 같이 하여 시스템 부팅 시 작업을 시작하도록 데비안 시스템에 지시했습니다. 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 스크립트가 Debian 기반 시스템의 Nagios에 문제를 일으킨 것은 이번이 처음이 아닙니다. 나는 이것을 닫고 Nagios bugtracker에서 티켓을 열 것입니다.

답변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 블록에는 몇 가지가 누락되어 있습니다. 나는 Nagios에 대해 다른 사람의 init.d 파일을 사용하는 것보다 이 방법을 선호합니다. 왜냐하면 개발자들이 아마도 나보다 해당 스크립트를 더 잘 관리할 것이라고 믿기 때문입니다. 한 가지 주의할 점은 소스에서 Nagios를 업데이트하고 make install-init이를 실행하면 이 파일을 덮어쓰게 되며 이 작업을 다시 수행해야 한다는 것입니다. 대안은 init 스크립트를 제외하고 필요한 것을 설치하는 것입니다.

답변2

네, 맞습니다. init 스크립트의 형식이 잘못되었습니다.

여기에서 init 스크립트를 사용해 볼 수 있습니까?http://roger.steneteg.org/blog/installing-nagios-from-source/

관련 정보