Nagios – Fixing ‘Could Not Open Config Directory’ Error

centosnagios

Trying to setup a separate directory to store my nagios configuration files and when I attempt to validate the configuration I get the below error.

Error: Could not open config directory '/usr/local/nagios/etc/objects/corp/contacts.cfg' for reading.

I believe the permissions are correct and I have selinux in permissive mode.

[root@NAGSRV objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Nagios Core 4.4.6
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 2020-04-28
License: GPL

Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
Error: Could not open config directory '/usr/local/nagios/etc/objects/corp/contacts.cfg' for reading.
Error: Invalid max_check_attempts value for host 'localhost'
Error: Could not register host (config file '/usr/local/nagios/etc/objects/localhost.cfg', starting on line 21)
   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 definitions.  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.

Permissions:

[root@NAGSRV objects]# ls -ld *
-rwxr-xr-x. 1 nagios nagcmd  6747 Dec  7 21:06 commands.cfg
-rwxr-xr-x. 1 nagios nagcmd  1794 Dec  7 21:35 contacts.cfg
-rwxr-xr-x. 1 nagios nagcmd  4777 Dec  7 21:06 localhost.cfg
-rwxr-xr-x. 1 nagios nagcmd  3001 Dec  7 21:06 printer.cfg
drwxr-xr-x. 2 nagios nagcmd    99 Dec  9 10:43 corp
-rwxr-xr-x. 1 nagios nagcmd  3484 Dec  7 21:06 switch.cfg
-rwxr-xr-x. 1 nagios nagcmd 12533 Dec  7 21:06 templates.cfg
-rwxr-xr-x. 1 nagios nagcmd  3512 Dec  7 21:06 timeperiods.cfg
-rwxr-xr-x. 1 nagios nagcmd  7630 Dec  9 10:17 windows.cfg

[root@NAGSRV objects]# ls -ld ./corp/*
-rwxr-xr-x. 1 nagios nagcmd  1245 Dec  9 10:43 ./corp/contacts.cfg
-rwxr-xr-x. 1 nagios nagcmd  1124 Dec  9 10:39 ./corp/hostgroups.cfg
-rwxr-xr-x. 1 nagios nagcmd  3809 Dec  9 10:45 ./corp/hosts.cfg
-rwxr-xr-x. 1 nagios nagcmd 10967 Dec  9 10:41 ./corp/hosts-service-template.cfg

Groups:

[root@NAGSRV objects]# cat /etc/group | grep nag
nagios:x:1000:
nagcmd:x:1001:apache,nagios

Selinux:

[root@NAGSRV objects]# getenforce
Permissive

nagios.cfg:

# NAGIOS USER
# This determines the effective user that Nagios should run as.
# You can either supply a username or a UID.

nagios_user=nagios



# NAGIOS GROUP
# This determines the effective group that Nagios should run as.
# You can either supply a group name or a GID.

nagios_group=nagcmd

If I edit the nagios.cfg and remove my directory from the cfg_dir= I am able to validate.

Best Answer

cfg_dir= expects a directory, but you provided the path to a configuration file instead.

Either use

cfg_file=/usr/local/nagios/etc/objects/corp/contacts.cfg

Or

cfg_dir=/usr/local/nagios/etc/objects/corp/
Related Topic