参考文章

 http://evolution.blog.51cto.com/3343305/661607

http://itchen.blog.51cto.com/343363/291063

 下载nconf 我的是nconf-1.3.0-0.tgz

  tar -zxf nconf-1.3.0-0.tgz

  mv nconf /usr/local/apache/htdocs/  //直接放在apache目录下,就不用在设置nconf的配置文件了。

  cd /usr/local/apache/htdocs/nconf  进入nconf目录给几个文件赋予权限

  chown -R nagios:nagios  config/ output/ static_cfg/ temp/ 

  关闭selinux 

  我使用永久行关闭:vi /etc/sysconfig/selinux

   SELINUX=disabled

 为nconf建立数据库

  mysql> create database nconf;

  Query OK, 1 row affected (0.03 sec)


    mysql> grant all privileges on nconf.* to nconf@localhost identified      by '111111';

   Query OK, 0 rows affected (0.06 sec)


  mysql> flush privileges;

  Query OK, 0 rows affected (0.01 sec)


   mysql> quit

 

  登录localhost/nconf 以web方式安装nconf

  如下

  

刚才建立的数据库的信息:数据库名nconf和密码和用户名nconf

 

成功连接数据库

 

nconf目录和nagios_bin的目录:我的是

nconf=/usr/local/apache/htdocs/nconf

nagios_bin=/usr/local/apache/htdocs/nconf/bin/nagios

注意此处/usr/local/apache/htdocs/nconf/bin/nagios文件并不存在,再以后会给解决

此处设置nconf将以web方式登录:

用户名admin

密码:自己设置

  

 点击finish后出现一下内容:

  此时需要做一下内容:

   进入nconf目录后

  1. rm -rf INSTALL INSTALL.php  UPDATE UPDATE.php  
  2. #删除安装所需的初始化文件 
  3. ln -s /usr/local/nagios/bin/nagios bin/nagios  
  4. #给nagios命令创建符号链接 ,与上面nagios_bin对应
  5. chmod +x /usr/loca/apache/htdocs/nconf/bin/generate_config.pl  
  6. #给与nagios关联的配置文件赋予执行权限 
  7. chown -R nagios:nagios  bin 
  8. #修改文件的属组和属主  此处应该是httpd.conf中的用户和组

  重新登录nconf如下

  

 开始配置nconf和nagios,使得nagios可以使用nconf编写的配置文件。 

  1:赋予一下两个文件权限

   

  1. chmod +x /usr/local/apache/htdocs/nconf/bin/generate_config.pl  
  2. #用来将web页面的配置设置转化成文nagios配置文件的脚本,其需要apache用户有可执行权限 
  3. chmod +x  /usr/local/nagios/bin/nagios 
  4. #给other执行权限,用来检测nagios配置文件是否有语法错误 

  2:deploy_local.sh文件的作用是:执行该文件后,将把在nconf编辑的数据写入

以下两个目录Default_collector与global的文件中 。这样我们以前编写的配置

文件不再使用。

 

  1. chmod +x /usr/local/apache/htdocs/nconf/ADD-ONS/deploy_local.sh         
  2. #使得该文件可以执行,
  3. /usr/local/apache/htdocs/nconf/ADD-ONS/deploy_local.sh 
  4. #手动执行此脚本,将在/usr/local/nagios/etc下生成两目录Default_collector与global

 

  3:从2中得知我们自己编写的配置文件将不再使用,这就需要配置nagios.cfg文件

 

  1. vim /usr/local/nagios/etc/nagios.cf 
  2. #将其中cfg_file=*******字段全部注释 
  3. cfg_dir=/usr/local/nagios/etc/Default_collector 
  4. cfg_dir=/usr/local/nagios/etc/global 
  5. #添加将其配置文件指向 

 

    之后重启nagios

   我重启nagios后出错

    Warning: Duplicate definition found for command 'check_local_disk'   (config file '/usr/local/nagios/etc/global/checkcommands.cfg', starting on line 1)

   Error: Could not add object property in file      '/usr/local/nagios/etc/global/checkcommands.cfg' on line 2.

   Error processing object config files!

  这就是因为我还在使用以前的cfg文件,导致命令定义出现冲突,所以注释掉以前的文件很重要。

 

 4:设置deploy_local.sh,让其每当修改nconf时都把修改的数据写入

那两个文件夹中的文件中。

       */1 * * * * root /usr/local/apache/htdocs/nconf/ADD-ONS/deploy_local.sh

    我添加了root ,不添加时并没有出现deploy_local.sh每一分钟执行一次。

 

   当你使用nconf后,如果没有在nagios的web中显示,可以手动执行deploy_local.sh文件

 5:使用nconf注意事项

   a:我添加主机监控时,在hosts由一个选项host is collected 要选no

   b: 添加服务时,有些选项要设定值如

总之,如果没设置在点击generate nagios config 时会出现错误,表示这几个值设置不对,只要设置一下就可以了。