需要的安装包下载地址http://down.51cto.com/data/1877296

整合cacti+nagios
整合cactinagios是利用了cacti的一个插件nagiosfor cacti,它的原理是将nagios的数据通过ndo2db导入到mysql数据库(cacti的库中),然后cacti读取数据库信息将nagios

的结果展示出来。

1、安装php-json扩展,因为NPC使用了ExtJS,如过没有json的扩展NPC界面无法出来。

# tar xf php-json-ext-1.2.1.tar.gz

# cd php-json-ext-1.2.1

# phpize

如果没有命令的话安装下面的软件包

# rpm -ihv/media/CentOS/php-devel-5.1.6-27.el5.i386.rpm

# sh configure && make &&make install

2、新建文件,添加信息如下:

# vim /etc/php.d/json.ini

extension=json.so

安装完成后如果先验证的话,可以写个index.php的页面看下,有json信息即可,如下:

[root@localhost~]# vim/var/www/html/index.php

<?php

phpinfo ();

?>

访问http://localhost/index.php

json

json support

enabled

json version

1.2.1

3、安装ndoutils,需要安装mysql-devel前面已经装过这里就不用再装了

# tar xvf ndoutils-1.5.2.tar.gz

# cd ndoutils-1.5.2

./configure --prefix=/usr/local/nagios--with-ssl --with-ssl-lib --enable-mysql --enable-ssl

Make

不用make  install

4、复制文件(如果nagioscacti不在一台机子上,复制到nagios的主机上对应的目录下)

# cp src/{ndomod-3x.o,ndo2db-3x,log2ndo,file2sock}/usr/local/nagios/bin/

# cp config/ndo2db.cfg-sample/usr/local/nagios/etc/ndo2db.cfg

# cp config/ndomod.cfg-sample/usr/local/nagios/etc/ndomod.cfg

# chmod 644 /usr/local/nagios/etc/ndo*

Chown nagios:nagios  ndo*

5、修复配置文件信息,连接数据库

# vim /usr/local/nagios/etc/ndo2db.cfg

 lock_file=/usr/local/nagios/var/ndo2db.lock

ndo2db_user=nagios

 ndo2db_group=nagios

db_host=192.168.11.185(nagios在本机的话不要改)

socket_type=tcp //将此行#号去掉,#socket_type=unix前面加上#

socket_name=/usr/local/nagios/var/ndo.sock

 db_name=cacti //创建的数据库的名字

db_prefix=npc_

 db_user=cacti //cacti数据库登陆用户名

db_pass=123 //cacti数据库登陆密码

debug_file=/usr/local/nagios/var/ndo2db.debug

# vim /usr/local/nagios/etc/ndomod.cfg

 output_type=tcpsocket //将此行#号去掉,#output_type=unixsocket前面加上#

output=127.0.0.1nagios在本机的话不要更改) //将此行#去掉,#output=/usr/local/nagios//var/ndo.sock前面加上#

buffer_file=/usr/local/nagios/var/ndomod.tmp

6、启动ndo2db

# /usr/local/nagios/bin/ndo2db-3x-c/usr/local/nagios/etc/ndo2db.cfg

# ps –elf |grep ndo2db

7、安装npc

#wget http://www.constructaegis.com/downloads/npc-2.0.4.tar.gz

# tar xvf npc-2.0.4.tar.gz -C/var/www/html/cacti/plugins

8、修改nagios添加信息:

# vim /usr/local/nagios/etc/nagios.cfg //在最后添加如下行

broker_module=/usr/local/nagios/bin/ndomod-3x.oconfig_file=/usr/local/nagios/etc/ndomod.cfg

 process_performance_data=1 //找到此行去的前面的#

9、启动nagios

# service nagios restart

 

10、如果打开cactinpc插件,请修改如下行

# vim/var/www/html/cacti/include/config.php

$plugins[]='npc';

Cacti里面添加npc

cacti和nagios整合_cacti

cacti和nagios整合_整合_02

cacti和nagios整合_cacti_03

cacti和nagios整合_nagios_04

cacti和nagios整合_整合_05

cacti和nagios整合_nagios_06

但是看npc里发现空白的,没有数据,是因为php没有PDO_MYSQL支持,所以安装PDO_MYSQL

查看index.php网页,看是否安装过pdo-mysql,如果没安装,执行下面操作安装

tar zxvf PDO_MYSQL-1.0.2.tgz

# cd PDO_MYSQL-1.0.2

# /usr/local/php/bin/phpize

#./configure --with-php-config=/usr/bin/php-config

#make

#make install

Installing shared extensions:     /usr/lib64/php/modules/

Phpize 属于php-devel 如果没有安装的话yuminstall php-devel –y

修改数据库结构:

# mysql -u root –p

mysql> usr cacti; //复制粘贴如下内容即可

alter table npc_eventhandlers add long_outputTEXT NOT NULL default'' ;

alter table npc_hostchecks add long_outputTEXT NOT NULL default '';

alter table npc_hoststatus add long_outputTEXT NOT NULL default '';

alter table npc_notifications addlong_output TEXT NOT NULL default '';

alter table npc_servicechecks addlong_output TEXT NOT NULL default '';

alter table npc_servicestatus addlong_output TEXT NOT NULL default '';

alter table npc_statehistory addlong_output TEXT NOT NULL default '';

alter table npc_systemcommands addlong_output TEXT NOT NULL default '';

重新启动服务:

# service httpd restart

# service mysqld restart

# service nagios restart

就可以看到数据了

cacti和nagios整合_整合_07

当查看/var/log/message文件时,出现如下错误,也请添加数据库

Nov 14 14:47:30 localhost ndo2db-3x: Error:mysql_query() failed for 'INSERT INTO npc_servicechecks SET instance_id='0', service_object_id='0',check_type='0',