Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。使用cacti可以有效的监控设备的具体情况。以下篇幅,笔者将讲述如何安装cacti以及使用cacti来监控各种网络设备。

实现需求:某公司的Web服务器,使用的是lamp技术,公司拟对Web服务器(包括操作系统、mysql、apache等信息)、公司的二层交换机、防火墙进行监控。

实验拓扑:

实验设备:监控主机(Linux 5.4)

Web服务器(Linux 5.4 lamp环境)

H3c二层交换机 quidway 2000 series(2403H-EI)

Juniper防火墙(ssg 5)

一、Web服务器配置

1. LAMP环境搭建

(1)、准备环境

首先需要为Web主机配置正确的ip地址和网关等参数,另外需要配置好yum仓库。

(2)、安装相关的组件

//安装Apahce, PHP, MySQL以及php连接mysql库组件。
#yum -y install httpd php mysql mysql-server php-mysql
//安装apache扩展,让apache更好的支持其他的软件。
#yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql
//安装php的扩展,apache本身并不支持php文件,要安装对应的php软件,然后进行http.conf配置;让apache能解析.php文件。
#yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc
//安装MySQL的扩展,更好的实现mysql的功能。
#yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql

(3)、修改apache的配置文件

# vim /etc/httpd/conf/httpd.conf

391 DirectoryIndex index.php index.html index.html.var

//启动各项服务并设置为开机启动

# service httpd start &&chkconfig httpd on

# service mysqld start &&chkconfig mysqld on

(4)、测试相关服务情况

//测试apache的运行情况,查看是否正常调用php

# cd /var/www/html

# vim index.php

<?php

phpinfo();

?>

//使用客户端查看情况

//测试apache与mysql的连接性

<?php

$lin=mysql_connect('127.0.0.1','root','');

if($lin)

echo "ok";

else

echo "failed";

?>

//使用客户端查看情况

2. SNMP设置

(1)、安装snmp的组件

# yum install net-snmp

(2)、修改相关的配置文件

# vim /etc/snmp/snmpd.conf

62 access notConfigGroup "" any noauth exact all none none

打开85行

85 view all included .1 80

# service snmpd start && chkconfig snmpd on

3. MySQL配置

为了便于mysql被网管到,需要对mysql进行相关的设置

# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 35

Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

//管理mysql需要相关的权限,将所需要的权限赋予网管主机

mysql&gt; grant process,super on *.* to 'cacti'@'192.168.10.0' identified by 'cacti';

Query OK, 0 rows affected (0.01 sec)

//授权网管主机进行网管

mysql&gt; grant all privileges on cacti.* to cacti@"192.168.10.0" identified by "cacti";

Query OK, 0 rows affected (0.03 sec)

//刷新

mysql&gt; flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql&gt; \q

Bye

//重启服务

# service mysqld restart

Stopping MySQL: [ OK ]

Starting MySQL: [ OK ]

#

二、H3C交换机配置

1. 基本配置

//配置主机名称

[Quidway]sysname sw

//为vlan1配置管理IP地址

[sw]inter vl 1

[sw-Vlan-interface1]ip add 192.168.10.2 255.255.255.0

[sw-Vlan-interface1]quit

//配置与防火墙相连接口

[sw]inter eth0/10

[sw-Ethernet0/10]port link-t tr

[sw-Ethernet0/10]port tr per vl all

请等待...:........................................ 完成.

[sw-Ethernet0/10]quit

2. SNMP配置

[sw]snmp //开启SNMP

[sw]snmp community write private

[sw]snmp community read public //沟通的重要密钥

[sw]snmp sys-info version v2c //版本一定要和主监控设备的版本一致

[sw]snmp target-host tr add u 192.168.10.2 pa sec public v2 //配置远端的追踪目标

三、Juniper防火墙配置

1. 基本配置

//配置主机名称

ssg5-serial-&gt; set hostname firewall

//配置与交换机相连的接口组的地址

firewall -&gt; set inter bgroup0 zone trust

firewall -&gt; set inter bgroup0 ip 192.168.10.2 255.255.255.0

//开启bgroup0的各项网管功能。可以不开启

firewall -&gt; set inter bgroup0 manage

//配置外口的地址

firewall -&gt; set inter eth0/0 zone Untrust

firewall -&gt; set inter eth0/0 ip 100.100.100.1 255.255.255.0

//保存配置

firewall -&gt; save

Save System Configuration ...

Done

2. SNMP配置

配置snmp的名称,并创建新的团体。

查看新创建的团体信息

四、监控主机配置

1. 搭建Cacti

(1)、安装相关组件

//首先需要将所需要的组件上传到监控主机。笔者上传的所有文件均位于管理员的家目录。

# yum install httpd php php-mysql php-snmp mysql-server perl-DBD-MySQL php-pdo net-snmp net-snmp-libs net-snmp-utils net-snmp-devel ruby ruby-devel –y

//启动相关的服务,并设置为开机启动

# service httpd start && chkconfig httpd on

# service mysqld start && chkconfig mysqld on

(2)、修改snmp

//修改本机的snmp配置,使本机也可以被网管到

# vim /etc/snmp/snmpd.conf

62 access notConfigGroup "" any noauth exact all none none

打开85行

85 view all included .1 80

//启动snmp服务,并设置为开机启动

# service snmpd start && chkconfig snmpd on

(3)、配置rrdtool

//回到安装目录,查看相关文件的信息

# cd ~/cacti

# ll

total 9056

-rw-r--r-- 1 root root 13083 Feb 8 02:53 ApacheStats_0.8.2.zip

-rw-r--r-- 1 root root 2236916 Feb 8 02:53 cacti-0.8.7g.tar.gz

-rw-r--r-- 1 root root 207069 Feb 8 02:53 cacti-plugin-0.8.7g-PA-v2.8.tar.gz

-rw-r--r-- 1 root root 4960221 Feb 8 02:53 feition.tar.bz2

-rw-r--r-- 1 root root 442525 Feb 8 02:53 monitor-latest.tgz

-rw-r--r-- 1 root root 1154026 Feb 8 02:53 rrdtool-1.4.4-1.el5.wrl.i386.rpm

-rw-r--r-- 1 root root 55839 Feb 8 02:53 rrdtool-perl-1.4.4-1.el5.wrl.i386.rpm

-rw-r--r-- 1 root root 18906 Feb 8 02:53 rrdtool-ruby-1.4.4-1.el5.wrl.i386.rpm

-rw-r--r-- 1 root root 6701 Feb 8 02:53 sendMsg.zip

-rw-r--r-- 1 root root 25570 Feb 8 02:53 settings-latest.tgz

-rw-r--r-- 1 root root 90488 Feb 8 02:53 thold-latest.tgz

#

//安装rrdtools

# yum localinstall rrdtool* --nogpgcheck –y

//拆解 cacti的数据包到相关的目录中

#tar -zxvf cacti-0.8.7g.tar.gz -C /var/www/html

//切换到相关目录中

# cd /var/www/html/

//为了便于记忆,修改目录的名称。

# mv cacti-0.8.7g/ cacti

(4)、MySQL配置

//打开mysql

# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

//创建cacti数据库

mysql&gt; CREATE DATABASE cacti;

Query OK, 1 row affected (0.00 sec)

//赋予本地相关的权限

mysql&gt; grant all privileges on cacti.* to cacti@localhost identified by 'cacti';

Query OK, 0 rows affected (0.01 sec)

mysql&gt; grant all privileges on cacti.* to cacti@127.0.0.1 identified by 'cacti';

Query OK, 0 rows affected (0.00 sec)

//赋予远端相关的权限

mysql&gt; grant all privileges on cacti.* to cacti@192.168.10.0 identified by 'cacti';

Query OK, 0 rows affected (0.00 sec)

//刷新

mysql&gt; flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql&gt; \q

Bye

#

(5)、其它配置

//创建计划任务

# crontab –e

*/5 * * * * php /var/www/html/cacti/poller.php &gt;/dev/null 2&gt;&1

#

//查看创建的计划任务

# crontab -l

*/5 * * * * php /var/www/html/cacti/poller.php &gt;/dev/null 2&gt;&1

#

//创建cacti的帐号,并赋予其密码

# useradd cacti

# passwd cacti

Changing password for user cacti.

New UNIX password:

BAD PASSWORD: it is too simplistic/systematic

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

#

//将cacti的数据库导入到mysql中

#mysql -ucacti -pcacti cacti &lt;/var/www/html/cacti/cacti.sql

# cd /var/www/html/

# cd cacti/

//修改所有文件的拥有者信息

# chown -R root.root *

//修改配置文件

# vim include/config.php

26 $database_type = "mysql";

27 $database_default = "cacti";

//注意此处一定要写localhost

28 $database_hostname = "localhost";

//数据库的用户名和密码一定是cacti

29 $database_username = "cacti";

30 $database_password = "cacti";

31 $database_port = "3306";

#

//重启apache

# service httpd restart

#

2. 安装插件管理器

#cd ~/cacti

//解压有关插件

# tar -zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz

# cp -R cacti-plugin-arch/* /var/www/html/cacti/

# cd /var/www/html/cacti/

//导入sql文件

# mysql -ucacti -pcacti cacti &lt;pa.sql

//打补丁

# patch -p1 -N &lt;cacti-plugin-0.8.7g-PA-v2.8.diff

//修改url的路径

# vim include/config.php

42 $url_path = "/cacti/";

# cd ~/cacti/

//解压缩

# tar -zxvf monitor-latest.tgz

# tar -zxvf thold-latest.tgz

#tar -zxvf settings-latest.tgz

//移动文件到相关的目录

#mv monitor-0.9/ /var/www/html/cacti/plugins/monitor

#mv thold-0.41/ /var/www/html/cacti/plugins/thold

#mv settings-0.6/ /var/www/html/cacti/plugins/settings

#

3. 配置管理界面

进入管理界面,输入http://192.168.10.1/cacti

勾选相关的组件

安装有关组件

设置版本和设置报警信息

五、监控Web服务器

在添加Web服务器之前,可以在监控主机上使用以下命令来测试,Web服务器是否可以被网管到。如果出现很多数据证明可以被网管,否则就是无法网管,需要查找原因。

# snmpwalk -v2c -c public 192.168.10.3

1. 添加设备

添加相关的管理项,并创建新的视图

2. 添加树

将已经配置好的主机添加到刚刚创建的树中

3. 查看监控主机

六、监控 Web服务器的Apache

1. 在监控主机上配置

//解压缩文件

# unzip ApacheStats_0.8.2.zip

# cd ApacheStats_0.8.2

# ll

total 116

-rw-r--r-- 1 root root 102879 Oct 5 2009 cacti_host_template_webserver_-_apache.xml

-rw-r--r-- 1 root root 4108 Oct 5 2009 ss_apache_stats.php

#

//将文件移动到相关的目录中

# mv ss_apache_stats.php /var/www/html/cacti/scripts/

2. 导入模版

3. 添加到设备

4. 绘图

5. 查看

七、监控 Web服务器的MySQL

1. 在监控主机上配置

(1)、解压缩

//解压缩

# tar -zxvf mysql-cacti-templates-1.1.2.tar.gz

# cd mysql-cacti-templates-1.1.2

//将文件移动到相关目录

# mv ss_get_mysql_stats.php /var/www/html/cacti/scripts/

#

(2)、修改相关配置文件

# cd /var/www/html/cacti/scripts/

# vim ss_get_mysql_stats.php

修改30、31、34行数据

30 $mysql_user = 'cacti';

31 $mysql_pass = 'cacti';

34 $cache_dir = '/var/www/html/cacti/cache';

(3)、修改权限

# cd /var/www/html/cacti/

# mkdir cache

# chmod 777 -R cache/

# chown -R apache.apache cache/

2. 导入模版

3. 添加到设备

4. 绘图

5. 查看

八、监控二层交换机

在监控之前,需要知道二层交换机的OID,否则将无法实现监控。笔者从网上已经查到了H3C交换机2403H-EI的OID值。在配置之前,需要在监控主机上,测试是否能够网管到二层交换机。

# snmpwalk -v2c -c public 192.168.10.2 1.3.6.1.4.1.2011.6.1.2.1.1.2.0

//出现以下数据,说明正常,可以网管

SNMPv2-SMI::enterprises.2011.6.1.2.1.1.2.0 = Gauge32: 16760832

1. 复制并修改数据模版

(1)、复制数据模版

(2)、修改复制的数据模版

2. 复制并修改绘图模版

(1)、复制模版

(2)、修改模版

复制过来的数据条目删除,创建新的数据条目

3. 添加设备

添加新的设备

创建绘图

4. 创建树

5. 将设备添加到树中

6. 查看

九、监控防火墙

在监控之前,需要知道防火墙的OID,否则将无法实现监控。笔者从网上已经查到了Juniper防火墙SSG 的OID值。在配置之前,需要在监控主机上,测试是否能够网管到防火墙。

# snmpwalk -v2c -c public 192.168.10.254 .1.3.6.1.4.1.3224.16.3.2.0

//出现以下数据,说明正常,可以网管

SNMPv2-SMI::enterprises.3224.16.3.2.0 = INTEGER: 4

1. 复制并修改数据模版

(1)、复制数据模版

(2)、修改复制的数据模版

2. 复制并修改绘图模版

(1)、复制模版

(2)、修改模版

复制过来的数据条目删除,创建新的数据条目

3. 添加设备

添加新的设备

创建绘图

4. 创建树

5. 将设备添加到树中

6. 查看

十、报警测试

将Webserver服务器down掉,结果5分钟后,出现了报警声音,警告已经丢失了目标主机。

转载于:https://blog.51cto.com/pheonix/903207

稳坐CACTI,遥知千里相关推荐

  1. 年度总结 | 积跬步以至千里,2023一起筑梦新征程

    2022年,是值得载入史册的一年.疫情开放,健康码隐入历史尘埃.国际形势紧张,信创化进入快车道.企业加速转型,跨界技术融合的运维新生态已初露苗头.回顾2022,我们聚沙成塔逆寒流而勇进,精造创新以实践 ...

  2. 不积跬步无以至千里[转]

    不积跬步无以至千里<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> ...

  3. 积跬步以至千里_《荀子》名句76则:不积跬步,无以至千里;不积小流,无以成江海...

    荀子(约公元前313年-公元前238年),名况,字卿,华夏族(汉族),战国末期赵国人 .著名思想家.文学家.政治家,时人尊称"荀卿".西汉时因避汉宣帝刘询讳,因"荀&qu ...

  4. iphonex如何关机_历时一个月,跨越一千里,我找回了在澳门被偷的iphoneX

    自从入了苹果坑以后,和大多数家庭一样,我们家手机的更新换代也开始有规律起来. 比如我用果6的时候媳妇用6S,我用6S的时候媳妇用果8,我用果8的时候媳妇用果X. 后来儿子逐渐懂事,导致我的优先级又降了 ...

  5. 2022年顺顺顺,送3本技术好书借你千里风

    VOL 344 08 2022-01 今天是2022年第008天 这是ITester软件测试小栈第344次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 ...

  6. 千里姻缘:晒晒你拥有什么样的“恋人指数”

    千里姻缘:晒晒你拥有什么样的"恋人指数" 千里姻缘一线牵:这是一个公益性传递类的个人活动.希望为广大未婚的.已婚的和已婚过去式的群众们,找到自己的归属.认清自己的方向提供必要的参考 ...

  7. 缘系天涯,一枕残梦千里

    功夫森积着难熬,曾经的人,曾经的事,在渺渺的怀想中垂垂衰老.千年过往,仿佛只留下了一声感喟!百年循环,也仿佛只留下了心头的那点影象! 凭栏细语,阑珊怀想.尘世里那婉约的小气,笨重的俊逸,与云烟深处,款 ...

  8. 缘系天涯,一枕残梦千里殇岁月沉积着忧伤:伤感日志

    缘系天涯,一枕残梦千里殇岁月沉积着忧伤:伤感日志 - 缘系天涯,一枕残梦千里殇岁月沉积着忧伤:伤感日志 岁月沉积着忧伤,曾经的人,曾经的事,在渺渺的思念中渐渐苍老.千年过往,似乎只留下了一声叹息!百年 ...

  9. 千里送人头  ——APIO2017 游记

    北京四日游. Day -1 还是有点发烧.回家准备行李第二天出发. Day 0 坐了一天的火车,在车上看了秒五,重看了君名.内心很触动.hzh在看食神番.这天在火车上A了一天半平面交裸题.第一次写. ...

最新文章

  1. C# 给某个方法设定执行超时时间
  2. python gdbt+fm_GBDT回归的原理及Python实现
  3. Leetcode初级算法(链表篇)
  4. Flink快速入门wordcount示例(scala版)
  5. MFC:2个重载中没有一个可以转换所有参数类型
  6. 用python让excel飞起来 pdf_讯飞智能键盘K710 一款无网络实力依然在线的黑科技产品...
  7. php jwt token 解析,JSON Web Token(JWT)入坑详解
  8. 老李推荐:第8章2节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-解析处理命令行参数...
  9. Unity用GUI绘制Debug/print窗口/控制台-打包后测试
  10. JDK集合源码解析剖析
  11. matlab freqz用法,Python中的Matlab freqz函数
  12. 详述2022诺贝尔物理学奖:量子纠缠实验史
  13. 用c语言合并两个有序单链表,c++ 如何合并两个有序链表
  14. ShadowGun之Shader分析
  15. 当里皮也成过客,请善待国足主帅的继任者
  16. mysql统计姓名为_MySQL统计所有成绩都在90分的姓名
  17. 为什么计算机是32位64位,64位是x86还是x64_为什么64位是X64,32位是X86?
  18. vins estimator ProjectionFactor (Td) factor
  19. 操作系统——可变分区空闲空间管理
  20. Tablayout设置间距

热门文章

  1. 外表加载oracle,opengauss外部表插件——oracle_fdw
  2. java组合数打印出结果_Java打印一组数据中,抽取固定数目的数的所有可能组合...
  3. 用html5制作机柜,基于HTML5 Canvas 点击添加 2D 3D 机柜模型
  4. assemblyinstaller 无法启动计算机.上的服务,本地计算机上的Windows Search服务启动然后停止 | MOS86...
  5. idea编译器没有tomcat的选项解决方案
  6. 随机生成元素升序向量_使用random_shuffle()算法随机化序列元素
  7. 无法将W ndOWs配置为在,配置Wndows2000中的磁盘配额.doc
  8. 人脸对齐(五)--ESR算法
  9. KNN(二)--近似最近邻算法ANN
  10. 前景检测算法(二)--codebook和平均背景法