XAMPP+Cacti+Nagios+Ntop实现网络监控
说明:
以下使用的所有软件包下载连接--》http://yunpan.cn/Q9dt695UQFR8W
一、搭建LAMP环境
许多人通过他们自己的经验认识到安装 Apache 服务器是件不容易的事儿。如果您想添加 MySQL、PHP 和 Perl,那就更难了。
XAMPP是一个易于安装且包含 MySQL、PHP 和 Perl 的 Apache 发行版。XAMPP 的确非常容易安装和使用:只需下载,解压缩,启动即可
步骤 1、下载
下载地址:http://www.apachefriends.org/zh_cn/xampp.html
步骤 2、安装
下载后请输入以下命令:
① 进入 Linux shell 并以系统管理员的身份登录:
[root@localhost~]# chmod 755 xampp-linux-1.8.2-installer.run
[root@localhost ~]#./xampp-linux-1.8.2-installer.run
警告1:只允许使用上述命令安装 XAMPP。不要使用任何 Microsoft Windows 工具释放压缩文件,这没有用。
警告 2:使用此命令时,已存在的旧版 XAMPP 会被覆盖。
就这样结束了。XAMPP 被安装在/opt/lampp目录下。
使用下面的命令开始运行 XAMPP:
/opt/lampp/lamppstart
您应该能在屏幕上看到类似下面的提示信息:
StartingXAMPP 1.8.2...
LAMPP: Starting Apache...
LAMPP: Starting MySQL...
LAMPP started.
好了。Apache 和 MySQL 正在运行中
好了,这很简单,但您如何检测所有组件是否正常工作呢?只需在您的浏览器中输入下面的链接即可:
http://localhost或者在另一台主机中输入IP地址访问
现在您应该能看到包含一些检测已安装软件的工作状态的链接和一些示例程序的 XAMPP 开始页面。
这儿有一份 XAMPP 缺乏安全防护的列表:
① MySQL 管理员(root)没有密码。
② MySQL 可通过网络访问。
③ ProFTPD 使用“lampp”作为用户名“daemon”的密码。
④ PhpMyAdmin 可以通过网络访问。
要修正绝大部分的安全薄弱环节,只需执行以下命令:
/opt/lampp/lampp security
它会启用一个小小的安全检查功能,使您安装的 XAMPP 更安全。
示例程序可以通过网络访问。
MySQL 和 Apache 在同一个用户名(daemon)下运行。
高级的启动与停止参数
0.9.4版以前的/opt/lampp/lampp只能简单地启动或停止 XAMPP。自从 0.9.5 版开始,它学会了很多新的东西。
高级的启动与停止参数 | |||
参数 | 描述 | ||
start | 启动 XAMPP。 | ||
stop | 停止 XAMPP。 | ||
restart | 重新启动 XAMPP。 | ||
startapache | 只启动 Apache。 | ||
startssl | 启动 Apache 的 SSL 支持。该命令将持续激活 SSL 支持,例如:执行该命令后,如果您关闭并重新启动 XAMPP,SSL 仍将处于激活状态。 | ||
startmysql | 只启动 MySQL 数据库。 | ||
startftp | 启动 ProFTPD 服务器。通过 FTP,您可以上传文件到您的网络服务器中(用户名“nobody”,密码“lampp”)。该命令将持续激活 ProFTPD,例如:执行该命令后,如果您关闭并重新启动 XAMPP,FTP 仍将处于激活状态。 | ||
stopapache | 停止 Apache。 | ||
stopssl | 停止 Apache 的 SSL 支持。该命令将持续停止 SSL 支持,例如:执行该命令后,如果您关闭并重新启动 XAMPP,SSL 仍将处于停止状态。 | ||
stopmysql | 停止 MySQL 数据库。 | ||
stopftp | 停止 ProFTPD 服务器。该命令将持续停止 ProFTPD,例如:执行该命令后,如果您关闭并重新启动 XAMPP,FTP 仍将处于停止状态。 | ||
security | 启动一个小型安全检查程序。 |
例如:想启用带 SSL 支持的 Apache,只需输入如下命令(以 root 身份):
/opt/lampp/lamppstartssl
现在您可以通过 SSL 形式的 https://localhost 访问 Apache 服务器了。
重要的文件和目录 | |
文件/目录 | 用途 |
/opt/lampp/bin/ | XAMPP 命令库。例如 /opt/lampp/bin/mysql 可执行 MySQL 监视器。 |
/opt/lampp/htdocs/ | Apache 文档根目录。 |
/opt/lampp/etc/httpd.conf | Apache 配制文件。 |
/opt/lampp/etc/my.cnf | MySQL 配制文件。 |
/opt/lampp/etc/php.ini | PHP 配制文件。 |
/opt/lampp/etc/proftpd.conf | ProFTPD 配制文件。(从0.9.5版开始) |
/opt/lampp/phpmyadmin/config.inc.php | phpMyAdmin 配制文件。 |
想停止 XAMPP,只需输入如下命令:
/opt/lampp/lamppstop
您现在应该能看到:
StoppingLAMPP 1.8.2...
LAMPP: Stopping Apache...
LAMPP: Stopping MySQL...
LAMPP stopped.
然后 XAMPP 的 Linux 版就停止运行了。
想卸载 XAMPP,只需输入如下命令:
rm-rf /opt/lampp
卸载完成。
步骤5:激活php扩展库
① 编辑php.ini文件
[root@localhost~]# vim /opt/lampp/etc/php.ini
[root@localhost~]# cd /opt/lampp/
[root@localhost~]# ./xampp oci8
[root@localhost~]# ./xampp restart
② 检查php的两个扩展库是否激活
③ 修改环境变量,系统头文件和更新系统库
为了使下面安装的顺利和方便,将xampp安装后的bin目录和lib目录添加到系统环境变量中。
[root@localhost~]# vim /etc/profile
[root@localhost~]# . /etc/profile //同步系统变量
[root@localhost~]# vim /etc/ld.so.conf.d/xampp.conf
在该文件中添加xampp安装后形成的lib目录路径
[root@localhost~]# ldconfig //更新系统库文件
[root@localhost~]# ln -s /opt/lampp/include/* /usr/include/
//将xampp中的图文件链接到系统头文件目录中
二、在被监管的设备上安装snmp服务
通过SNMP协议来获取网络信息,经过SNMP抓取数据并存储。
1、使用本地yum安装
[root@localhost~]# yum install net-snmp net-snmp-libs net-snmp-utils net-snmp-devel
2、启动snmpd服务
[root@localhost~]#service snmpd start
[root@localhost~]#chkconfigsnmpd on
#使其开机自动启动
[root@localhost~]#service snmptrapdstart
#启动snmptrapd服务
[root@localhost~]#chkconfigsnmptrapd on
#使其开机自动启动
[root@localhost~]# netstat –upln |grep snmp
说明:
服务器使用udp 161端口,采用轮询的方式向被监控的设备进行监测。
缺点:当一个轮询周期结束后,被监控设备出现故障时,只能在下一次轮询周期被发现。被监控的设备在161端口监听.
客户端使用udp 162端口,进行故障报告。如果被监控的主机出现故障时,主动向服务器报告。监控的设备在162端口监听。
3、配置SNMP
① 修改snmp服务的团体名即密码
在net-snmp的主配置文件/etc/snmp/snmpd.conf中,默认的community为public,建议将public修改为为别密码,实验环境可以默认密码public
② 重启SNMP服务
[root@localhost~]# service snmpd restart
#如果修改过snmpd.conf 则需要重启服务
三、配置mysql数据库
1、创建cacti的数据库。
方法一:通过phpMyAdmin创建cacti数据库同时指定cacti用户和密码(123456)并授权,这种方法相对简单,这里不再说明。
方法二:通过命令行的方式添加
① 如果前面你没有修改mysql的默认密码,那么mysql的登录密码就是空。
[root@localhost~]# cd /opt/lampp/bin/
[root@localhostbin]# ./mysql -u root –p
② 为了安全,最好重新设置一下mysql的root密码。
[root@localhostbin]# ./mysqladmin -u root -p password'123456'
③ 如果修改的密码,要修改phpmyadmin的配置文件,这样才能够同phpmyadmin来管理mysql。phpmyadmin的配置文件在/opt/lampp/phpmyadmin/config.inc.php
[root@localhostlampp]# vim phpmyadmin/config.inc.php
④ 创建cacti数据库
登录到mysql数据库中
[root@localhostbin]# ./mysql -u root -p
mysql>create database cacti;
//创建cacti数据库
mysql>grant all privileges on cacti.* tocacti@localhost identified by '123456';
//授权给cacti用户,允许从localhost主机访问cacti数据库中的所有表格。
mysql>grant all privileges on cacti.* tocacti@127.0.0.1 identified by '123456';
//授权给cacti用户,允许从127.0.0.1上访问cacti数据库中的所有表格。
mysql>grant all privileges on cacti.* tocacti@'%' identified by '123456';
//授权给cacti用户,允许从任何主机访问cacti数据库中的所有表格。
mysql>flush privileges;
//刷新权限
四、安装RRDtool
1、安装rrdtool基本环境
[root@localhost~]# yum -y install cairo-devel libxml2-devel pango-devel pango libpng-develfreetype freetype-devel
libart_lgpl-devel
2、安装rrdtool
[root@localhost~]# tar -zxvf rrdtool-1.4.5.tar.gz -C/usr/local/src/
[root@localhost~]# cd /usr/local/src/rrdtool-1.4.5/
[root@localhostrrdtool-1.4.5]# ./configure --prefix=/usr/local/rrdtool
[root@localhostrrdtool-1.4.5]# make
[root@localhostrrdtool-1.4.5]# make install
[root@localhost~]# cd /usr/local/rrdtool/share/rrdtool/examples/
[root@localhostexamples]# ./stripes.pl
[root@localhostexamples]# cp stripes.png /opt/lampp/htdocs/
(这一步骤的前提是你本机是个 WWW服务器器,前面安装的xampp的站点目录是/opt/lampp/htdocs/,你也可以使用其它的方法来实现)
在浏览器中输入http://IP/stripes.png ,能看到rrd的示例图说明安装成功;
五、安装Cacti
安装cacti需要大量的库文件,要检测系统是否安装了以下库文件。
zlib libpng freetype jpeg
fontconfig gd libxml
1、源码包安装cacti
[root@localhost~]# tar -zxvf cacti-0.8.8a.tar.gz -C /usr/local/src/
[root@localhost~]# mv /usr/local/src/cacti-0.8.8a /opt/lampp/htdocs/cacti
[root@localhost~]# cd /opt/lampp/htdocs/cacti
[root@localhostcacti]# vim include/config.php
$database_type= "mysql";
$database_default= "cacti";
$database_hostname= "localhost";
$database_username= "cacti";
$database_password= "123456";
$database_port= "3306";
$database_ssl= false;
2、添加一个cacti用户,并将cacti的安装目录所属用户改为cacti用户
[root@localhost~]# useradd cacti
[root@localhost~]# passwd cacti //将cacti用户的密码设为123456
[root@localhost~]# chown -R cacti:cacti /opt/lampp/htdocs/cacti
[root@localhost~]# chmod 755 /opt/lampp/htdocs/cacti
3、导入cacti的sql文件
[root@localhost~]# cd /opt/lampp/bin/
[root@localhostbin]# ./mysql -u root -p cacti</opt/lampp/htdocs/cacti/cacti.sql
[root@localhostbin]# /opt/lampp/xampp restart
4、通过web来初始化cacti
说明:出现以上问题,是由于安装rrdtool和php的路径不是标准路径,所以会报错。
[root@localhost~]# cd /usr/local/bin/
[root@localhostbin]# ln -s /usr/local/rrdtool/bin/rrdtool rrdtool
[root@localhostbin]# cd /usr/bin/
[root@localhostbin]# ln -s /opt/lampp/bin/php php
按F5刷新浏览器即可,后双击 Finish完成安装
初始用户名和密码都是 admin,第一次登录要更改密码
修改够管理员密码之后,直接进入cacti的管理页面了。
六、Cacti插件安装之NTOP
1、查看系统中是否存在安装ntop支持的软件
[root@localhost~]# rpm -q libcap libpcap-devel libpng gdbm gdbm-devel gd libtool
2、安装GeoIP
所谓GeoIP,就是通过来访者的IP,定位他的经纬度,国家/地区,省市,甚至街道等位置信息,关键在于有个精准的数据库。
① 源码安装GeoIP
[root@localhost~]# tar -zxvf GeoIP.tar.gz -C /usr/local/src/
[root@localhost~]# cd /usr/local/src/GeoIP-1.4.8/
[root@localhostGeoIP-1.4.8]# ./configure
[root@localhostGeoIP-1.4.8]# make
[root@localhostGeoIP-1.4.8]# make install
3、源码安装ntop
[root@localhost~]# tar -zxvf ntop-4.1.0.tar.gz -C /usr/local/src/
[root@localhost~]# cd /usr/local/src/ntop-4.1.0/
[root@localhostntop-4.1.0]# ./autogen.sh –-prefix=/usr/local
[root@localhostntop-4.1.0]# make
[root@localhostntop-4.1.0]# make install
说明:在make install时,需要下载etter.finger.os,如果不连接互联网,则会如下错误:
make[2]:*** [dnetter] Error 1
make[2]:Leaving directory `/usr/local/src/ntop-4.1.0'
make[1]:*** [install-am] Error 2
make[1]:Leaving directory `/usr/local/src/ntop-4.1.0'
make:*** [install-recursive] Error 1
此时解决方法有两种:
方法一:模拟互联网
① 如果你有etter.finger.os文件的话,将给文件拷贝到你的web站点下(需
要搭建web环境,在上面已经安装过,如果按上面的配置,则要将该文件拷贝到/opt/lampp/htdocs/ettercap/ettercap_ng/share/中)
[root@localhost~]# cd /opt/lampp/htdocs/
[root@localhosthtdocs]# mkdir ettercap
[root@localhosthtdocs]# cd ettercap/
[root@localhostettercap]# mkdir ettercap_ng
[root@localhostettercap]# cd ettercap_ng/
[root@localhostettercap_ng]# mkdir share
② 拷贝etter.finger.os到web服务器对应的站点目录中
[root@localhost~]# cp etter.finger.os /opt/lampp/htdocs/ettercap/ ettercap_ng/ share/
③ 编辑hosts文件,将安装要访问的网站的域名对应到本地web服务器。
[root@localhost~]# vim /etc/hosts
④ 重启www服务
[root@localhost~]# /opt/lampp/xampp restart
方法二:连接互联网
将电脑连接到互联网中,让程序自动寻找,这种方法最方便。
4、配置ntop
① 添加ntop用户
[root@localhost~]# useradd ntop
[root@localhost~]# passwd ntop
[root@localhost~]# chown -R ntop:ntop /usr/local/var/ntop
② 编辑配置文件
ntop默认没有配置文件,需要从源码包中拷贝一份过来。
[root@localhost~]# cd /usr/local/src/ntop-4.1.0/
[root@localhostntop-4.1.0]# cppackages/RedHat/ntop.conf.sample /etc/ntop.conf
[root@localhostntop-4.1.0]# vim /etc/ntop.conf
注意以下字段:
--userntop //运行ntop的用户
--db-file-path /usr/local/ntop/share/ntop //数据存放目录
--interface-eth0 //监控的网卡
--http-server 3000 //运行的端口
③ 给管理员设置密码
[root@localhost~]# ntop –A
//给ntop管理员添加密码
[root@localhost~]# ntop –A --set-admin-password=“新密码”
//修改ntop管理员的密码
5、启动ntop
[root@localhost~]# cd /usr/local/var/ntop/
[root@localhostntop]# chmod 766 prefsCache.db
[root@localhost~]# ntop -d -p /usr/local/var/ntop/
[root@localhost~]# netstat -tupln |grep 3000
6、Cacti与ntop结合
① 安装cacti与ntop结合的插件
[root@localhost~]# tar -zxvf ntop-v0.2-1.tgz -C /opt/lampp/htdocs/cacti/plugins
② 配置插件文件
[root@localhost~]# vim /opt/lampp/htdocs/cacti/include/config.php
添加一个变量:
$plugins[]='ntop';
③ 在cactiweb界面中添加插件ntop
控制面板—》插件管理(Plugin Management)--》ntop安装和启用
控制面板—》用户管理(User Management)--》admin—选上Ntop—》保存
控制面板—》设置(Settings)--》Misc—添加ntop的链接地址—》保存
点击ntop图标,即可访问ntop了。
七、Cacti插件安装之NAGIOS
1、安装nagios
① 首先添加一个nagios用户,否则make install是无法成功。
[root@localhost~]# useradd nagios
② 源码安装nagios
[root@localhost~]# tar -zxvf nagios-3.4.3.tar.gz -C /usr/local/src/
[root@localhost~]# cd /usr/local/src/nagios/
[root@localhostnagios]# ./configure --prefix=/usr/local/nagios --with-httpd-conf=/opt/lampp/apache2/conf
//第二个参数是指明www服务的config.d目录,默认是/etc/httpd/conf.d/,因为本人采用的集成环境安装apache,所以不太一样,希望读者在实验是注意。
[root@localhostnagios]# make all
[root@localhostnagios]# make install install-base install-cgis install-html install-exfoliation install-config install-init install-commandmode fullinstall
③ 配置以web方式访问nagios的认证文件
[root@localhost~]# vim /opt/lampp/etc/nagios.conf
//说明:因为我采用的xampp,是一个集成的软件包,所以软件安装的目录都在/opt/lampp目录中。在安装其他软件时,为了使它和xampp结合,需要做相应的修改。
将/opt/lampp/etc/nagios.conf中的内容添加到/opt/lampp/apache2/conf/httpd.conf文件中
[root@localhost~]# /opt/lampp/apache2/conf/httpd.conf
④ 创建http认证用户登录nagios
用户名nagios,密码123456
[root@localhost~]# /opt/lampp/bin/htpasswd –p -c /usr/local/nagios/etc/htpasswd.users nagios
//注意:使用htpasswd工具在添加认证用户时,如果是第一次添加用户的话,需要使用参数“-c”来创建一个保存用户信息的文件,默认对密码进行md5加密保存,这样你在登录时,就要输入加密后的密码,这样不太方便。如果以明文方式加密,需要添加参数“-p”。
⑤ 启动nagios服务
[root@localhost~]# /opt/lampp/xampp restart
//重启httpd服务
[root@localhost~]# service nagios start
[root@localhost~]# chkconfig nagios on
⑥ 通过web来访问nagios
2、安装Nagios插件
源码安装nagios插件
[root@localhost~]# tar -zxvf nagios-plugins-1.4.16.tar.gz -C/usr/local/src/
[root@localhost~]# cd /usr/local/src/nagios-plugins-1.4.16/
[root@localhostnagios-plugins-1.4.16]# ./configure
[root@localhostnagios-plugins-1.4.16]# make
[root@localhostnagios-plugins-1.4.16]# make install
3、配置nagios管理员接收告警信息的邮箱
[root@localhost~]# vim /usr/local/nagios/etc/objects/contacts.cfg
[root@localhost~]# service nagios restart
//重启nagios服务
4、安装ndoutils
在安装ndoutils之前,需要说明的饿时PHP必须按了PDO和JSON扩展。因为NPC使用了Ext JS,如果没有JSON扩展,NPC的界面不会出来,只能看到一个空白页面。如果没有这两个模块,需要安装。可是使用命令:php -m查看php支持的模块。
① 源码安装ndoutils
[root@localhost~]# tar -zxvf ndoutils-1.5.2.tar.gz -C/usr/local/src/
[root@localhost~]# cd /usr/local/src/ndoutils-1.5.2/
[root@localhostndoutils-1.5.2]# ./configure \
--prefix=/usr/local/nagios \
LDFAGS=-L/usr/lib \
--with-mysql-inc=/usr/include/mysql \
--with-mysql-lib=/opt/lampp/lib/mysql \
--enable-mysql \
--disable-pgsql \
--with-ndo2db-user=nagios \
--with-ndo2db-group=nagios\
--with-mysql=/opt/lampp/mysql/
[root@localhostndoutils-1.5.2]# make
[root@localhostndoutils-1.5.2]# make install
[root@localhostndoutils-1.5.2]# cd src/
[root@localhostsrc]# cp ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/bin/
[root@localhostsrc]# cd ../config
[root@localhostconfig]# cp ndo2db.cfg-sample ndo2db.cfg
[root@localhostconfig]# cp ndomod.cfg-sample ndomod.cfg
[root@localhostconfig]# cp ndo2db.cfg ndomod.cfg /usr/local/nagios/etc/
[root@localhostconfig]# vim /usr/local/nagios/etc/ndo2db.cfg
修改以下参数
socket_name=/usr/local/nagios/var/ndo.sock
db_name=cacti
db_prefix=npc_
db_user=cacti
db_pass=cacti
debug_level=1
debug_file=/usr/local/nagios/var/ndo2db.debug
然后保存退出。
4、安装NPC
① 源码安装npc
[root@localhost~]# tar -zxvf npc-2.0.4.tar.gz -C/opt/lampp/htdocs/cacti/plugins
② 修改cacti配置文件
[root@localhost~]# vim /opt/lampp/htdocs/cacti/include/config.php
添加如下参数:
$plugins[]='npc';
[root@localhost~]# /opt/lampp/xampp restart //重启httpd服务
③ 为cacti添加npc插件
通过web访问cacti管理页面。
控制面板—》插件管理(PluginManagement)--》npc安装和启用
控制面板—》用户管理(Users Management)--》admin—》选择npc
八、Cacti插件安装之THOLD
1、安装setting插件
[root@localhost~]# tar -zxvf settings-v0.7-1.tgz -C /opt/lampp/htdocs/cacti/plugins/
2、安装thold插件
[root@localhost~]# tar -zxvf thold-v0.4.9-3.tgz -C/opt/lampp/htdocs/cacti/plugins
3、修改cacti的配置文件
[root@localhost~]# vim /opt/lampp/htdocs/cacti/include/config.php
添加如下参数:
$plugins[]='settings';
$plugins[]='thold';
4、设置cacti添加thold
控制面板—》插件管理(Plugin Management)--》settings和thold安装和启用
控制面板—》用户管理(Users Management)--》admin—》选择包含thresholds的
注意:安装完thold插件之后,需要修改/opt/lampp/htdocs/cacti/plugins/thold/includes/settings.php,将第132行注释掉,否则在使用cacti中的settings时会报错。
九、Cacti插件安装之MONITOR
1、源码安装monitor
[root@localhost~]# tar -zxvf monitor-v1.3-1.tgz -C /opt/lampp/htdocs/cacti/plugins/
2、用同样的方法启用monitor插件。
十、错误整理
1、当通过web访问nagios时,出现如下错误:
Thisserver could not verify that you are authorized to access the URL "/nagios".You either supplied the wrong credentials (e.g., bad password), or your browserdoesn't understand how to supply the credentials required
解决方法:
由于使用htpasswd工具在添加用户时,默认采用md5加密,所以在输入用户的口令应该使用加密后的字符串,或者使用命令:htpasswd -p -c 存放认证用户信息的文件用户名
说明:-p参数—》使用明文密码存储
-c 参数—》第一次添加用户时,需要创建一个存放用户信息的文件。
2、在打开cacti页面时,出现如下错误:
Notice:A session had already been started - ignoring session_start() in/data1/html/cacti/include/global.php on line 154
global.php的内容如下:
解决方法:
有两种方法。
Thesolution for above problem is
(1)in php.ini file set session.autostart to 0
session.auto_start= 0
(2)In your code use this line
if(!session_id()) session_start();
insteadof
session_start();
3、在安装thold-v0.4.9-3.tgz插件时,出现如下错误:
在打开cacti左侧菜单settings的时候,会出现以下错误。
Fatalerror: Call to undefined function define_syslog_variables() in /opt/lampp/htdocs/cacti/plugins/thold/includes/settings.phpon line 132
settings.php内容如下:
解决方法:
注释掉第132行。