#Cdp run 启用CDP
#snmp-server community cisco ro(只读) ;配置只读通信字符串为cisco
#snmp-server community secret rw(读写) ;配置读写通信字符串为secret
#snmp-server enable traps 允许路由器将所有类型SNMP Trap发送出去(网关SNMP TRAP)
#snmp-server host 192.168.0.254 rw ;配置网关工作站地址(可以接受snmp的Ip)
snmp-server trap-source fa0/1 将fa0/1接口的IP地址作为SNMP Trap的发送源地址
设置IP地址
int vlan1 配置ip
ip addr 192.168.0.253 255.255.255.0 添加一个IP地址
no shu 将接口打开
保存配置
copy run start 或者wr
配置交换机的目的是,将服务器端口的压力转接到交换机上.(不再实验步骤内)
3.安装SNMP
如果是监控某台服务器的网卡流量需要在其上安装SNMP
什么是SNMP?
SNMP(Simple Network Management Protocol,)的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB:体系结构,改进后的协议就是著名的SNMP。SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。现在SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。
rpm -ivh net-snmp-5.3.2.2-5.el5.i386.rpm
生成配置文件:
由于生成mrtg配置文件默认带有网卡流量监控,需要snmp,所以首先需要修改下snmp的配置文件
vi /etc/snmp/snmpd.conf
将62行左右
access notConfigGroup "" any noauth exact systemview none none
修改为:
access notConfigGroup "" any noauth exact mib2 none none
将89行左右
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
注释打开
保存,重起snmpd
service snmpd restart
4.安装mrtg
什么是mrtg
rpm -ivh mrtg-*.rpm
mkdir /var/www/html/mrtg
生成配置文件
/usr/bin/cfgmaker --global "WorkDir: /var/www/html/mrtg" --global "language: chinese" --global "Options[_]: growright,bits" --show-op-down --ifref=nr --ifdesc=descr --output=/etc/mrtg/mrtg.cfg public@192.168.0.253
说明:--global参数表示后面的选项对后面指定的设备都是有效的(如果希望对多个设备进行监控时,该参数就会发生作用)。WorkDir用来指示mrtg的工作目录;icondir用来指定图标的目录;language表示指定生成HTML页面的语言;Options用来指定一些特定的选项。在Options设置中,growright表示时间增长的箭头方向向右;bits表示接口的带宽。对于常见的应用来说,默认Options配置就可以满足需求(如果想了解有那些选项,可以参看/usr/lib/mrtg2/MRTG_lib.pm文件)。此外,- -show-op-down表示显示down的接口;--ifref表示设备接口的标示;--ifdesc用于选择参数来描述接口。其中,ifref可以指定的参数为nr、ip、eth、descr和name;ifdesc可以指定的参数为nr、ip、eth、descr、name、type和alias。后面的--output的参数表示输出文件(缺省输出到屏幕);public@192.168.1.6中public表示Community串,一般交换机出厂设置为public;192.168.0.253表示监控网络交换机设备的IP地址。更详细的说明可以参考man cfgmaker文档。
制作首页
/usr/bin/indexmaker --output=/var/www/html/mrtg/index.html /etc/mrtg/mrtg.cfg
/usr/bin/mrtg /etc/mrtg/mrtg.cfg 运行这条命令会出现报错,提示你运行如下命令
env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg
运行三次, 前两次执行会出Warning.不用理会.
设置/etc/crontab文件
先检查/etc/cron.d目录下mrtg文件是否存在以下代码:
*/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok
其中5是没五分钟刷新一次,可以设置成1
5.查看流量
http://你的地址/mrtg就可看到流量了.
6.常见错误
目录问题,看一下/etc/httpd/conf.d/mrtg.cfg有没有别名设置,转到了其他目录
修改
mv /etc/httpd/conf.d/mrtg.cfg /etc/httpd/conf.d/mrtg.cfg.bak
权限问题,看一下/etc/httpd/conf/httpd.conf下的
User apache
Group apache
7.测试
可以看到eth0的流量信息
生成自己的mrtg监控脚本。
以下是一个apache连接的例子,查看apache的连接数.
首先再/etc/mrtg/mrtg.cfg里加入apache连接的配置段
Target[apache_conn]: `/bin/mrtg.apa.pl`
Options[apache_conn]: gauge,nopercent,growright
Directory[apache_conn]:apache_conn
MaxBytes[apache_conn]: 4000
YLegend[apache_conn]: apache连接数
ShortLegend[apache_conn]: 个
LegendI[apache_conn]: apache总连接数:
LegendO[apache_conn]: apache当前连接数
Title[apache_conn]: apache连接数
PageTop[apache_conn]:
apache连接数
Target指的是mrtg从那里取画曲线的值,此处可以从snmp和脚本取值,如从脚本取值需注意,需要前后用`来指定脚本路径而不是' .
[]指这个配置段的名称,这里为apache_conn,届时会在mrtg的workdir里建立同名的目录
Maxbytes指mrtg取值后能表现的最大值
YLegend指再图标中纵向的名称
ShortLegend指在图标中数值后面所跟的单位
LegendI 传递过去的第一个值
LegendO 传递过去的第二个值
Title 网页title
Pagetop 网页显示名称
如上上面所写Target[apache_conn]: `/bin/mrtg.apa.pl`
自己在/bin建立mrtg.apa.pl
#!/usr/bin/perl
$hostname=`hostname`;
$hostname=~s/\s+$//;
$apache_all_conn=`netstat -an|grep 192.168.0.x:80|wc -l`;
$apache_conn=`netstat -an|grep 192.168.0.x:80|grep ESTABLISHED|wc -l`;
$apache_all_conn=~s/\n$//;
$apache_conn=~s/\n$//;
$apache_all_conn=~s/^\s+|\s+$//;
$apache_conn=~s/^\s+|\s+$//;
$gettime=`uptime|awk '{print \$1" "\$3" "\$4}'`;
$gettime=~s/\,|\n$//g;
print("$apache_all_conn\n");
print("$apache_conn\n");
print("$gettime\n");
print("$hostname\n");
不要忘记给mrtf.apa.pl执行权限
chmod +x /bin/mrtf.apa.pl
以上脚本为perl编写,由于apache的连接可以使用netstat查看,所以我用里一个简单的shell命令组合来获取apache的总连接数和当前建立连接的连接数.
需要注意以下几点
1) 使用命令传递值给mrtg时,mrtg只能接受4个参数,真正用于画图的只有2个
2) 4个参数必须依次为 值1,值2,运行时间,主机名
3) 4个参数后不得有\n等换行符
4) 不要忘记把192.168.0.x改为你本机的ip
由于mrtg.cfg的改变,所以必须依次使用以下命令
/usr/bin/indexmaker --output=/var/www/html/mrtg/index.html /etc/mrtg/mrtg.cfg
使用mrtg的indexmaker重生成index.html文件,否则你无法看到新加入的apache连接的监控.
/usr/bin/mrtg /etc/mrtg/mrtg-apache.cfg
使用mrtg命令传入数值,同样会报3次错,忽略即可
再打开浏览器,输入地址,应该可以看到首页除了网卡的流量外再下方会加入apache连接的图
认为增加一下apache连接数,使效果明显一些
ab -c10 -n10000