我跟着这些前往发球台的路线:
一切都很顺利,直到我真正尝试运行这个命令(文章中有一个拼写错误,我在这里更正了它):
/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
我已经以 root 身份运行这个命令了。我选择使用 UNIX 套接字而不是 TCP。重新启动后,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 不是 root 组的成员:
# 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
配置文件中的其他位置进行配置。 ]