nagiosql3.2.0配置不能实时同步到nagios4.0+的解决方法

来源:互联网 发布:绿化工程造价软件 编辑:程序博客网 时间:2024/06/06 07:22
1、重启问题:
在nagiosql中向nagios发重启消息,在nagiosql中提示重启命令发送成功,但是nagios的evenlog里没有重启的log。

在nagios的论坛中找到答案,因为nagiosql的重启消息格式还是3.x的,而4.x版本的nagios重启命令格式已经改变。

在nagiosql的verify.php中,将345行进行修改。
nagios作者的回答:
I have checked that. Nagios 4.0.0 has a command queue - this ist located by default: 

/usr/local/nagios/var/rw/nagios.cmd 

But the old NagiosQL command does not work with Nagios 4.0.0. So edit verify.php and modify line 345 from: 

$strCommandString = "[".mktime()."] RESTART_PROGRAM;".mktime(); 

to: 

$strCommandString = "[".mktime()."] RESTART_PROGRAM\n";


2、用nagiosql管理nagios的config,在改动配置,成功写入文件之后,重启不生效。

nagios配置中,有两个配置:

object_cache_file=/usr/local/nagios/var/objects.cache
这里的说明是当nagios启动/重启时,会将配置缓存到objects.cache中。
precached_object_file=/usr/local/nagios/var/objects.precache
如果nagios运行时如果有-u参数,那么会每次读取objects.precache的配置,来加速启动。
而objects.precache的更新是调用./nagios -p实现的。如果启动nagios时带上-u,那么nagios每次接到外部重启命令进行重启时,是从precache文件中将配置load到cache里面,必须在重启nagios之前要运行一次./nagios -p来刷新objects.precache。

解决方法:
1、在prechached注释中提到:If you run Nagios with the -p command line option, it will preprocess your object configuration file(s) and write the cached config to this file. 那么,在每次发送重启信号之前,再运行一下 ./nagios -p 就可以将precached文件刷新。

2、在Nagios启动脚本中,将-u参数去掉,那么nagios就不会从objects.precache中读取配置,而从cfg文件中读取。