分类: 网络与安全
2008-10-31 16:36:42
SNMP与MRTG配置手册
准备工作:安装好apache
这里apache的工作目录放在/var/www中
系统版本:
[root@fxs_zlj_01 ~]# uname -a Linux fxs_zlj_01.test.com [root@fxs_zlj_01 ~]# |
SNMP版本:net-snmp-5.4
MRTG版本:mrtg-
一、安装SNMP & MRTG
1.下载SNMP & MRTG包
下载SNMP
ftp://ftp.freesnmp.com/mirrors/net-snmp/
[zhoulj@fxs_zlj_01 src$ wget |
下载MRTG包
[zhoulj@fxs_zlj_01 src$ wget
pub/mrtg- |
2.安装SNMP
参考文档:
[root@fxs_zlj_01 net-snmp-5.4]# ./configure [root@fxs_zlj_01 net-snmp-5.4]# make [root@fxs_zlj_01 net-snmp-5.4]# make install |
3.安装MRTG
参考文档:doc/mrtg-unix-guide.en.html
说明:在安装前需要安装、libpng、、
安装过程:略。
二、配置SNMP
1.启动snmp服务
默认SNMP配置文件在 /usr/local/share/snmp/snmpd.conf
通过snmpconf命令生成config文件
[root@fxs_zlj_01 net-snmp-5.4]# cd /usr/local/share/snmp/ [root@fxs_zlj_01 snmp]# snmpconf -g basic_setup |
下面是我做的snmp文件的内容(配置文件在/etc/snmpd/下):
[root@fxs_zlj_01 snmp]# cat /etc/snmpd/snmpd.conf |grep -Ev "^#|^$" com2sec notConfigUser default public group notConfigGroup v1 notConfigUser group
notConfigGroup v view systemview included .1 access notConfigGroup "" any noauth exact systemview none none view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc syslocation FXS_zlj_01 syscontact Root disk / load 12 14 14 pass . |
启动snmpd进程:
/usr/local/sbin/snmpd
-p /var/run/snmpd -c /etc/snmpd/snmpd.conf -a |
-p:指定pid文件位置
-c:指定配置文件位置
-a:log文件采用追加的方式;snmp的log文件默认在 /var/log/snmpd.log
检查snmpd服务是否正常启动:
[root@fxs_zlj_01 snmp]# more /var/log/snmpd.log ……. NET-SNMP version 5.4 [root@fxs_zlj_01 snmp]# |
Snmpd的默认端口是UDP 161:
[root@fxs_zlj_01 snmp]# netstat -anu Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp
0 0 udp
0 0 udp
0 0 udp
0 0 udp
0 0 udp
0 0 [root@fxs_zlj_01 snmp]# |
系统正常启动,没有错误,下面通过snmpwalk命令查看一下系统信息:
[root@fxs_zlj_01 snmp]# snmpwalk -v |
参数说明:
-v:指定版本号
例如:SNMP V1 使用1 ,SNMP V2 使用
-c:后面跟Community String 的字符, 这里使用public(在配置文件里面可以看到)
该命令执行成功后,如果snmp服务正常会看到很多信息
[root@fxs_zlj_01 snmp]# snmpwalk -v 1 localhost -c public SNMPv2-MIB::sysDescr.0 = STRING: Linux
fxs_zlj_01.test.com SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2542749) 7:03:47.49 SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip ………………….. |
2.配置MRTG
修改/root/.bash_profile文件修改下面一行。注:/usr/local/mrtg-2/bin MRTG安装目录
PATH=$PATH:$HOME/bin:/usr/local/mrtg-2/bin |
这里需要掌握着下面3个命令的用法:
cfgmaker
indexmaker
mrtg
(1)生成配置文件:
cfgmaker
--global 'WorkDir: /var/www/mrtg/networks' \ --global 'Options[_]:
bits,growright' \ --output /etc/mrtg/networks.cfg \ public@ |
该命令默认只生成网络的配置:
[root@fxs_zlj_01
mrtg]# cat /etc/mrtg/networks.cfg
|grep -Ev "^#|^$" EnableIPv6: no WorkDir:
/var/www/mrtg/networks Target[ SetEnv[ MaxBytes[ Title[ PageTop[
[root@fxs_zlj_01
mrtg]# |
(2)生成index页面文件:
indexmaker
--columns=3 --output=/var/www/mrtg/networks/index.html /etc/mrtg/networks.cfg |
--columns=3 :每个行显示图片的数量,默认是2
--output= :生成的页面index文件的位置
(3)采集数据:
/usr/local/mrtg-2/bin/mrtg
/etc/mrtg/networks.cfg |
该命令执行3次,前2次会提示出错。
修改crontab内容,增加下面一行,让系统自动采集,每5分钟一次:
*/5
* * * * /usr/local/mrtg-2/bin/mrtg /etc/mrtg/networks.cfg |
4.snmptranslate命令
通过snmptranslate 命令来查看mib信息库的节点
同下面命令列出所有结的字符串明和数值:
snmptranslate –Tlo
[root@fxs_zlj_01 ~]# snmptranslate -Tlo >oid.txt [root@fxs_zlj_01 ~]# head oid.txt .iso(1).org(3) .1.3 .iso(1).org(3).dod(6) .1.3.6 .iso(1).org(3).dod(6).internet(1) .1.3.6.1 ………………………….. |
三、配置一个完整监控系统
在这里我们分别对
EnableIPv6: no Options[_]: bits,growright #WorkDir: /var/www/mrtg/225_new/ HtmlDir: /var/www/mrtg/225_new/ Imagedir: /var/www/mrtg/225_new/img/ Logdir: /var/www/mrtg/225_new/logs/ Language: Chinese Refresh:300 ###################################################################### Target[ SetEnv[ MaxBytes[ Title[ Xsize[ Ysize[ PageTop[
##########################CPU########################### LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt Target[cpu]:
ssCpuUser.0&ssCpuSystem.0:public@ Xsize[cpu]: 200 Ysize[cpu]: 120 Options[cpu]: nopercent,growright,gauge,noinfo Title[cpu]: CPU 使用状况 PageTop[cpu]: MaxBytes[cpu]: 1000000000 #kMG[cpu]: k,M,G,T,P,X Ylegend[cpu]: CPU loading (%) ShortLegend[cpu]: (%) LegendI[cpu]: CPU User Using LegendO[cpu]: CPU System Using Legend1[cpu]: CPU User Using Legend2[cpu]: CPU System Using ##########################END OF CPU#################### ########################## LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt Target[ Xsize[ Ysize[ Options[ Title[ PageTop[ MaxBytes[ #kMG[ Ylegend[ ShortLegend[ LegendI[ LegendO[ Legend1[ Legend2[ #################END OF ################## Disk Space ####################### LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt Target[server.disk]: Xsize[server.disk]: 200 Ysize[server.disk]: 120 Title[server.disk]: Disk Partition Usage PageTop[server.disk]: MaxBytes[server.disk]: 35091004 kmg[server.disk]: KB,MB,GB ShortLegend[server.disk]: YLegend[server.disk]: Utilization LegendI[server.disk]: used LegendO[server.disk]: total Options[server.disk]: gauge,growright,nopercent Unscaled[server.disk]: ymwd ###################################################################### ###################################################################### LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt Target[memory]:
memAvailReal.0&memTotalReal.0:public@ Xsize[memory]: 200 Ysize[memory]: 120 Options[memory]: nopercent,growright,gauge,noinfo Title[memory]: RAM 使用状况 PageTop[memory]: MaxBytes[memory]: 1000000000 kMG[memory]: k,M,G,T,P,X Ylegend[memory]: Bytes ShortLegend[memory]: Bytes LegendI[memory]: RAM 可使用 LegendO[memory]: RAM 总数量 Legend1[memory]: RAM 可使用单位 MB Legend2[memory]: RAM 总数量单位 MB ###################################################################### ##########################Swap ####################### LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt Target[swap]:
memAvailSwap.0&memTotalSwap.0:public@ Xsize[swap]: 200 Ysize[swap]: 120 Options[swap]: nopercent,growright,gauge,noinfo Title[swap]: SWAP 使用状况 PageTop[swap]: MaxBytes[swap]: 1000000000 kMG[swap]: k,M,G,T,P,X Ylegend[swap]: Bytes ShortLegend[swap]: Bytes LegendI[swap]: SWAP 可使用 LegendO[swap]: SWAP 总数量 Legend1[swap]: SWAP 可使用单位 MB Legend2[swap]: SWAP 总数量单位 MB ########################## LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt Target[ Xsize[ Ysize[ Options[ Title[ PageTop[ MaxBytes[ #kMG[ Ylegend[ ShortLegend[ LegendI[ LegendO[ Legend1[ Legend2[ |
在这里我们分别对
配置文件和225的基本类似
附录:
1、为了方便启动SNMP 服务,自己编写一个sh脚本 ,放到/etc/init.d/目录下,文件名snmpd ,赋予该文件执行权限,这样每次在启动SNMP 服务的时候直接可以通过下面命令:
[root@fxs_zlj_01 etc]# /etc/init.d/snmpd |
/etc/init.d/snmpd文件内容:
#!/bin/bash CONF_FILE="/etc/snmp/snmpd.conf" PID_FILE="/var/run/snmpd" start_snmpd() { echo "start snmpd , please waiting ..." /usr/local/sbin/snmpd -p $PID_FILE -c $CONF_FILE -a echo "start snmpd OK!" echo "" } stop_snmpd() { echo "stop snmpd , please waiting ..." kill -9 `cat /var/run/snmpd` rm $PID_FILE echo "stop snmpd OK!" echo "" } case $ start) start_snmpd ;; stop) stop_snmpd ;; restart) if [ -e $PID_FILE ] then stop_snmpd fi start_snmpd ;; *) echo "Usage: $0 (start|stop|restart)" exit 1 esac |
2、让SNMP服务在系统启动时候自己启动
[root@fxs_zlj_01 etc]# cd /etc/rc3.d/ [root@fxs_zlj_01 rc3.d]# ln -s /etc/init.d/snmpd S70snmpd [root@fxs_zlj_01 rc3.d]# ln -s /etc/init.d/snmpd K70snmpd [root@fxs_zlj_01 rc3.d]# ll ?70* lrwxrwxrwx 1 root root 17 Mar 21 21:52 K70snmpd -> /etc/init.d/snmpd lrwxrwxrwx 1 root root 17 Mar 21 21:51 S70snmpd -> /etc/init.d/snmpd [root@fxs_zlj_01 rc3.d]# |
Mrtg 配置文件语法说明:
#工作目录
WorkDir: /var/www/mrtg/225/
#Html文件的目录
Htmldir: /www/mrtg/
#图片文件目录
Imagedir: /www/mrtg/images
#log文件目录
Logdir: /www/mrtg/logs
说明:如果定义workdir 之后htmldir、Imagedir、Logdir会实效,如果想把这些文件分开放置建议不使用workdir选项,而用htmldir、Imagedir、Logdir这3个选项。
#定义页面语言
Language: Chinese
#浏览器自动刷新时间
Refresh:300
#定义信息的来源
Target[memory]:
memAvailReal.0&memTotalReal.0:public@
#定义图片的大小
Xsize[memory]: 200
Ysize[memory]: 120
#定义像的显示方向,是从左到右,还是从右到左
Options[memory]: nopercent,growright,gauge,noinfo
Title[memory]: RAM 使用状况
#页面的标题
PageTop[memory]: RAM
使用状况
#Y坐标的最大值,建议比实际参数大一些,不要大很多,有时候图象会看不到
MaxBytes[memory]: 1000000000
#计算单位
kMG[memory]: k,M,G,T,P,X
#Y轴的单位
Ylegend[memory]: Bytes
#图片下面的单位
ShortLegend[memory]: Bytes
#LegendI & LegendO 是图片下方提示信息
LegendI[memory]: RAM 可使用
LegendO[memory]: RAM 总数量
#Legend1 & Legend2是最下方提示信息
Legend1[memory]: RAM 可使用单位 MB
Legend2[memory]: RAM 总数量单位 MB
#线条的颜色,可以自己定义,注意是6位,16进制的数字
Colours[
说明:
通过Target[memory]:
memAvailReal.0&memTotalReal.0:public@
该数据源可以通过OID(对象标示符)、变量、自己编写脚本的形式收集数据。