监控Cacti+Nagios+NagiosQl+NagVis+Pnp4nagios整合
系统版本:
[root@bjNagios ~]# cat /etc/issue CentOS release 6.5(Final) Kernel \r on an \m
软件准备:(包括了所需软件和插件)
rrdtool-1.4.8.tar.tar cacti-0.8.8b.tar.gz cacti-plugin-0.8.7h-PA-v3.0.tar.gz monitor-v1.3-1.tgz npc-2.0.4.tar.gz nrpe-2.15.tar.gz settings-v0.71-1.tgz thold-v0.5.0.tgz nagios-4.0.4.tar.gz nagios-plugins-2.0.tar.gz nagiosql_320.tar.gz nagvis-1.7.10.tar.gz ndoutils-2.0.0.tar.gz net-snmp-5.7.2.1.tar.gz pnp4nagios-0.6.21.tar.g php-json-ext-1.2.1
我是YUM安装的LAMP环境:
yum install httpd httpd-deve yum install mysql mysql-server mysql-devel yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml
有时候可能会遇到因为LAMP环境的一些扩展没有安装上,所以在yum的时候可以用php* mysql* 这样的方式安装所有的相关软件。
[root@bjNagios ~]# rpm -qa | grep httpd httpd-devel-2.2.15-29.el6.centos.x86_64 httpd-2.2.15-29.el6.centos.x86_64 httpd-manual-2.2.15-29.el6.centos.noarch httpd-tools-2.2.15-29.el6.centos.x86_64 [root@bjNagios ~]# rpm -qa | grep php php-cli-5.3.3-27.el6_5.x86_64 php-xml-5.3.3-27.el6_5.x86_64 php-pgsql-5.3.3-27.el6_5.x86_64 php-pspell-5.3.3-27.el6_5.x86_64 php-recode-5.3.3-27.el6_5.x86_64 php-xmlrpc-5.3.3-27.el6_5.x86_64 php-zts-5.3.3-27.el6_5.x86_64 php-5.3.3-27.el6_5.x86_64 php-devel-5.3.3-27.el6_5.x86_64 php-tidy-5.3.3-27.el6_5.x86_64 php-enchant-5.3.3-27.el6_5.x86_64 php-pecl-apc-devel-3.1.9-2.el6.x86_64 php-ldap-5.3.3-27.el6_5.x86_64 php-soap-5.3.3-27.el6_5.x86_64 php-pecl-apc-3.1.9-2.el6.x86_64 php-pdo-5.3.3-27.el6_5.x86_64 php-mysql-5.3.3-27.el6_5.x86_64 php-snmp-5.3.3-27.el6_5.x86_64 php-odbc-5.3.3-27.el6_5.x86_64 php-bcmath-5.3.3-27.el6_5.x86_64 php-fpm-5.3.3-27.el6_5.x86_64 php-process-5.3.3-27.el6_5.x86_64 php-pear-1.9.4-4.el6.noarch php-common-5.3.3-27.el6_5.x86_64 php-gd-5.3.3-27.el6_5.x86_64 php-mbstring-5.3.3-27.el6_5.x86_64 php-imap-5.3.3-27.el6_5.x86_64 php-intl-5.3.3-27.el6_5.x86_64 php-pecl-memcache-3.0.5-4.el6.x86_64 php-embedded-5.3.3-27.el6_5.x86_64 php-dba-5.3.3-27.el6_5.x86_64 [root@bjNagios ~]# rpm -qa | grep mysql mysql-5.1.73-3.el6_5.x86_64 mysql-devel-5.1.73-3.el6_5.x86_64 mysql-connector-odbc-5.1.5r1144-7.el6.x86_64 mysql-bench-5.1.73-3.el6_5.x86_64 mysql-server-5.1.73-3.el6_5.x86_64 mysql-embedded-devel-5.1.73-3.el6_5.x86_64 php-mysql-5.3.3-27.el6_5.x86_64 mysql-connector-java-5.1.17-6.el6.noarch mysql-libs-5.1.73-3.el6_5.x86_64 mysql-embedded-5.1.73-3.el6_5.x86_64 mysql-test-5.1.73-3.el6_5.x86_64
测试一下:
在/var/www/html/目录下新建一个test.php文件,将一下内容写入:
<? phpinfo(); ?>
启动服务:
[root@bjNagios ~]# service httpd start Starting httpd: [ OK ] [root@bjNagios ~]# service mysqld start Starting mysqld: [ OK ]
打开浏览器输入:http://IP/test.php
如果浏览器界面一片空白,说明是因为没有开启php短格式,只要编辑php.ini文件更改如下:
[root@bjNagios ~]# vim /etc/php.ini short_open_tag = On #找到这个选项,把Off改为On;
然后重启http,在打开就没有问题了。
到此,准备方面可以说是OK了。
接下来开始安装:
关于Cacti、Nagios等介绍这里就不说了,直接步入正题。
Cacti有三大组件:MySQL 数据库、RRDtool 工具、Net-Snmp 程序。MySQL并不负责监控数据的存储,只保存模板和rra 文件与主机对应等信息,而真正的监控数据存储和图像展现都是rrdtool 来做的。而Net-SNMP 负责数据的采集。
安装rrdtool:
Rrdtool安装需要cairo、libxml2、pango库支持,可通过yum安装;
[root@bjNagios ~]# yum -y install cairo-devel libxml2-devel pango-devel [root@bjNagios ~]# tar xzf rrdtool-1.4.8.tar.tar [root@bjNagios ~]# cd rrdtool-1.4.8/ [root@bjNagios rrdtool-1.4.8]# ./configure --prefix=/usr/local/rrdtool [root@bjNagios rrdtool-1.4.8]# make && make install [root@bjNagios rrdtool-1.4.8]# ln -s /usr/local/rrdtool/bin* /usr/local/bin/
安装net-snmp:
这里可以yum安装:
[root@bjNagios ~]# rpm -qa | grep net-snmp net-snmp-utils-5.5-49.el6.x86_64 net-snmp-libs-5.5-49.el6.x86_64 net-snmp-5.5-49.el6.x86_64 net-snmp-devel-5.5-49.el6.x86_64 [root@bjNagios ~]# service snmpd start Starting snmpd: [ OK ]
安装Cacti:
给数据库设定密码:
mysqladmin -u root password ‘1234‘
# 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 ‘cacti‘; Query OK,0 rows affected (0.01 sec) mysql> flush privileges; Query OK,0 rows affected (0.00 sec) mysql> \q
数据库创建完毕;
[root@bjNagios ~]# tar xzf cacti-0.8.8b.tar.gz [root@bjNagios ~]# mv cacti-0.8.8b /var/www/html/cacti [root@bjNagios ~]# chown -R apache:apache /var/www/html/cacti/ [root@bjNagios ~]# cd /var/www/html/cacti/ [root@bjNagios cacti]# mysql -ucacti -pcacti cacti < cacti.sql #将cacti数据导入
修改网站配置文件,使用正确连接数据库参数:
[root@bjNagios cacti]# vim include/config.php /* make sure these values refect your actual database/host/user/password */ $database_type = "mysql"; $database_default = "cacti"; $database_hostname = "localhost"; $database_username = "cacti"; #用户名; $database_password = "cacti"; #用户密码; $database_port = "3306"; $database_ssl = false;
打开浏览器:http://IP/cacti/install
首次登录会让修改密码,至此,Cacti安装完毕。
#TOP1:如果遇到了打不开Cacti初始化安装界面,显示一片空白。 #原因:是因为在安装LAMP环境的时候,少安装了php-mysql这个包,安装上重启服务就好了。 #TOP2:如果打开未看到生成图像,请手动执行下面命令 #/usr/bin/php /var/www/cacti/poller.php &>/dev/null手动生成图像
安装插件cacti-plugin
[root@bjNagios ~]# tar xzf cacti-plugin-0.8.7h-PA-v3.0.tar.gz [root@bjNagios ~]# cd cacti-plugin-arch/ [root@bjNagios cacti-plugin-arch]# cp cacti-plugin-0.8.7h-PA-v3.0.diff pa.sql /var/www/html/cacti/ [root@bjNagios cacti-plugin-arch]# cd /var/www/html/cacti/ #打补丁,导入数据库; [root@bjNagios cacti]# patch -p1 -N <cacti-plugin-0.8.7h-PA-v3.0.diff [root@bjNagios cacti]# mysql -uroot -p cacti<pa.sql Enter password: [root@bjNagios cacti]# #修改配置文件如下: [root@bjNagios cacti]# vim include/global.php $config[‘url_path‘] = ‘/cacti/‘; #默认其实也不用改,因为 $url_path = "/cacti/"; $config[‘url_path‘] = $url_path;
添加计划任务:
[root@bjNagios cacti]# crontab -e */5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null #另外cacti无法显示图片,图片显红叉,但是点进去有图,解决方法: #settings里面的RRDTOOLS版本设置不对,可能默认为1.0.x,改为1.2.x或更高就行了。
安装配置Nagios:
Nagios用户和组 添加一个名为nagios的用户用以专门跑nagios 添加nagcmd用户组,用以通过web页面提交外部控制命令 将nagios用户加入nagcmd组 将apache用户加入nagcmd组 # useradd -s /sbin/nologin nagios # groupadd nagcmd # usermod –G nagcmd nagios # usermod –G nagcmd apache
编译安装Nagios:
[root@bjnagios ~]#tar xf nagios-4.0.4.tar.gz [root@bjnagios ~]# cd nagios-4.0.4/ [root@bjnagios nagios-4.0.4]# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-user=nagios --with-command-group=nagcmd [root@bjnagios nagios-4.0.4]#make all [root@bjnagios nagios-4.0.4]#make install [root@bjnagios nagios-4.0.4]#make install-init [root@bjnagios nagios-4.0.4]#make install-commandmode [root@bjnagios nagios-4.0.4]# make install-config [root@bjnagios nagios-4.0.4]# make install-webconf #这里install-webconf后,就不用在配置httpd.conf了。 [root@bjnagios nagios-4.0.4]# chkconfig --add nagios [root@bjnagios nagios-4.0.4]# chkconfig nagios on [root@bjnagios nagios-4.0.4]# service nagios start
安装插件:
[root@bjnagios ~]# tar -zxvf nagios-plugins-1.4.15.tar.gz [root@bjnagios nagios-plugins-2.0]# ./configure --prefix=/usr/local/nagios/ && make && make install #设置访问密码: [root@bjnagios nagios-plugins-2.0]#htpasswd -c/usr/local/nagios/etc/htpasswd.users nagiosadmin New password: 输入密码 Re-type new password: 再次输入密码 Adding password for user nagiosadmin #检查配置文件执行: [root@bjnagios nagios-plugins-2.0]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
登录Nagios:http://IP/nagios
使用刚刚设定的密码登录,可正常访问。
整合cacti + nagios整合
cacti和nagios是利用了cacti的一个插件nagios for cacti,它的原理是将nagios的数据通过ndo2db导入到mysql数据库(cacti的库中),然后cacti读取数据库信息将nagios的结果展示出来。
安装php-json扩展,因为NPC使用了ExtJS,如过没有json的扩展NPC界面无法出来。
[root@bjNagios ~]# tar xf php-json-ext-1.2.1.tar.gz^C [root@bjNagios ~]# cd php-json-ext-1.2.1/ [root@bjNagios php-json-ext-1.2.1]# phpize #如果没有命令,安装php-devel [root@bjNagios php-json-ext-1.2.1]# cat /etc/php.d/json.ini ; Enable json extension module extension=json.so [root@bjNagios php-json-ext-1.2.1]#
打开test.php界面,验证:
安装ndoutils,需要安装mysql-devel前面已经装过这里就不用再装了
[root@bjNagios ~]# tar xzf ndoutils-2.0.0.tar.gz [root@bjNagios ~]# cd ndoutils-2.0.0 [root@bjNagios ndoutils-2.0.0]# ./configure --enable-nanosleep --enable-mysql --with-ndo2db-user=nagios --with-ndo2db-group=nagios [root@bjNagios ndoutils-2.0.0]# make #不用make install [root@bjNagios ndoutils-2.0.0]# cd src/ [root@bjNagios src]# cp ndomod-* ndo2db-* log2ndo file2sock /usr/bin/ [root@bjNagios src]# cp ../config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg [root@bjNagios src]# cp ../config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg [root@bjNagios src]# chmod 644 /usr/local/nagios/etc/ndo*
配置文件信息,连接数据库:
[root@bjNagios src]# 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=cacti db_pass=cacti debug_level=1 [root@bjNagios src]# vim /usr/local/nagios/etc/ndomod.cfg output_type=tcpsocket output=127.0.0.1
添加启动脚本,并修改Ndo2dbBin
[root@bjNagios ndoutils-2.0.0]# cp daemon-init /etc/init.d/ndo2db #这个daemon在源码包里面; [root@bjNagios ndoutils-2.0.0]# chmod +x /etc/init.d/ndo2db [root@bjNagios ndoutils-2.0.0]# vim /etc/init.d/ndo2db Ndo2dbBin=/usr/bin/ndo2db-3x #注意这里是/usr/bin/ [root@bjNagios ndoutils-2.0.0]# service ndo2db start
安装NPC:
[root@bjNagios ~]# tar xzf npc-2.0.4.tar.gz [root@bjNagios ~]# mv npc /var/www/html/cacti/plugins [root@bjNagios ~]# vim /var/www/html/cacti/include/global.php #修改配置文件,添加如下信息 $plugins = array(); $plugins[]=‘npc‘; [root@bjNagios ~]# vim /usr/local/nagios/etc/nagios.cfg #修改Nagios,添加信息; broker_module=/usr/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg event_broker_options=-1 #此选项默认存在; [root@bjNagios ~]# service nagios restart Running configuration check...Stopping nagios: No lock file found in /usr/local/nagios/var/nagios.lock Starting nagios: done.
然后打开Cacti界面:
未完待续~~~(cacti中npc下的nagios状态off未解决。)
本文出自 “贵在坚持_IT博客” 博客,请务必保留此出处http://fdgui.blog.51cto.com/3484207/1384483
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。