Назад | Перейти на главную страницу

Ошибка конфигурации Nagios: «Неожиданный токен или инструкция в файле» во время предполетной проверки

Я использую Nagios 3.2.3 на CentOS 6.5. Все во время install и make прошло гладко. Я передал свои файлы conf, внес соответствующие изменения и провел предполетную проверку моего файла nagios.cfg. В моем файле nagios.cfg я использую cfg_dir=/usr/local/nagios/etc/conf.d а затем позволить Nagios рекурсивно искать в этом каталоге.

Выход /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg показывает следующее:

Website: http://www.nagios.org
Reading configuration data...
    Read main config file okay...
Processing object config directory '/usr/local/nagios/etc/conf.d'...
Processing object config directory '/usr/local/nagios/etc/conf.d/hostgroups.d'...
Processing object config file '/usr/local/nagios/etc/conf.d/hostgroups.d/hostgroups.cfg'...
Processing object config directory '/usr/local/nagios/etc/conf.d/commands.d'...
Processing object config file '/usr/local/nagios/etc/conf.d/commands.d/commands.cfg'...
Processing object config directory '/usr/local/nagios/etc/conf.d/templates.d'...
Processing object config file '/usr/local/nagios/etc/conf.d/templates.d/templates.cfg'...
Processing object config file '/usr/local/nagios/etc/conf.d/templates.d/printer.cfg'...
Processing object config file '/usr/local/nagios/etc/conf.d/templates.d/switch.cfg'...
Processing object config file '/usr/local/nagios/etc/conf.d/templates.d/timeperiods.cfg'...
Processing object config file '/usr/local/nagios/etc/conf.d/templates.d/windows.cfg'...
Processing object config directory '/usr/local/nagios/etc/conf.d/objects'...
Processing object config file '/usr/local/nagios/etc/conf.d/objects/previews-indexes-qa.cfg'...
Processing object config file '/usr/local/nagios/etc/conf.d/objects/contacts.cfg'...
Processing object config file '/usr/local/nagios/etc/conf.d/objects/restart_cb_sites.cfg'...
Processing object config file '/usr/local/nagios/etc/conf.d/objects/hudson-slave01.cfg'...
Processing object config file '/usr/local/nagios/etc/conf.d/objects/ipc-qa.cfg'...
Processing object config file '/usr/local/nagios/etc/conf.d/objects/russellreynolds.cfg'...
Processing object config file '/usr/local/nagios/etc/conf.d/objects/lr.cfg'...
Processing object config file '/usr/local/nagios/etc/conf.d/objects/ts-01.cfg'...
Processing object config file '/usr/local/nagios/etc/conf.d/cgi.cfg'...
Error: Unexpected token or statement in file '/usr/local/nagios/etc/conf.d/cgi.cfg' on line 15.
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.

Я проверяю cgi.cfg файл в строке 15, которая указывает на мой main_config_file=

#################################################################
#
# CGI.CFG - Sample CGI Configuration File for Nagios 3.4.4
#
# Last Modified: 06-17-2009
#
#################################################################


# MAIN CONFIGURATION FILE
# This tells the CGIs where to find your main configuration file.
# The CGIs will read the main and host config files for any other
# data they might need.

main_config_file=/usr/local/nagios/etc/nagios.cfg //line 15 here


# PHYSICAL HTML PATH
# This is the path where the HTML files for Nagios reside.  This
# value is used to locate the logo images needed by the statusmap
# and statuswrl CGIs.

physical_html_path=/usr/local/nagios/share

Nagios.cfg намеренно находится вне каталога conf.d /. Указанный путь также правильный:

[root@ip-172-31-46-232 conf.d]# locate nagios.cfg
/usr/local/nagios/etc/nagios.cfg

У меня возникла та же проблема - и оказалось, что проблема заключалась не в том, что файлы должны быть по определенному пути, а наоборот - я пытался использовать resource.cfg файл из пути, который также был просканирован с использованием cfg_dir определение - что привело к ошибке как $USERX$=xxx starts with an invalid token что касается определений объектов в nagios!

С другой стороны, когда я включил resource.cfg с другой стороны, все получилось!

Надеюсь, это поможет кому-то понять это :-)

После разговора с @mdpc я дважды проверил документацию Nagios. Это не ясно и не прямо вам в лицо, но в нем говорится следующее:

По умолчанию Nagios ожидает, что файл конфигурации CGI будет называться cgi.cfg и находиться в каталоге файла конфигурации вместе с основным файлом конфигурации.

Я переместил cgi.cfg и nagios.cfg обратно в тот же каталог, и все прошло нормально. Я снова попробовал предполетную проверку и обнаружил ту же ошибку, но в моем resource.cfg файл. Переместил файл конфигурации в тот же каталог с файлами cgi и nagios, и все прошло нормально.

Итак, теперь содержимое моего каталога /usr/local/nagios/etc/ включает:

  • conf.d / # содержит подкаталоги cfg-файлов по категориям
  • cgi.cfg
  • nagios.cfg
  • resource.cfg

Что действительно расстраивает, так это то, что нигде в документации Nagios не говорится, что файлы cgi.cfg, nagios.cfg и resource.cfg должны находиться в одном каталоге.

Спасибо за предложения, ребята.