나는 팔로우한다이것들티박스로 가는 길:
실제로 이 명령을 실행해 보기 전까지는 모든 것이 잘 진행되고 있었습니다(기사에 오타가 있어서 여기서 수정했습니다).
/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
내 결과:
# /usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
Could not bind socket: Permission denied
이 명령을 루트로 실행했습니다. 나는 TCP 대신 UNIX 소켓을 사용하기로 결정했습니다. 다시 시작한 후 Nagios 로그에 다음이 표시되지만 명령을 수동으로 실행하려고 하면 아무것도 표시되지 않습니다.
[1371152186] ndomod: NDOMOD 1.5.2 (06-08-2012) Copyright (c) 2009 Nagios Core Development Team and Community Contributors
[1371152186] ndomod: Could not open data sink! I'll keep trying, but some output may get lost...
[1371152186] Event broker module '/usr/local/nagios/bin/ndomod.o' initialized successfully.
프로세스 트리를 보면 어떤 종류의 "ndo" 프로세스도 실행되고 있지 않은 것을 알 수 있습니다.
netstat을 보면 다음과 같습니다.
unix 2 [ ACC ] STREAM LISTENING 841374 /var/run/saslauthd/mux
unix 2 [ ACC ] STREAM LISTENING 840356 @/com/ubuntu/upstart
unix 2 [ ] DGRAM 840610 @/org/kernel/udev/udevd
unix 10 [ ] DGRAM 841162 /dev/log
unix 2 [ ACC ] STREAM LISTENING 841337 /var/lib/mysql/mysql.sock
unix 2 [ ] DGRAM 857504
unix 2 [ ] DGRAM 847472
unix 2 [ ] DGRAM 841625
unix 2 [ ] DGRAM 841584
unix 2 [ ] DGRAM 841534
unix 2 [ ] DGRAM 841517
unix 2 [ ] DGRAM 841373
unix 2 [ ] DGRAM 841212
unix 3 [ ] DGRAM 840614
unix 3 [ ] DGRAM 840613
이 유틸리티를 사용하여 디버깅을 활성화하려고 합니다.
debug_level=-1
debug_verbosity=1
debug_file=/usr/local/nagios/var/ndo2db.debug
max_debug_file_size=1000000
그러나 아무것도 쓰여 있지 않습니다 /usr/local/nagios/var/ndo2db.debug
.
답변1
이것은 허가입니다. 이 프로세스는 사용자 "nagios"로 시작하려고 하지만 root:root는 /usr/local/nagios의 사용자:그룹 소유자이고 사용자 nagios는 루트 그룹의 구성원이 아닙니다.
# groups nagios
nagios: nagios centreon
어쨌든 해결책은 다음과 같습니다.
# chmod -R 770 /usr/local/nagios
# chgrp -R nagios /usr/local/nagios
이제 즉시 시작됩니다.
# /usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
# ps aux | grep ndo
nagios 4423 0.0 0.0 8220 652 ? Ss 00:14 0:00 /usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
이러한 권한과 관련하여 문제가 발견되면 알려주시기 바랍니다.
# stat /usr/local/nagios
File: `/usr/local/nagios'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 18h/24d Inode: 75507753 Links: 5
Access: (0770/drwxrwx---) Uid: ( 0/ root) Gid: ( 499/ nagios)
Access: 2013-06-14 00:16:38.195375728 +0400
Modify: 2013-06-13 22:38:29.836402241 +0400
Change: 2013-06-14 00:16:38.196375599 +0400
답변2
Could not bind socket: Permission denied
소켓 파일이 기록되는 디렉터리에 대한 쓰기 권한으로 인해 오류가 발생할 수 있습니다.
내 경우에는 chmod
그렇게 /dir/of/socket/fie/
해야 했다 777
. 이 변경 후에 프로세스가 성공적으로 시작됩니다.
/usr/local/nagios
IMO에서는 권한을 변경할 필요가 없습니다. ndo2db
프로세스가 소켓 파일을 쓰려고 시도하는 디렉터리 일 뿐입니다 . [ 일반적으로 ../var이지만 ndo
구성 파일의 다른 곳에서 구성할 수 있습니다. ]