Nagios+cacti+npc
2012.07.05
系统环境:Centos5.5(64位)+开发工具安装
所需软件:
cacti-0.8.7e.tar.gz
cacti-plugin-0.8.7e-PA-v2.6.zip
rrdtool-1.4.5.tar.gz
nagios-3.2.0.tar.gz
nagios-plugins-1.4.14.tar.gz
nagios-cn-3.2.0.tar.bz2
php-json-ext-1.2.1.tar.bz2
ndoutils-1.4b9.tar.gz
npc-2.0.4.tar.gz
下载地址:http://download.csdn.net/detail/w361031315/4412965
参考:下载后压缩包中的文档(Nagios+cacti+npc经典配置详解)
提示:此版本软件兼容性通过,其他版可能有问题。
安装所需环境:
[root@localhost ~]# yum -y install php* mysql* httpd net-snmp-utils
[root@localhost ~]# chkconfig mysqld on
[root@localhost ~]# chkconfig httpd on
[root@localhost ~]# service httpd start
[root@localhost ~]# service mysqld start
更改mysql密码
[root@localhost ~]# mysqladmin -uroot password "123456"
安装rrdtool
[root@localhost soft]# ls
cacti-0.8.7e.tar.gz nagios-cn-3.2.0.tar.bz2 npc-2.0.4.tar.gz
cacti-plugin-0.8.7e-PA-v2.6.zip nagios-plugins-1.4.14.tar.gz php-json-ext-1.2.1.tar.bz2
nagios-3.2.0.tar.gz ndoutils-1.4b9.tar.gz rrdtool-1.4.5.tar.gz
[root@localhost rrdtool-1.4.5]# ./configure --prefix=/usr/local ; make ; make install
(如果报错:configure: error: Please fix the library issues listed above and try again.
[root@localhost rrdtool-1.4.5]# yum -y install pango*后在安装)
Cacti安装
[root@localhost soft]# tar zxvf cacti-0.8.7e.tar.gz
[root@localhost soft]# mv cacti-0.8.7e /var/www/html/cacti
[root@localhost soft]# chown -R root.root /var/www/html/cacti/
添加个用来读写监测数据的用户账号:runct,调整子目录rra/,log/的属主权限
[root@localhost soft]# chown -R runct.runct /var/www/html/cacti/rra /var/www/html/cacti/log
导入cacti.sql,建立数据库、表结构
[root@localhost soft]# mysql -uroot -p123456
mysql> create database cacti default character set utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on cacti.* to cactiuser@localhost identified by 'pwd123';
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
[root@localhost soft]# mysql -ucactiuser -ppwd123 cacti < /var/www/html/cacti/cacti.sql
调整配置文件
[root@localhost soft]# vi /var/www/html/cacti/include/config.php
30 $database_password = "pwd123";
cacti-plugins 插件安装
[root@localhost soft]# unzip cacti-plugin-0.8.7e-PA-v2.6.zip
[root@localhost soft]# cd /var/www/html/cacti/
[root@localhost cacti]# patch -p1 -N < /soft/cacti-plugin-arch/cacti-plugin-0.8.7e-PA-v2.6.diff
[root@localhost cacti]# mysql -ucactiuser -ppwd123 cacti < /soft/cacti-plugin-arch/pa.sql
[root@localhost cacti]# vi include/global.php
56 $config['url_path'] = '/cacti/';
建立任务调度
[root@localhost cacti]# su runct
[runct@localhost cacti]$ crontab -e
[runct@localhost cacti]$ crontab -l
*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &> /dev/null
[runct@localhost cacti]$ exit
Cacti 的 web 初始化
在浏览器输入 http://your ip address/cacti/ 登陆 cacti
Next
Next
Finish
帐号密码:admin,admin
第一次要改密码 这里改为pwd123
如果不出图
修改settings-general rrdtool1.2.X 保存
好了,有图了
Nagios安装
准备帐号,目录
[root@localhost cacti]# cd /soft/
[root@localhost soft]# useradd nagios
[root@localhost soft]# mkdir /usr/local/nagios
[root@localhost soft]# chown -R nagios.nagios /usr/local/nagios/
开始安装
[root@localhost soft]# tar zxvf nagios-3.2.0.tar.gz
[root@localhost soft]# cd nagios-3.2.0
[root@localhost nagios-3.2.0]# ./configure --prefix=/usr/local/nagios ;make all;make install;make install-init;make install-commandmode;make install-config;make install-webconf
修改nagios页面
[root@localhost nagios-3.2.0]# cp /etc/httpd/conf.d/nagios.conf /var/www/html/
生成 nagios 页面访问账号
[root@localhost nagios-3.2.0]# touch /usr/local/nagios/etc/htpasswd.users
[root@localhost nagios-3.2.0]# htpasswd -c /usr/local/nagios/etc/htpasswd.users admin
New password:
Re-type new password:
htpasswd: password verification error(2次输的不一样,在执行一次命令)
帐号:admin 密码:123
Nagios 的 CGI 配置文件
[root@localhost nagios-3.2.0]# vi /usr/local/nagios/etc/cgi.cfg(如下图)
[root@localhost nagios-3.2.0]# grep -v ^# /usr/local/nagios/etc/cgi.cfg |grep -v ^$
main_config_file=/usr/local/nagios/etc/nagios.cfg
physical_html_path=/usr/local/nagios/share
url_html_path=/nagios
show_context_help=0
use_pending_states=1
use_authentication=1
use_ssl_authentication=0
authorized_for_system_information=admin
authorized_for_configuration_information=admin
authorized_for_system_commands=admin
authorized_for_all_services=admin
authorized_for_all_hosts=admin
authorized_for_all_service_commands=admin
authorized_for_all_host_commands=admin
default_statusmap_layout=5
default_statuswrl_layout=4
ping_syntax=/bin/ping -n -U -c 5 $HOSTADDRESS$
refresh_rate=90
escape_html_tags=1
action_url_target=_blank
notes_url_target=_blank
lock_author_names=1
测试 nagios 是否成功
[root@localhost nagios-3.2.0]# service nagios start
Starting nagios: done.
[root@localhost nagios-3.2.0]# chkconfig nagios on
[root@localhost nagios-3.2.0]# service httpd restart
汉化(选做)
[root@localhost nagios-3.2.0]# cd /soft/
[root@localhost soft]# tar jxvf nagios-cn-3.2.0.tar.bz2
[root@localhost soft]# cd nagios-cn-3.2.0
[root@localhost nagios-cn-3.2.0]# ./configure;make all;make install
[root@localhost nagios-cn-3.2.0]# service httpd restart
nagios-plugins 插件安装
[root@localhost nagios-cn-3.2.0]# cd /soft/
[root@localhost soft]# tar zxvf nagios-plugins-1.4.14.tar.gz
[root@localhost soft]# cd nagios-plugins-1.4.14
[root@localhost nagios-plugins-1.4.14]# ./configure --prefix=/usr/local/nagios ;make ;make install
插件装好,监控的localhost正常了
PHP 支持 JSON 扩展
[root@localhost nagios-plugins-1.4.14]# cd /soft/
[root@localhost soft]# tar jxvf php-json-ext-1.2.1.tar.bz2
[root@localhost soft]# cd php-json-ext-1.2.1
[root@localhost php-json-ext-1.2.1]# phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20050922
Zend Extension Api No: 220051025
[root@localhost php-json-ext-1.2.1]# ./configure ;make ;make install
[root@localhost php-json-ext-1.2.1]# vi /etc/php.d/json.ini(新建)
extension=json.so
[root@localhost php-json-ext-1.2.1]# vi /var/www/html/test.php
<?php
phpinfo();
phpinfo(INFO_GENERAL);
phpinfo(1);
?>
[root@localhost php-json-ext-1.2.1]# service httpd restart
[root@localhost php-json-ext-1.2.1]# service httpd restart
查看网页,出来json成功
ndoutils 安装
[root@localhost php-json-ext-1.2.1]# cd /soft/
[root@localhost soft]# tar zxvf ndoutils-1.4b9.tar.gz
[root@localhost ndoutils-1.4b9]#./configure --with-mysql-inc=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql --enable-mysql --with-ndo2db-user=nagios --with-ndo2db-group=nagios
[root@localhost ndoutils-1.4b9]# make (不make install)
[root@localhost ndoutils-1.4b9]# cd src/
[root@localhost src]# cp ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/bin
[root@localhost src]# cd ../config
[root@localhost config]# cp ndo2db.cfg-sample ndo2db.cfg
[root@localhost config]# cp ndomod.cfg-sample ndomod.cfg
[root@localhost config]# cp ndo2db.cfg ndomod.cfg /usr/local/nagios/etc/
[root@localhost config]# cd /usr/local/nagios/etc/
[root@localhost etc]# vi ndo2db.cfg
102 db_name=cacti
111 db_prefix=npc_
120 db_user=cactiuser
121 db_pass=pwd123
163 debug_level=1
[root@localhost etc]# vi /usr/local/nagios/etc/nagios.cfg
247 # Uncomment the line below you're running Nagios 3.x
248 broker_module=/usr/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
NPC安装
[root@localhost etc]# cd /soft/
[root@localhost soft]# tar zxvf npc-2.0.4.tar.gz
[root@localhost soft]# mv npc/ /var/www/html/cacti/plugins/
[root@localhost soft]# vi /var/www/html/cacti/include/global.php
46 $plugins[] = 'npc';
NPC 界面设置
登陆cacti
找到UserManagement
进去把勾plugin Management勾上,保存
点 settings下面的plugin management ,在点INSTALL,然后enable
装好了
返回(console)菜单栏,点击 configuration-------settings----NPC,修改一下三个参数(如下图,cmd填写上就行,命令会自动生成)
点击NPC为OFF
启动ndo2db
[root@localhost soft]# ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
[root@localhost soft]# service nagios restart
[root@localhost soft]# cat /var/log/messages
Jul 5 17:30:27 localhost nagios: ndomod: Could not open data sink! I'll keep trying, but some output may get lost...
Jul 5 17:30:27 localhost nagios: Event broker module '/usr/bin/ndomod-3x.o' initialized successfully.
Jul 5 17:30:27 localhost nagios: Finished daemonizing... (New PID=12009)
第一行报错:是因为没给ndo2db文件权限
[root@localhost soft]#chown nagios.nagios /usr/local/nagios/etc/ndo*
[root@localhost soft]# service nagios restart
[root@localhost soft]# cat /var/log/messages
Jul 5 17:37:46 localhost ndo2db-3x: mysql_error: 'Unknown column 'long_output' in 'field list''
这次是,数据库有问题
[root@localhost soft]# mysql -ucactiuser -ppwd123
mysql> use cacti;
alter table npc_eventhandlers add long_output TEXT NOT NULL default '' after output;
alter table npc_hostchecks add long_output TEXT NOT NULL default '' after output;
alter table npc_hoststatus add long_output TEXT NOT NULL default '' after output;
alter table npc_notifications add long_output TEXT NOT NULL default '' after output;
alter table npc_servicechecks add long_output TEXT NOT NULL default '' after output;
alter table npc_servicestatus add long_output TEXT NOT NULL default '' after output;
alter table npc_statehistory add long_output TEXT NOT NULL default '' after output;
alter table npc_systemcommands add long_output TEXT NOT NULL default '' after output;
执行这些语句,在重启nagios
[root@localhost soft]# service nagios restart
[root@localhost soft]# cat /var/log/messages
Jul 5 17:40:52 localhost nagios: ndomod: Successfully connected to data sink. 0 queued items to flush.
Jul 5 17:40:52 localhost nagios: Event broker module '/usr/bin/ndomod-3x.o' initialized successfully.
Jul 5 17:40:52 localhost nagios: Finished daemonizing... (New PID=12381)
Ndo2db启动成功,现在就可以看到NPC的数据了。