Cacti的实例应用
1)网络设置 3)cacti常见的监测对象2)主机系统 (1)网络接口流量(进与出的带宽) (2)监控CPU的负载、内存等等 (3)监控磁盘的空间、进程数等等 .........................................等等 (1)服务器资源:CPU、内存、磁盘、进程、连接数等 (2)服务器类型:WEB、Mail、FTP、数据库、中间件 (3)网络接口:流量、转发速度、丢包率 (4)网络设备性能、配置文件(对比与备份)、路由数 (5)安全设备性能、连接数、攻击数 (6)设备运行状态:风扇、电源、温度 (7)机房运行环境:电流、电压、温湿度 |
1)
监控网络服务(SMTP、POP3、HTTP、NNTP、PING等) 2)监控主机资源(处理器负荷、磁盘利用率等) 3)简单地插件设计使得用户可以方便地扩展自己服务的检测方法 4 )并行服务检查机制 5 )具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态 6 )当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式)
可以通过飞信,等方式实现时,既可传递给管理员,可高效的保证服务器的维护。
7 )具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位 8 )自动的日志回滚 9 )可以支持并实现对主机的冗余监控 10 )可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等 |
NTOP提供以下一些功能:
① 自动从网络中识别有用的信息;
② 将截获的数据包转换成易于识别的格式;
③ 对网络环境中的通信失败进行分析;
④ 探测网络环境下的通信瓶颈;
⑤ 记录网络通信时间和过程;
⑥ 自动识别客户端正在使用的操作系统;
⑦ 可以在命令行和Web两种方式下运行。
|
yum install httpd php php-mysql mysql mysql-server php-snmp net-snmp-utils -y
安装完成后让服务都启动并调整之间的连接关系.
service mysqld start # 启动mysql服务
chkconfig mysqld on #使其开机自动启动
启动完mysql后,如果出现以下画面,并能通过mysql进入,说明成功安装。
之后编辑httpd服务的配置文件,使其支持mod_status.so模块.,
只要在/etc/httpd/conf/httpd.conf的配置文件中找到
LoadModule status_module modules/mod_status.so
有这一项表示已经支持状态检测模块,所以无需额外添加,直接启动web服务即可.
service httpd start #启动http服务
chkconfig httpd on #开机自动启动httpd 服务
启动OK后,编辑
vim /var/www/html/index.php 在其中添加以下内容#
<?php
phpinfo(); ?>
# 保存退出
用web浏览器访问,如果出现以下画面,则表示http支持动态php.并能与php成功连接.
接着测试与mysql的连接,先给mysql设置个管理员密码
mysqladmin -uroot password '123456' #密码设置为123456
编辑刚才的web页面
vim /var/www/html/index.php
把里面的内容改为
<?php $link=mysql_connect("localhost","root","123456"); if(!$link) echo "FAILD!"; else echo "OK!"; ?>
刷新刚才的web浏览器页面,如果出现OK!字样,则表示成功连接.
|
其中主要用到的是rrdtool-1.2.27-3.el5.i386.rpm 和rrdtool-devel-1.2.27-3.el5.i386.rpm和rrdtool-php-1.2.27-3.el5.i386.rpm这三个包,其余的包是其他扩展功能和其他脚本语言结合的.笔者就不过多演示了.
安装以上三个包
cd /root/rrdtool/ #笔者rpm包所在的地方,可以做修改
yum -y localinstall --nogpgcheck rrdtool-1.2.27-3.el5.i386.rpm
yum -y localinstall --nogpgcheck rrdtool-devel-1.2.27-3.el5.i386.rpm
yum -y localinstall --nogpgcheck rrdtool-php-1.2.27-3.el5.i386.rpm
|
因为其中有比较复杂的依赖关系,而且rhel5.4的安装包自带有实现该功能的rpm包,笔者使用yum来安装
yum install net-snmp net-snmp-libs net-snmp-utils net-snmp-devel
安装完成后启动snmpd服务
service snmpd start #启动snmpd服务
chkconfig snmpd on #使其开机自动启动
service snmptrapd start #启动snmptrapd服务
chkconfig snmptrapd on #使其开机自动启动
正常启动后用
netstat -unlp 查看端口
如果有以下两项,则表示正常启动
|
登录数据库
mysql -uroot -p
##会提示你输入密码,笔者在前面设置的密码为 123456
mysql> create database cactidb;
mysql> GRANT all privileges ON cactidb.* TO cactier@localhost IDENTIFIED BY '123456';
mysql> GRANT all privileges ON cactidb.* TO [email protected] IDENTIFIED BY '123456';
mysql> GRANT all privileges ON cactidb.* TO [email protected] IDENTIFIED BY '123456';
##说明 笔者指定了一个网段的授权,是将来做监控时数据库和监控工具不在同一台主机上,网段可根据自己需要进行授权。
mysql> flush privileges;
|
(4)配置SNMP
在net-snmp的主配置文件/etc/snmp/snmpd.conf中,默认的community为public,建议将public修改为您需的密码项,笔者在此就不做修改了,使用默认密码public
接着,启动snmp进程
service snmpd restart #如果修改过snmpd.conf 则需要重启服务
|
首先要去cacti官网下载cacti的gz源码包,目前最新的版本是0.8.7.g
从官方网站的说明and a webserver that supports PHP such as Apache or IIS.就知道以上的准备工作是必须要做的.
重要说明:如果用0.8.7g版本的cacti,在后面整合nagios时可能出现bug,笔者推荐用0,8.7e版本的,笔者演示用的是0.8.7g原理一样.
下载完成后就可以解压缩了,笔者放在了/root/目录下
cd /root
tar zxvf cacti-0.8.7g.tar.gz
mv cacti-0.8.7g /var/www/html/cacti
##因为cacti的配置是在web页面下进行的,所以笔者直接把cacti-0.8.7g 移至/var/www/html/cacti
cd /var/www/html/cacti
mysql -uroot -p cactidb < cacti.sql
##将cacti.sql数据库文件导入,会提示输入密码输入前面设置的root 的密码即可
编辑cacti的主配置文件,为其指定对应的数据库参数:
vim /var/www/html/cacti/include/config.php
将下列各参数的值修改为您前面所设定的:
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactier";
$database_password = "123456";
$database_port = "3306";
修改完成后保存退出。
添加cactier用户 并给其设置密码
useradd cactier
passwd cactier
cd /var/www/html/cacti/
chown -R cactier rra/ log/ #指定rra/ log/的属组属主为cactier用户
vim /etc/crontab
##编辑crontab文件 在空白行添加以下内容
*/5 * * * * cactier php /var/www/html/cacti/poller.php > /dev/null &
#每5分钟以cactier去抓取数据绘图,这个时间5分钟应该是最小间隔了,笔者不建议修改为更小值。
记的要把selinux 关闭,不然不能从web页面访问的,关闭方法如下
setenforce 0 #只是临时关闭
好了,下面就可以用web浏览器访问cacti进行配置管理了。
笔者所用虚拟机ip为
192.168.0.39
## IP根据自己实际情况可做相应修改
从浏览器直接访问以下地址 即可看到cacti配置画面
http://192.168.0.39/cacti/install/
如果看到以下画面,则可以进行之后的配置
点击下一步。
如果上面全是
[FOUND],则可以点击Finish 完成,中间的路径可能与图片不同。
Finish后就会出现登陆画面
用户名admin 密码admin 即可登陆 (第一次登陆后会强行让修改密码)
进入后点击graphs 会显示流量图
如果不出现图片执行以下命令让其手动绘图即可.
su - cactier
php /var/www/html/cacti/poller.php > /dev/null 2>&1
exit
数据部分启动较慢,请耐心等待,如显示如上图片数据,则成功安装配置。
##cacti的具体使用笔者不做过多介绍,有意者可去官方网站阅读官方文档。
|
先下载源码包,目前官方的最新版本如下图
插件版本
下载之.笔者放在了 /root/nagios目录下
nagios 需要一些基础支持套件才能运行,如apache,gcc,glibc,gd库等。
useradd -m nagios #添加一个名为nagios的用户来运行nagios groupadd nagios #添加nagios用户组,用以通过web页面提交外部控制命令 usermod -a -G nagios daemon #将运行apache用户daemon加入nagios组
cd /root/nagios #该目录是你下载的nagios源码包所在位置
tar zxvf nagios-3.2.2.tar.gz #解压
cd nagios-3.2.2
注意下面--with-httpd-conf 的路径,取决与你apache的,如果是yum安装的apache,则路径为:
/configure --with-command-group=nagios --with-httpd-conf=/etc/httpd/conf/extra/
##如果没有报错,就进行一下步骤
make all
make install make install-init make install-config make install-commandmode #安装完成没有报错开始以下配置
vim /usr/local/nagios/etc/objects/contacts.cfg
##修改nagiosadmin这行其中的邮件地址为你的email地址,以将报警邮件发到你的邮箱
make install-webconf
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
##设置登陆web界面时HTTP验证的账号密码如果apache是用源码编译安装的话,该指令改为如下所示:
#/usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
下面修改httpd.conf ,笔者是yum装的apache ,配置文件的路径为如下所示:
vim /etc/httpd/conf/httpd.conf
在空白地方添加一下两行
# nagios default settings Include conf/extra/nagios.conf
以上过程配置结束以后需要重新启动httpd:
# service httpd restart
如果可以正常启动,下面就可以开始编译、安装nagios-plugins
nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件。
tar zxvf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
##下面是一些配置
(1)把nagios添加为系统服务并将之加入到自动启动服务队列:
chkconfig --add nagios
chkconfig nagios on
(2)检查其主配置文件的语法是否正确:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
(3)如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了:
service nagios start
(4)配置selinux
如果您的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。您可以通过下面的命令来检查您的系统是否开启了selinux:
getenforce
如果上面命令的结果显示开启了selinux服务,您可以通过下面的命令暂时性的将其关闭:
setenforce 0
如果您想在以后完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的值“force”修改为“disable”即可。
##当然,您也可以通过以下方式将nagios的CGI程序运行于SELinux/targeted模式而不用关闭selinux:
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin
chcon -R -t httpd_sys_content_t /usr/local/nagios/share
(5)通过web界面查看nagios:
http://your_nagios_IP/nagios
登录时需要指定前面设定的web认证帐号和密码。
注意:为了nagios系统的安全,建议您使用信息摘要强认证模式(如MD5),强制使用web的TSL/SSL安全通讯模式,并且通过访问控制列表设定能访问nagios的web界面的客户端地址。
登录后看到以下画面则表示成功安装。
##说明##
3.2.2版本的nagios有个bug .安装完在/usr/local/nagios/sbin目录下没有原来的statusmap.cgi执行脚本
点击左边的current status 中的Map会显示找不到页面,解决方法只能从老版本中拷贝一个statusmap.cgi到/usr/local/nagios/sbin目录下了,并赋予执行权限。
如果此时Nagios进程已启动,则需要停止并重新启动nagios:
# killall -SIGHUP nagios
# rm -f /usr/local/nagios/var/nagios.lock
# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
可进入nagios的web管理页面查看log,如果出现以下字样,则表示正常运行。
说明:
i)此处停止Nagios必须通过向Nagios发送SIGHUP信号的方式进行;
ii)建议此时查看nagios日志文件中是否表明ndomod的模块加载是否正常,以及其是否能正常连接到data sink;查看日志,可以使用如下命令实现:# tail -30 /usr/local/nagios/var/nagios.log
排错信息:
i) 如果ndomod模块没能正常加载的话,建议重新检查nagios的配置文件中是否添加了所需的broker module条目;
ii) 同时,如果ndomod没有正常连接到data sin,建议查看ndo2db.cfg文件中关于mysql连接项目的指定是否正确;
iii)确认一下在编译NDOUtils时是否指定了关于mysql库文件位置的选项;
|
在官网找了副图片,简单的介绍了ntop的工作流程。
图片右边显示的是目前官方最新的ntop版本 为4.0.1下载之
1、下载安装所需要的环境:
需要事先下载并安装GeoIP和GetIP-devel两个rpm包; yum -y --nogpgcheck localinstall GeoIP-*.el5.i386.rpm 接着是ettercap相关的rpm包(ettercap,ettercap-common,需要下载,这里没指定具体的版本号,你可以根据自己的实际情况进行安装): yum -y --nogpgcheck localinstall ettercap-*.rpm 而后安装开发环境,尤其是以下几个rpm包: yum install libpcap libpcap-devel gdbm gdbm-devel zlib zlib-devel 2、安装ntop useradd -M -s /sbin/nologin -r ntop tar zxvf ntop-4.0.1.tar.gz cd ntop-4.0.1 ./autogen.sh
make
make install chown -R ntop:ntop /usr/local/share/ntop chown -R ntop:root /usr/local/var/ntop
3、配置并启动ntop
首先为ntop的admin用户设置密码: ntop -A 接下来启动ntop: ntop -i eth0 -d -L -u ntop 使之开机自动启动: echo 'ntop -i eth0 -d -L -u ntop &> /dev/null' >> /etc/rc.d/rc.local
用web页面访问http://yourIP:3000 如果出现以下换面 则表示运行正常
|
笔者在上文所安装的cacti版本为0.8.7g,支持插件的补丁就选用cacti-plugin-0.8.7g-PA-v2.8.tar.gz
下载后进行解压缩
tar zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
cd cacti-plugin-arch
cp -R * /var/www/html/cacti/
mysql -uroot -p cactidb <pa.sql
patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff
打完补丁后图片有时不会显示,这是需要修改下/var/www/html/cacti/include目录下的config.php文件
修改$url_path后面的值:
$url_path = "/cacti/";
修改完成直接web页面登陆,http://yourIP/cacti
选择左下的User Managenment 之后点击admin
在其中最后一项打钩,并保存
好了,现在cacti就支持其他插件功能了,下面把ntop和nagios加进去就可以了
|
- 首先去下载cacti的ntop插件,而后解压至cacti的插件目录:
- # tar zxvf ntop-0.1.tar.gz -C /var/www/html/cacti/plugins/
- 接着配置cacti的主配置文件,启用此插件:
- # vim /var/www/html/cacti/include/config.php
- 添加如下内容:
- $plugins[] = 'ntop';
- 接下来到cacti的控制台中"settings"中配置此插件,将其指向实际的ntop服务器所在的URL;然后再到cacti控制台的"user Management"中的admin用户中启用此插件即可。
安装Nagios Plugin for Cacti(NPC)
插件(
http://trac2.assembla.com/npc)
作用:将nagios的数据通过ndo2db导入到mysql数据库,然后cacti读取数据库信息将nagios的结果通过NPC展示出来。 一、nagios需要的包
1.下载并安装ndoutils
2.准备配置文件
3.修改nagios.cfg配置文件以适应当前环境
4.修改ndo2db.cfg以适应当前环境
5.修改ndomod.cfg以适应当前环境
6.为ndo2db添加启动进程
7.启动守护进程与nagios
service ndo2db start
tail -20 /var/log/messages ## 查看其中是否有错误出现。如无报错请继续
service nagios start
二:安装ncp,以在Cacti中展现Nagios
## 为cacti配置文件打补丁的时候注意在为include/config.php打补丁的时候有可能它将 include/config.php.dist给打补丁了,我们只需要手动加入下面的内容即可。
2.安装npc
3.安装 npc支持:json
php -i | grep php.ini ## 查看是否有导入信息
4.打开php.ini文件添加对json的支持
vim /etc/php.ini
# 添加
extension=json.so
5.为apache添加php支持。
6.修改配置文件以让npc读取到新的数据。
6.1
从Web进入Cacti,确保正确使用npc选项。
6.2 修改mysql中的表结构:
7.重启ndo2db进程,重新加载配置文件重启nagios服务。
service ndo2db restart
service nagios restart
8.在Web上配置NPC以使之正常读取工作。
在Settings->npc中 ,勾上Remote Commands
Nagios Command File Path= /var/www/html/nagios/var/rw/nagios.cmd
Nagios URL=你的地址(http://ocalhost/nagios/)
接下来刷新npc就可以看到数据啦:
#测试:
之后用web测试 ,index.php(前文有测试方法)如果有图片所示的这一项,则表示正常json正常安装
## 如果phpize 没有此指令,请yum安装php-devel包
说明:如果您是使用RPM方式安装php,那么一些动态的扩展是自动被加入的,这些动态扩展 在:/etc/php.d/*.ini这些文件,这里确认一下json.ini文件有这一行内容:extension=json.so;同时还要确认一下 /usr/lib/php/modules目录下有没有json.so文件,如果没有的话,要手动复制一份到这个目录,这样才能确保json.ini起作用。
全部装完在cacti中设置如图所示
#排错:
如果不出npc
可尝试npc先将相应插件文件放到plugin,然后需要:
vi /var/www/html/cacti/include/config.php ## 在该文件中的"$plugins = array()"后增加如下一行内容 #如果连接不上,注意配置文件中链接mysql的帐号密码是否一致。 |