共计 7263 个字符,预计需要花费 19 分钟才能阅读完成。
这篇文章给大家分享的是有关 RHEL4U5 如何搭建网络检测服务 SNMP 的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。
使用的系统为 RHEL4U5, 本机 IP 地址为 192.168.1.100
1. 请确保你的系统安装了以下软件包
[root@zone src]# rpm -qa |grep snmp
net-snmp-5.1.2-11.EL4.10
net-snmp-utils-5.1.2-11.EL4.10
net-snmp-devel-5.1.2-11.EL4.10
net-snmp-libs-5.1.2-11.EL4.10
注意系统有可能会提示你装
beecrypt-devel-3.1.0-6.i386.rpm
elfutils-devel-0.97.1-4.i386.rpm
elfutils-libelf-devel-0.97.1-4.i386.rpm
这些文件分别在第二张和第四张盘中。
2. 修改 /etc/snmp/snmpd.conf
去掉如下一行的注释
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
在大约 55 行处添加如下一行
view systemview included .1.3.6.1.2.1.2
把如下行
access notConfigGroup any noauth exact systemview none none
改作:
access notConfigGroup any noauth exact mib2 none none
3. 启用 snmpd 服务
#service snmpd start
#chkconfig –levle 2345 snmpd on
4. 查看端口的开启状况
# netstat -tunlp |grep snmp
tcp 0 0 0.0.0.0:199 0.0.0.0:* LISTEN 4973/snmpd
udp 0 0 0.0.0.0:161 0.0.0.0:* 4973/snmpd
二、MRTG 生成供浏览图像需要 httpd 服务的支持,同时也需要 gd、libpng 和 zlib 三个软件包的支持,而 gd 的正常运行也需要其它的几个软件,下面一并安装它们。
# rpm -qa | grep libpng
libpng-1.2.7-1
libpng10-1.0.16-1
libpng10-devel-1.0.16-1
libpng-devel-1.2.7-1
# rpm -qa | grep ^libxml
libxml2-python-2.6.16-6
libxml2-devel-2.6.16-6
libxml2-2.6.16-6
# rpm -qa | grep ^gd-
gd-2.0.28-4
gd-devel-2.0.28-4
# rpm -qa | grep jpeg
libjpeg-6b-33
libjpeg-devel-6b-33
# rpm -qa | grep zlib
zlib-1.2.1.2-1.2
zlib-devel-1.2.1.2-1.2
# rpm -qa | grep freetype
freetype-2.1.9-1
freetype-devel-2.1.9-1
我的已经安装过了,如果没有请根据自己的情况查漏补缺
请确保你的软件包的版本号等于或高于以上显示的版本
三、安装配置 MRTG
1. 下载 mrtg, 目前最新版本为 mrtg-2.15.2.tar.gz
#tar zxvf mrtg-2.15.2.tar.gz
# cd mrtg-2.15.2
# ./configure –prefix=/usr/local/mrtg –sysconfdir=/etc/mrtg –with-gd=/usr/local/gd2/include –with-gd-lib=/usr/local/gd2/lib –with-gd-inc=/usr/local/gd2/include –with-png=/usr/local/include –with-png-lib=/usr/local/lib –with-png-inc=/usr/local/include –with-zlib=/usr/local/zlib/include –with-zlib-lib=/usr/local/zlib/include –with-zlib-inc=/usr/local/zlib/include
# make
# make install
3. 基本配置
生成主配置文件
#/usr/local/mrtg/cfgmaker
public@localhost
/etc/mrtg/mrtg.cfg
编辑 /etc/mrtg/mrtg.cfg
将
#WorkDir:/home/http/mrtg
去掉注释并改为
WorkDir: /usr/local/apache/htdocs/mrtg (此处是你的 httpd 默认的主目录)
去掉如下行的注释
# Options[_]: growright, bits
添加如下行,实现网页中的中文字符显示
Language:gb2312
生成 MRTG 网页主页面文件
#/usr/local/mrtg/bin/indexmaker /etc/mrtg/mrtg.cfg –output=/usr/local/apache/htdocs/mrtg/index.html –title= My MRTG
4. 启动 MRTG
#env LANG=C /usr/local/mrtg/bin/mrtg /etc/mrtg/mrtg.cfg
这个命令会输出一些错误信息,一般可以安全忽略,连续执行三次此命令即可。
5.MRTG 生成的 web 页面是静态的,为了能让其不断的刷新,需要将以上命令添加进 crontab
#crontab -e
添加如下一行
*/3 * * * * env LANG=C /usr/local/mrtg/bin/mrtg /etc/mrtg/mrtg.cfg
注:此行表示每三分钟刷新一次,你可以根据自己的需要修改刷新时间间隔。
6. 安装完毕,可以去查看结果了, 在浏览器输入形如以下地址
http://192.168.1.100/mrtg
(IP 地址为你的机器 IP)
四、一个示例:内存使用监视
1. 新建一个存放脚本的文件夹
#mkdir -pv /usr/local/apache/htdocs/mrtgsh
2. 建立脚本文件
#vi /usr/local/apache/htdocs/mrtgsh/mrtg.memory
添加如下脚本:
#!/bin/bash
# run this script to check the mem usage.
totalmem=`/usr/bin/free |grep Mem |awk {print $2} `
usedmem=`/usr/bin/free |grep Mem |awk {print $3} `
UPtime=`/usr/bin/uptime | awk {print $3 $4 $5} `
echo $totalmem
echo $usedmem
echo $UPtime
让其具有运行权限
#chmod 755 /usr/local/apache/htdocs/mrtgsh/mrtg.memory
3. 编辑 /etc/mrtg/mrtg.cfg
添加如下内容
Target[memory]: `/usr/local/apache/htdocs/mrtgsh/mrtg.memory`
MaxBytes[memory]: 4096000
Title[memory]:Memory Usages
ShortLegend[memory]:
kmg[memory]:kB,MB
kilo[memory]:1024
YLegend[memory]: nbsp; Memory Usage :
Legend1[memory]: nbsp; Total Memory :
Legend2[memory]: nbsp; Used Memory :
LegendI[memory]: nbsp; Total Memory :
LegendO[memory]: nbsp; Used Memory :
Options[memory]: growright,gauge,nopercent
PageTop[memory]: H1 Memory Usages /H1
4. 重新生成主页面文件
#/usr/local/mrtg/bin/indexmaker /etc/mrtg/mrtg.cfg –output=/usr/local/apache/htdocs/mrtg/index.html –title= My MRTG
5. 可根据情况重新启动 MRTG,然后就可以查看效果了。
侦测 CPU 负载量
建立脚本 mrtg.cpu
#!/bin/bash
cpuusr=`/usr/bin/sar -u 1 3 | grep Average | awk {print $3} `
cpusys=`/usr/bin/sar -u 1 3 | grep Average | awk {print $5} `
UPtime=`/usr/bin/uptime | awk {print $3 $4 $5} `
echo $cpuusr
echo $cpusys
echo $UPtime
echo
www.zhang.org
这里写上你主机名称。
#vi /etc/mrtg/mrtg.cfg
添加如下内容
Target[localhost]: `/usr/local/apache/htdocs/mrtg/cpu/mrtg.cpu`
MaxBytes[localhost]: 100
Options[localhost]: gauge, nopercent, growright
YLegend[localhost]: CPU loading (%)
ShortLegend[localhost]: %
LegendO[localhost]: nbsp; CPU 使用者負載;
LegendI[localhost]: nbsp; CPU 純系統負載;
Title[localhost]: CPU ?t???v
PageTop[localhost]: H1 VBird 主機 CPU 負載率 /H1
TABLE
TR TD System: /TD TD RedHat 6.1 in Linux Kernel 2.2.19 /TD /TR
/TABLE
同样我们也可以即时侦测上线人数
建立脚本 mrtg.person.sh
#!/bin/bash
# 这个程式主要在计算有多少人以 WWW 的方式连进我们的主机!
# 1. 计算连线数目
echo `netstat -a | grep www|awk {print $5} |sort | wc -l|awk {print$1 – 1} `
# netstat -a | grep www|awk {print $5} |sort| uniq
# 2. 计算连线人数:
echo `netstat -a | grep www|awk {print $5} |cut -d : -f1|sort| uniq |wc -l | awk {print $1 – 1} `
# netstat -a | grep www|awk {print $5} |cut -d : -f1|sort| uniq
# 3. 输出时间
UPtime=`/usr/bin/uptime | awk {print $3 $4 $5} `
echo $UPtime
echo your.host.name
#vi /etc/mrtg/mrtg.cfg
添加如下内容
### CPU Loading detecting …
Target[tsai.adsldns.org_person]: `/usr/local/mrtg-2/bin/mrtg.person.sh` == 档案放置的路径与名称
MaxBytes[tsai.adsldns.org_person]: 500
Options[tsai.adsldns.org_person]: gauge, nopercent, growright
YLegend[tsai.adsldns.org_person]: Online Users
ShortLegend[tsai.adsldns.org_person]: %
LegendI[tsai.adsldns.org_person]: nbsp; 连线数目 :
LegendO[tsai.adsldns.org_person]: nbsp; 上线人数 :
Title[tsai.adsldns.org_person]: WWW 上线人数统计表
PageTop[tsai.adsldns.org_person]: H1 WWW 主机上线人数 /H1
TABLE
TR TD System: /TD TD Aerosol Lab. in Redhat 6.1 Kernel 2.2.18 /TD /TR
TR TD Maintainer: /TD TD VBird /TD /TR
/TABLE
注意要重新生成页面文件,重启 mrtg……
如图显示:
以下是一个 apache 连接的例子
首先再 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]: h2 apache 连接数 /h2
Target 指的是 mrtg 从那里取画曲线的值, 此处可以从 snmp 和脚本取值, 如从脚本取值需注意, 需要前后用 ` 来指定脚本路径而不是 .
[] 指这个配置段的名称, 这里为 apache_conn, 届时会在 mrtg 的 workdir 里建立同名的目录
Maxbytes 指 mrtg 取值后能表现的最大值
YLegend 指再图标中纵向的名称
ShortLegend 指在图标中数值后面所跟的单位
LegendI 传递过去的第一个值
LegendO 传递过去的第二个值
Title 网页 title
Pagetop 网页显示名称
mrtg.apa.pl
#!/usr/bin/perl
$hostname=`hostname`;
$hostname=~s/\s+$//;
$apache_all_conn=`netstat -an|grep 192.168.0.1:80|wc -l`;
$apache_conn=`netstat -an|grep 192.168.0.1: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
以上脚本为 perl 编写, 由于 apache 的连接可以使用 netstat 查看, 所以我用里一个简单的 shell 命令组合来获取 apache 的总连接数和当前建立连接的连接数.
需要注意以下几点
1) 使用命令传递值给 mrtg 时,mrtg 只能接受 4 个参数, 真正用于画图的只有 2 个
2) 4 个参数必须依次为 值 1, 值 2, 运行时间, 主机名
3) 4 个参数后不得有 \n 等换行符
由于 mrtg.cfg 的改变, 所以必须依次使用以下命令
/usr/local/mrtg/bin/indexmaker –output=/var/www/mrtg/index.html /etc/mrtg.cfg
使用 mrtg 的 indexmaker 重生成 index.html 文件, 否则你无法看到新加入的 apache 连接的监控.
/usr/local/mrtg/bin/mrtg /etc/mrtg.cfg
使用 mrtg 命令传入数值, 同样会报 3 次错, 忽略即可
再打开浏览器, 输入地址, 应该可以看到首页除了网卡的流量外再下方会加入 apache 连接的图
确认无误后, 可再 /etc/mrtg.cfg 里加入
RunAsDaemon: Yes
在使用一次
/usr/local/mrtg/bin/mrtg /etc/mrtg.cfg
mrtg 就会使用 daemon 方式运行
你以后要做的只是每次使用浏览器看看图就可以了, 是不是很轻松
感谢各位的阅读!关于“RHEL4U5 如何搭建网络检测服务 SNMP”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!