Warning: Duplicate definition found for host 'kelly' (config file '/usr/local/nagios/etc/objects/localhost.cfg', starting on line 25)
Error: Could not add object property in file '/usr/local/nagios/etc/objects/localhost.cfg' on line 29.
Error processing object config files!
[iyunv@kelly ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nagios Core 3.4.3
Copyright (c) 2009-2011 Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 11-30-2012
License: GPL
Website: http://www.nagios.org
Reading configuration data...
Read main config file okay...
Processing object config file '/usr/local/nagios/etc/objects/commands.cfg'...
Processing object config file '/usr/local/nagios/etc/objects/contacts.cfg'...
Processing object config file '/usr/local/nagios/etc/objects/hosts.cfg'...
Processing object config file '/usr/local/nagios/etc/objects/timeperiods.cfg'...
Processing object config file '/usr/local/nagios/etc/objects/templates.cfg'...
Processing object config file '/usr/local/nagios/etc/objects/localhost.cfg'...
Warning: Duplicate definition found for host 'kelly' (config file '/usr/local/nagios/etc/objects/localhost.cfg', starting on line 25)
Error: Could not add object property in file '/usr/local/nagios/etc/objects/localhost.cfg' on line 29.
Error processing object config files!
***> One or more problems was encountered while processing the config files...
Check your configuration file(s) to ensure that they contain valid
directives and data defintions. If you are upgrading from a previous
version of Nagios, you should be aware that some variables/definitions
may have been removed or modified in this version. Make sure to read
the HTML documentation regarding the config files, as well as the
'Whats New' section to find out what has changed.
解决方案如下:
删除hosts.cfg文件,在nagios.cfg文件中不加入hosts.cfg文件的加载,从而可以解决问题。
原因:
主要原因是在hosts.cfg文件中定义了主机的信息,而在localhost.cfg文件中又再次定义了主机的信息,从而导致了定义的信息产生了重复。
在配置文件nagios.cfg中可以看到已经定义了主机信息:
define host{
26 use linux-server ; Name of host template to use
27 ; This host definition will inherit all variables that are defined
28 ; in (or inherited by) the linux-server host templ ate definition.
29 host_name kelly
30 alias kelly
31 address 192.168.1.104
32 }
而在hosts.cfg文件中再次定义就会造成定义信息重复,从而导致上面的问题。
二 在web页面无法查看相关的信息,日志中报错Error: Could not create external command file '/usr/local/nagios/var/rw/nagios.cmd' as named pipe: (13) -> Permission denied
具体的报错信息在日志中可以看到,报错信息如下:
.[1427280603] Nagios 3.4.3 starting... (PID=19238)
[1427280603] Local time is Wed Mar 25 18:50:03 CST 2015
[1427280603] LOG VERSION: 2.0
[1427280603] Finished daemonizing... (New PID=19239)
[1427280603] Error: Could not create external command file '/usr/local/nagios/var/rw/nagios.cmd' as named pipe: (13) -> Permission denied. If this file already exists and you are sure that another copy of Nagios is not running, you should delete this file.
[1427280603] Bailing out due to errors encountered while trying to initialize the external command file... (PID=19239)
日志路径如下:
[iyunv@kelly var]# pwd
/usr/local/nagios/var
[iyunv@kelly var]# ls -l
total 72
drwxrwxr-x 2 nagios nagios 4096 Mar 25 17:47 archives
-rw-r--r-- 1 nagios nagios 6 Mar 25 18:52 nagios.lock
-rw-r--r-- 1 nagios nagios 4300 Mar 25 19:52 nagios.log
-rw-r--r-- 1 nagios nagios 13695 Mar 25 18:52 objects.cache
-rw------- 1 nagios nagios 14703 Mar 25 19:52 retention.dat
drwxrwxr-x 2 nagios nagios 4096 Mar 25 18:52 rw
drwxr-xr-x 3 root root 4096 Mar 25 17:47 spool
-rw-rw-r-- 1 nagios nagios 15286 Mar 25 20:21 status.dat
然后重启nagios即可。
[iyunv@kelly var]# service nagios restart
可以看到重启之后成功的日志:
[1427280727] Nagios 3.4.3 starting... (PID=19298)
[1427280727] Local time is Wed Mar 25 18:52:07 CST 2015
[1427280727] LOG VERSION: 2.0
[1427280727] Finished daemonizing... (New PID=19299)
[1427284327] Auto-save of retention data completed successfully.
原因:主要是因为权限的问题,在读取文件的时候,设定的用户和组都在配置文件中,如下:
[iyunv@kelly etc]# ls -l nagios.cfg
-rw-r--r-- 1 root root 44777 Mar 25 18:50 nagios.cfg
nagios_user=nagios
125
126
127
128 # NAGIOS GROUP
129 # This determines the effective group that Nagios should run as.
130 # You can either supply a group name or a GID.
131
132 nagios_group=nagios