由于MRTG 不象APACHE 那么庞大, 精密。所以决定用PORTS 安装。
首先要安装的是SNMP ,因为MRTG就是通过SNMP 监视流量来制作成可视化图表
pub# cd /usr/ports/net-mgmt/net-snmp/
pub# make install && make clean
pub# rehash
测试一下
pub# snmpd
pub# ps waux |grep snmpd
root 614 0.0 0.8 5612 4308 ?? S 12:45AM 0:00.23 snmpd
这一步好了,假如系统和PORTS TREE 本身没问题,这一步也应该没问题
接下来 就是PORTS 安装MRTG
pub# cd /usr/ports/net-mgmt/mrtg/
pub# make install && make clean
pub#rehash
测试一下
pub# mrtg
Usage: mrtg
mrtg-2.11.1 is the Multi Router Traffic Grapher.
If you want to know more about this tool, you might want
to read the docs. They came together with mrtg!
看到这个就应该是没问题了
做完上面以后
最后就是配置工作 使MRTG 能为我们工作 ,这个是最“复杂”的一步,其实前面安装也挺复杂的,只是借助了PORTS 才会觉得“简单” 有机会可以全部编译安装试一下 以求深入理解MRTG && snmp
1. 在WEB 发布目录/pub/site 建立一mrtg 目录,为的是能把生成的图表发布在浏览器里面
pub# mkdir mrtg
pub# cd /usr/local/share/snmp/
pub# ls
#############################
#
# An example configuration file for configuring the ucd-snmp snmpd ag
#
############################
#
# This file is intended to only be an example. If, however, you want
............................................
找一下
# sec.name source community
com2sec local localhost COMMUNITY
com2sec mynetwork NETWORK/24 COMMUNITY
rocommunity prowork
在这个地方添加 rocommunity prowork
添加在这里比较容易记忆 ,方便以后查找,它也可以放在其它的地方,注意不要在前面加 # ^_^ ,其中的prowork 就是等会我们要使用的访问名字 ,
这一步和别的朋友写的文档上面有点不太一样 , 注意多点没坏处
2. 生成 mrtg 配置文件 ,用于初始化,获取 snmp 信息
pub# cd /usr/local/etc/mrtg
pub# cfgmaker prowork@192.168.0.206 > mrtg.prowork
--base: Get Device Info on prowork@192.168.0.206 :
--base: Vendor Id:
--base: Populating confcache
--snpo: confcache prowork@192.168.0.206 : Descr vr0 --> 1
--snpo: confcache prowork@192.168.0.206 : Descr lo0 --> 2
--snpo: confcache prowork@192.168.0.206 : Type 6 --> 1
--snpo: confcache prowork@192.168.0.206 : Type 24 --> 2
--snpo: confcache prowork@192.168.0.206 : Ip 127.0.0.1 --> 2
--snpo: confcache prowork@192.168.0.206 : Ip 192.168.1.28 --> 1
--snpo: confcache prowork@192.168.0.206 : Eth 00-05-5d-a1-b6-7d --> 1
--snpo: confcache prowork@192.168.0.206 : Eth --> 2
--base: Get Interface Info
--base: Walking ifIndex
--base: Walking ifType
--base: Walking ifAdminStatus
--base: Walking ifOperStatus
出现以上信息就证明通过了 (我在freebsd6.2的平台上边,根本不会有上边的显示)
在这个地方有几点要注意, 一个是prowork@后面的 192.168.0.206 在很多时候尽量用IP地址来代替,当然假如是放在
公网上面的机器是动态IP 就不得不使用域名,那也是没办法的事
情,总之目的就是要获得要抓的网卡上面的流量,得要给MRTG
知道是哪块网卡才行 ,所以一定要给它正确的地址 。
还有一个就是前面prowork@中的prowork ,这个就是在前面
写错 就会出现
pub# cfgmaker prowork@192.168.0.206 > mrtg.prowork
--base: Get Device Info on prowork@192.168.0.206 :
SNMP Error:
no response received
SNMPv1_Session (remote host: "192.168.1.28" [192.168.1.28].161)
community: "com2sec"
request ID: 1181035357
PDU bufsize: 8000 bytes
timeout: 2s
retries: 5
backoff: 1)
at /usr/local/lib/perl5/site_perl/5.005/SNMP_util.pm line 627
SNMPWALK Problem for 1.3.6.1.2.1.1 on prowork@192.168.0.206 ::::::v4only
at /usr/local/bin/cfgmaker line 796
WARNING: Skipping prowork@192.168.0.206 : as no info could be retrieved
3 .在正确生成 mrtg.prowork的配置文件后就该修改修改里面的
内容以求能符合自己的习惯 ,
pub# cat mrtg.prowork
# Created by
# /usr/local/bin/cfgmaker prowork@192.168.0.206
### Global Config Options
# for UNIX
#这是设定要存放MRTG的信息发布页面的路径 ,也就是存放能
#打开页面看流量信息页面的那个地方
WorkDir: /pub/site/mrtg/
# or for NT
# WorkDir: c:\mrtgdata
### Global Defaults
# to get bits instead of bytes and graphs growing to the right
# Options[_]: growright, bits
EnableIPv6: no
######################################################################
# Location: Right here, right now.
######################################################################
### Interface 1 >> Descr: 'vr0' | Name: '' | Ip: '192.168.1.28' | Eth: '00-05-5d-a1-b6-7d' ###
Target[192.168.1.28_1]: 1:prowork@192.168.1.28:
SetEnv[192.168.1.28_1]: MRTG_INT_IP="192.168.1.28" MRTG_INT_DESCR="vr0"
MaxBytes[192.168.1.28_1]: 1250000
Description: vr0
ifType: ethernetCsmacd (6)
ifName: prowork nic
Max Speed: 1250.0 kBytes/s
### Interface 2 >> Descr: 'lo0' | Name: '' | Ip: '127.0.0.1' | Eth: '' ###
### The following interface is commented out because:
### * it is a Software Loopback interface
### * has a speed of 0 which makes no sense
#
# Target[192.168.1.28_2]: 2:prowork@192.168.1.28:
# SetEnv[192.168.1.28_2]: MRTG_INT_IP="127.0.0.1" MRTG_INT_DESCR="lo0"
# MaxBytes[192.168.1.28_2]: 0
#
# Description: lo0
# ifType: softwareLoopback (24)
# ifName:
# Max Speed: 0.0 Bytes/s
#
Options[_]: growright, bits
Language:gb2312
WithPeak[_]: wmy
可以修改让它符合自己的习惯因为里面有些 等会会在WEB页面
显示出来
注意的是任何指令左侧 都不要有空格出现 否则会提示 :
ERROR: Line 8 ( WorkDir: /var/www/html/mrtg) in CFG file (mrtg)does not make sense
这个一点都不假 ,不相信试试看
4. 生成WEB 页面 index.html
indexmaker --title 'prowork net' -output /pub/site/mrtg/index.html mrtg.prowork
--title 为 index.html 的标题 /pub/site/mrtg/为发布页面的
绝对路径 mrtg.prowork 为配置文件
这时候应该在 /pub/site/mrtg/里面生成了一个配置页面
打开看的时候 ,应该是看到有 几个红叉叉的页面 并没有预想
的那样 ,原因是差了最后一步 :运行MRTG
5.运行 MRTG
pub# mrtg /usr/local/etc/mrtg/mrtg.prowork
Rateup WARNING: /usr/local/bin/rateup could not read the primary log file for 192.168.1.28_1
Rateup WARNING: /usr/local/bin/rateup The backup log file for 192.168.1.28_1 was invalid as well
Rateup WARNING: /usr/local/bin/rateup Can't remove 192.168.1.28_1.old updating log file
Rateup WARNING: /usr/local/bin/rateup Can't rename 192.168.1.28_1.log to 192.168.1.28_1.old updating log file
pub# mrtg /usr/local/etc/mrtg/mrtg.prowork
Rateup WARNING: /usr/local/bin/rateup Can't remove 192.168.1.28_1.old updating log file
pub# mrtg /usr/local/etc/mrtg/mrtg.prowork
pub# mrtg /usr/local/etc/mrtg/mrtg.prowork
pub# ls
果然不假 ,真如别的朋友上面写的一样会“抱怨”三次
到这一步 应该是一个MRTG 该可以正常使用了
就看到了令人惊奇的一面
结尾:
排程 ,因为流量是不住变化的所以每隔一段时间就要去探测
一次 , 时间长了 精确度不够 ,时间短 频繁去探测 ,又会
加重系统负担 , 别人告诉我 ,一般是 5-10分钟 最佳
#ee /etc/crontab添加下边这些内容
*/5 * * * * /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.prowork
最后再加上一些可以监控机器cpu占用,空闲内存,tcp连接数的配置文件内容如下:
添加对CPU,内存,TCP连接数的监控.
#monitoring User vs Idle CPU usage
Target[kontor.cpu]:ssCpuRawUser.0&ssCpuRawIdle.0:prowork@192.168.0.206
RouterUptime[kontor.cpu]: prowork@192.168.0.206
MaxBytes[kontor.cpu]: 100
Title[kontor.cpu]: CPU LOAD
PageTop[kontor.cpu]:
User CPU Load %
Unscaled[kontor.cpu]: ymwd
ShortLegend[kontor.cpu]: %
YLegend[kontor.cpu]: CPU Utilization
Legend1[kontor.cpu]: User CPU in % (Load)
Legend2[kontor.cpu]: Idle CPU in % (Load)
LegendI[kontor.cpu]: User
LegendO[kontor.cpu]: Idle
Options[kontor.cpu]: growright,nopercent
#monitoring User vs System CPU usage
Target[kontor.usrsys]:ssCpuRawUser.0&ssCpuRawSystem.0:prowork@192.168.0.206
RouterUptime[kontor.usrsys]: prowork@192.168.0.206
MaxBytes[kontor.usrsys]: 100
Title[kontor.usrsys]: CPU LOAD
PageTop[kontor.usrsys]:
CPU (user and system) Load %
Unscaled[kontor.usrsys]: ymwd
ShortLegend[kontor.usrsys]: %
YLegend[kontor.usrsys]: CPU Utilization
Legend1[kontor.usrsys]: User CPU in % (Load)
Legend2[kontor.usrsys]: System CPU in % (Load)
LegendI[kontor.usrsys]: User
LegendO[kontor.usrsys]: System
Options[kontor.usrsys]: growright,nopercent
#monitoring Active CPU usage
Target[kontor.cpusum]:ssCpuRawUser.0&ssCpuRawUser.0:prowork@192.168.0.206 + ssCpuRawSystem.0&ssCpuRawSystem.0:prowork@192.168.0.206 + ssCpuRawNice.0&ssCpuRawNice.0:prowork@192.168.0.206
RouterUptime[kontor.cpusum]: prowork@192.168.0.206
MaxBytes[kontor.cpusum]: 100
Title[kontor.cpusum]: CPU LOAD
PageTop[kontor.cpusum]:
Active CPU Load %
Unscaled[kontor.cpusum]: ymwd
ShortLegend[kontor.cpusum]: %
YLegend[kontor.cpusum]: CPU Utilization
Legend1[kontor.cpusum]: Active CPU in % (Load)
LegendI[kontor.cpusum]: Active
Options[kontor.cpusum]: growright,nopercent
#Monitoring TCP connections
Target[tcpopen]: .1.3.6.1.2.1.6.9.0&.1.3.6.1.2.1.6.9.0:prowork@192.168.0.206
Options[tcpopen]: nopercent,growright,gauge,noinfo
Title[tcpopen]: Open TCP connections
PageTop[tcpopen]:
Open TCP connections
MaxBytes[tcpopen]: 1000000
YLegend[tcpopen]: # conns
ShortLegend[tcpopen]: connections
LegendI[tcpopen]: Connections:
Legend1[tcpopen]: Open TCP connections
#Monitoring Free Memory
Target[freemem]: .1.3.6.1.4.1.2021.4.11.0&.1.3.6.1.4.1.2021.4.11.0:prowork@192.168.0.206
Options[freemem]: nopercent,growright,gauge,noinfo
Title[freemem]: Free Memory
PageTop[freemem]:
Free Memory
MaxBytes[freemem]: 1000000
kMG[freemem]: k,M,G,T,P,X
YLegend[freemem]: bytes
ShortLegend[freemem]: bytes
LegendI[freemem]: Free Memory:
Legend1[freemem]: Free memory, not including swap, in bytes
修改了mrtg使用的配置文件,要重新生成页面文件,
#cd /usr/local/etc/mrtg
#indexmaker --title 'prowork net' -output /pub/site/mrtg/index.html mrtg.prowork
#mrtg mrtg.prowork
到这里也就完全结束了。