nmkl 发表于 2015-9-7 12:54:57

cacti + nagios + npc 整合部署

  centos5.5 + cacti + nagios + npc
  搞了2天总算整合成功了,这就写博客上面,好多的问题之前头疼得很,弄好后心情格外开心呢,废话不多说了,这次好多都是用的yum做的,源码的以后写,软件版本如下:
cacti-0.8.7e.tar.gz
cacti-plugin-0.8.7e-PA-v2.6.zip
nagios-3.4.1.tar.gz
nagios-plugins-1.4.16.tar.gz
ndoutils-1.4b9.tar.gz
npc-2.0.4.tar.gz
PDO_MYSQL-1.0.2.tgz
php-json-ext-1.2.1.tar.gz
rrdtool-1.4.4.tar.gz
  
一、安装环境LAMP

[*]#yum -y install *gcc*
[*]#yum -y install httpd httpd-manual mysql mysql-devel mysql-server php php-devel php-mysql php-common php-pdo php-gd lm_sensors net-snmp php-snmp net-snmp-utils   
[*]
[*]# chkconfig mysqld on
[*]# chkconfig httpd on
[*]# chkconfig snmpd on
[*]# service mysqld start
[*]# service httpd start
[*]# service snmpd start
[*]
[*]# mysqladmin -u root password 'redhat321'
[*]
[*]# mysql -u root -p
[*]:输入密码
[*]mysql> create database cacti;
[*]Query OK, 1 row affected (0.00 sec)
[*]
[*]mysql> grant all on cacti.* to cactiadmin@localhost identified by 'cacti321';
[*]Query OK, 0 rows affected (0.01 sec)
[*]
[*]mysql> flush privileges;
[*]Query OK, 0 rows affected (0.00 sec)
[*]
[*]mysql> \q
  二、安装cacti
1、安装rrdtool需要的软件包
# yum -y install cairo-devel libxml2-devel pango pango-devel
  2、安装rrdtool

[*]# tar xf rrdtool-1.4.4.tar.gz
[*]# cd rrdtool-1.4.4
[*]# ./configure --prefix=/usr/local/rrdtool && make && make install
[*]# ln -s /usr/local/rrdtool/bin/* /usr/local/bin/
  3、安装cacti-0.8.7.e

[*]# tar xf cacti-0.8.7e.tar.gz -C /var/www/html/
[*]# cd /var/www/html/
[*]# mv cacti-0.8.7e/ cacti
[*]# chown -R root.root /var/www/html/cacti/
  4、导入数据库

[*]# mysql -u root -p cacti < cacti/cacti.sql
[*]Enter password:
  5、修改cacti配置文件,连接数据库

[*]# vim /var/www/html/cacti/include/config.php
[*]$database_username = "cactiadmin";
[*]$database_password = "cacti321";
[*]
[*]# vim /var/www/html/cacti/include/global.php
[*]$database_username = "cactiadmin";
[*]$database_password = "cacti321";
  6、安装插件cacti-plugin

[*]# wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7e-PA-v2.6.zip
[*]# unzip cacti-plugin-0.8.7e-PA-v2.6.zip   
[*]# cd cacti-plugin-arch/
[*]# cp cacti-plugin-arch/{cacti-plugin-0.8.7e-PA-v2.6.diff,pa.sql} /var/www/html/cacti/
[*]# cd /var/www/html/cacti/
  7、打补丁导入数据库

[*]# patch -p1 -N <cacti-plugin-0.8.7e-PA-v2.6.diff   
[*]# mysql -uroot -p cacti<pa.sql
  8、修改配置文件,如下:

[*]# vim include/global.php
[*]$config['url_path'] = '/cacti/';
  9、添加计划任务

[*]# crontab -e
[*]*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php
[*]# service crond restart
  10、浏览器输入http://192.168.163.143/cacti/install初始化cacti,最后如下:

  另外cacti无法显示图片,图片显红叉,但是点进去有图:
解决方法:
settings里面的RRDTOOLS版本设置不对,默认为1.0.x,改为1.2.x就行了。
  三、被监控端配置

1、安装snmp服务
# rpm -ivh lm_sensors-2.10.7-4.el5.i386.rpm net-snmp-5.3.2.2-7.el5.i386.rpm

2、修改配置文件如下:(这里我省略掉了#行和空行)

[*]# vim /etc/snmp/snmpd.conf
[*]com2sec notConfigUser default public   
[*]group notConfigGroup v1 notConfigUser
[*]group notConfigGroup v2c notConfigUser   
[*]view systemview included .1.3.6.1.2.1.1   
[*]view systemview included .1.3.6.1.2.1.25.1.1
[*]access notConfigGroup "" any noauth exact mib2 none none   
[*]view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc   
[*]syslocation Unknown (edit /etc/snmp/snmpd.conf)
[*]syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
[*]pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat
  
3、重启服务
# service snmpd restart

到此就差不多了,我们可以做些检测在服务器上,有信息返回说名正常:
# snmpwalk -v 2c -c public ServerIP if
  四、安装nagios
  1、建立用户

[*]# useradd -s /sbin/nologins nagios
[*]# mkdir -p /usr/local/nagios
[*]# chown -Rnagios.nagios /usr/local/nagios/
  2、编译安装nagios

[*]# tar xf nagios-3.4.1.tar.gz   
[*]# cd nagios
[*]# ./configure --prefix=/usr/local/nagios/
[*]# make all   
[*]# make install   
[*]# make install-init   
[*]# make install-commandmode   
[*]# make install-config   
[*]# make install-webconf
[*]
[*]# chkconfig --add nagios
[*]# chkconfig nagios on
[*]# service nagios start
  3、安装插件

[*]# tar xf nagios-plugins-1.4.16.tar.gz   
[*]# cd nagios-plugins-1.4.16
[*]# ./configure --prefix=/usr/local/nagios/ && make && make install
  
4、修改apache的配置文件

[*]# vim /etc/httpd/conf/httpd.conf
[*]
[*]最后添加如下内容,设置成需要输入密码才能登陆
[*]ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
[*]<Directory "/usr/local/nagios/sbin">
[*]      AuthType Basic
[*]      Options ExecCGI
[*]      AllowOverride   None
[*]      Order allow,deny
[*]      Allow from all
[*]      AuthName "Nagions Access"
[*]      AuthUserFile /usr/local/nagios/etc/htpasswd
[*]      Require valid-user
[*]</Directory>
[*]
[*]Alias /nagios   "/usr/local/nagios/share"
[*]<Directory "/usr/local/nagios/share">
[*]      AuthType Basic
[*]      Options None
[*]      AllowOverride None
[*]      Order allow,deny
[*]      Allow from all
[*]      AuthName "Nagios Access"
[*]      AuthUserFile /usr/local/nagios/etc/htpasswd
[*]      Require valid-user
[*]</Directory>
  5、配置nagios添加主机,服务信息
在/usr/local/nagios/etc/objects/下建立2个文件:

[*](1)hosts.cfg定义主机的文件
[*]define host{
[*] use linux-server
[*] host_name 192.168.163.143
[*] alias 192.168.163.143
[*] address 192.168.163.143
[*]}
[*]
[*](2)services.cfg 定义主机服务的文件
[*]define service{
[*] use local-service//引用local-service的属性信息,在template.cfg中定义
[*] host_name 192.168.163.143 //监控那个主机,host-142在hosts.cfg中定义
[*] service_description ssh //对监控内容的描述
[*] check_command check_ssh //指定监控的命令,check_ping在commands.cfg中定义
[*]}
[*]define service{
[*] use local-service
[*] host_name 192.168.163.143
[*] service_description Ping
[*] check_command check_ping
[*]}
[*]
[*]# chown nagios.nagios /usr/local/nagios/etc/objects/{hosts.cfg,services.cfg}
  6、建立登陆的用户名密码
# htpasswd -c /usr/local/nagios/etc/htpasswd nagiosadmin
  7、修改nagios.cfg文件,添加文件路径信息:

[*]cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
[*]cfg_file=/usr/local/nagios/etc/objects/services.cfg
[*]cfg_file=/usr/local/nagios/etc/objects/commands.cfg
[*]cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
[*]cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
[*]cfg_file=/usr/local/nagios/etc/objects/templates.cfg
  8、启动nagios以后访问输入用户名密码就可以看到Nagios了

  如果启动有问题,可以使用下面的命令检查:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  四、整合cacti+nagios
整合cacti和nagios是利用了cacti的一个插件nagios for 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信息即可,如下:

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

[*]# tar xf ndoutils-1.4b9.tar.gz   
[*]# cd 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
[*]# make(不用make install)
  4、复制文件

[*]# cp src/{ndomod-3x.o,ndo2db-3x,log2ndo,file2sock} /usr/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 /var/www/html/nagios/etc/ndo*
  5、修复配置文件信息,连接数据库

[*]# vim /usr/local/nagios/etc/ndo2db.cfg   
[*]socket_type=tcp
[*]db_host=127.0.0.1
[*]db_port=3306
[*]db_name=cacti
[*]db_prefix=npc_
[*]db_user=cactiadmin
[*]db_pass=cacti321
[*]debug_level=1
[*]
[*]# vim /usr/local/nagios/etc/ndomod.cfg   
[*]output_type=tcpsocket
[*]output=127.0.0.1
  6、添加启动脚本,并修改Ndo2dbBin

[*]# cp /download/ndoutils-1.4b9/daemon-init /etc/init.d/ndo2db
[*]# vim /etc/init.d/ndo2db
[*]Ndo2dbBin=/usr/bin/ndo2db-3x
[*]
[*]# chmod +x /etc/init.d/ndo2db
[*]# service ndo2db start
  7、安装npc

[*]# tar xf npc-2.0.4.tar.gz   
[*]# mv npc /var/www/html/cacti/plugins/
[*]
[*]修改配置文件,添加如下信息
[*]# vim /var/www/html/cacti/include/global.php
[*]$plugins = array();
[*]$plugins[]='npc';
  8、修改nagios添加信息:

[*]# vim /usr/local/nagios/etc/nagios.cfg
[*]broker_module=/usr/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
[*]event_broker_options=-1
  # service nagios restar
  启动之后在cacti中添加npc,如下:





  
当访问到npc这个页面的时候已经擦不多了
  9、但是看npc里发现空白的,没有数据,是因为php没有PDO_MYSQL支持,所以安装PDO_MYSQL

[*]# wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
[*]# 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
[*]
[*]修改php.ini,添加如下信息,之后重启httpd即可
[*]extension = "pdo_mysql.so"
  10、之后再访问还不行,还要修改数据库结构:

[*]# mysql -u root -p
[*]mysql> alter table npc_eventhandlers add long_output TEXT NOT NULL default '' after output;
[*]mysql> alter table npc_hostchecks add long_output TEXT NOT NULL default '' after output;   
[*]mysql> alter table npc_hoststatus add long_output TEXT NOT NULL default '' after output;
[*]mysql> alter table npc_notifications add long_output TEXT NOT NULL default '' after output;
[*]mysql> alter table npc_servicechecks add long_output TEXT NOT NULL default '' after output;
[*]mysql> alter table npc_servicestatus add long_output TEXT NOT NULL default '' after output;
[*]mysql> alter table npc_statehistory add long_output TEXT NOT NULL default '' after output;
[*]mysql> alter table npc_systemcommands add long_output TEXT NOT NULL default '' after output;
  之后再访问就可看到有数据了:


  到此,cacti+nagios的整合就完事,搭建这个确实有好多问题,百度、谷歌才解决,希望能对有的人有帮助,如果有问题请及时指出,谢谢~
  
  本文出自 “改变从现在开始” 博客,请务必保留此出处http://peaceweb.blog.iyunv.com/3226037/1065783
页: [1]
查看完整版本: cacti + nagios + npc 整合部署