Nagiosql生成的文件在预检检查中出现问题 - 但是每一件事似乎都没问题。
/etc/nagios/nagios.cfg
....
## Hosts
cfg_dir=/etc/nagiosql/hosts/
cfg_file=/etc/nagiosql/hosttemplates.cfg
cfg_file=/etc/nagiosql/hostgroups.cfg
cfg_file=/etc/nagiosql/hostextinfo.cfg
cfg_file=/etc/nagiosql/hostescalations.cfg
cfg_file=/etc/nagiosql/hostdependencies.cfg
## Services
cfg_dir=/etc/nagiosql/services/
cfg_file=/etc/nagiosql/servicetemplates.cfg
cfg_file=/etc/nagiosql/servicegroups.cfg
cfg_file=/etc/nagiosql/serviceextinfo.cfg
cfg_file=/etc/nagiosql/serviceescalations.cfg
cfg_file=/etc/nagiosql/servicedependencies.cfg
...
nagios -v /etc/nagios/nagios.cfg
....
Running pre-flight check on configuration data...
Checking services...
Error: There are no services defined!
Checked 0 services.
Checking hosts...
Error: There are no hosts defined!
Checked 0 hosts.
内容对我来说似乎没问题
[root@xxx services]# cd /etc/nagiosql/services/
[root@xxx services]# ls -alh
total 20K
drwsr-sr-x 2 apache nagios 4.0K Aug 7 10:46 .
drwsr-sr-x 5 apache nagios 4.0K Aug 7 12:17 ..
-rw-r--r-- 1 apache nagios 2.3K Aug 7 10:46 localhost.cfg
-rw-r--r-- 1 apache nagios 2.2K Aug 7 10:46 www.google.com.cfg
-rw-r--r-- 1 apache nagios 1.1K Aug 7 10:46 www.yahoo.com.cfg
[root@xxx hosts]# ls -alh
total 16K
drwsr-sr-x 2 apache nagios 4.0K Aug 11 07:12 .
drwsr-sr-x 5 apache nagios 4.0K Aug 7 12:17 ..
-rw-r--r-- 1 apache nagios 800 Aug 11 07:12 GIT.cfg
-rw-r--r-- 1 apache nagios 948 Aug 11 07:12 psm01.cfg
内容似乎也很好(由nagiosql生成):
[root@xxx hosts]# vi GIT.cfg
###############################################################################
#
# Host configuration file
#
# Created by: Nagios QL Version 3.2.0
# Date: 2015-08-11 07:12:54
# Version: Nagios 3.x config file
#
# --- DO NOT EDIT THIS FILE BY HAND ---
# Nagios QL will overwite all manual settings during the next update
#
###############################################################################
define host {
host_name GIT
alias GIT Server
address 172.25.10.80
register 0
}
###############################################################################
#
# Host configuration file
#
# END OF FILE
#
###############################################################################
~
有人可以告诉我这个问题的解决方案在哪里吗?已经浪费了2个小时......
答案 0 :(得分:0)
尝试从cfg_dir
定义中的目录名称中删除最终的斜杠,看看是否无法识别该目录中的cfg文件。
例如,
变化:
cfg_dir=/etc/nagiosql/hosts/
...
cfg_dir=/etc/nagiosql/services/
要:
cfg_dir=/etc/nagiosql/hosts
...
cfg_dir=/etc/nagiosql/services
<强> 编辑: 强>
好的,我认为目录权限可能导致cfg_dir
评估失败。根据您列出的ls -alh
输出,您的/etc/nagiosql/hosts/
,/etc/nagiosql/services/
和/etc/nagiosql/
目录不会向{{1}授予写入权限}组。 Nagios需要获取这些目录的目录列表,并且需要组写权限才能完成。
补救:
nagios
重新启动nagios服务。
此外,您不需要从nagios chmod g+w /etc/nagiosql/hosts/
chmod g+w /etc/nagiosql/services/
配置中的目录路径中删除斜杠。根据代码,Nagios将为您删除尾部斜杠(cfg_dir
):
/
编辑#2 :在您发布的主机定义中,您的 /* process all files in a config directory */ else if(!strcmp(var, "xodtemplate_config_dir") || !strcmp(var, "cfg_dir")) {
if(config_base_dir != NULL && val[0] != '/') {
asprintf(&cfgfile, "%s/%s", config_base_dir, val);
} else
cfgfile = strdup(val);
/* strip trailing / if necessary */ if(cfgfile != NULL && cfgfile[strlen(cfgfile) - 1] == '/')
cfgfile[strlen(cfgfile) - 1] = '\x0';
/* process the config directory... */ result = xodtemplate_process_config_dir(cfgfile, options);
my_free(cfgfile);
/* if there was an error processing the config file, break out of loop */ if(result == ERROR)
break; } }
值设置为register
。请尝试将其设置为0
。 1
用于将继承的模板,但实际上不会显示在Nagios用户界面中。
变化:
register 0
要:
define host {
host_name GIT
alias GIT Server
address 172.25.10.80
register 0
}
另请为您的服务定义设置define host {
host_name GIT
alias GIT Server
address 172.25.10.80
register 1
}
。
答案 1 :(得分:0)
尝试向目录添加可执行权限。某些程序和语言需要+ x权限才能实际打开目录。
如果这不起作用,请暂时将所有内容设置为0777权限,以查看问题是否与权限相关。
即使您使该部分正常工作,您也会遇到配置问题。您的主机和服务配置中没有使用指令,指示具有大多数默认值的模板。 寄存器指令隐含为1,除非您为模板专门设置为0。如果您需要参考,请参阅对象定义文档:https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/objectdefinitions.html