扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
好了,休息一下,去忙忙别的,等你回来的时候,是不是发现漂亮的走线图(图三)已经形成了?
图 三
如上图所示,笔者这里的的star(实达)交换机的资料、流量、持续工作时间、最大流量等等都以中文的方式显示出来,可以方便地查询与分析了。
这里笔者只以一台获取交换机为例,简单介绍了mrtg的使用方法,其实mrtg更可以监视router、打印机、服务器、甚至ups电源等设备。当您使用mrtg来查看网络中大量设备的流量和负载情况的时候,您才会真正体会到它的方便之处。
5、本机信息的监管
或许您跟笔者一样,您的这台NMS同时也担任着内网中其他的服务,您也想将该机的CPU、内存和网卡流量都记录下来,方便监视,利用mrtg和snmp服务,我们自己再配合写两个小的shell脚本,就能完成上面的功能了。
A.获取本机网卡流量
在前面,我们已经安装snmp包,现在让我们来配置/etc/snmp/snmpd.conf文件,使其能配合mrtg很好地工作了。
首先,编辑/etc/snmp/snmpd.conf文件:
[root@ netserver bin]#vi /etc/snmp/snmpd.conf
把下面一行前面的#号去掉:
#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
把以下语句的语句:
access notConfigGroup "" any noauth exact systemview none none
改成:
access notConfigGroup "" any noauth exact mib2 none none
接下来我们启动snmpd服务
[root@ netserver bin]#snmpd
如果想要每次开机的时候就自动执行snmpd,请
[root@ netserver bin]#setup
然后将System services下面的snmpd服务打开
接下来,我们用与刚才设置交换机相似的步骤来进行。
新建立一个目录来存放net相关信息:
[root@ netserver bin]#mkdir –p /var/www/html/mrtg/local/net [root@ netserver bin]# ./cfgmaker public@你本机的ip > /var/www/html/mrtg/local/net /mrtg.cfg |
修改自动生成的mrtg.cfg文件(因为和上面的交换机的设置类似,就不解释了)
[root@ netserver bin]#vi /var/www/html/mrtg/local/net/mrtg.cfg
修改以下几行为(没有的请添加)
WorkDir: /var/www/html/mrtg/local/net Options[_]:growright,bits Language:Chinese Refresh: 300 WriteExpires: Yes |
运行mrtg:
执行以下命令3次(前两次会提示一些警告信息,不用理会)
[root@ netserver bin]#./mrtg /var/www/html/mrtg/local/net/mrtg.cfg
这里我们就不生成index.html页面了,等一下自己手工编写一个,将cpu和内存的放在一起,方便查看一些。
B.获取本机CPU使用情况
新建立一个目录来存放net相关信息:
[root@ netserver bin]#mkdir –p /var/www/html/mrtg/local/cpu
手工编辑一个mrtg.cfg文件:
[root@ netserver bin]#vi /var/www/html/mrtg/local/cpu/mrtg.cfg
输入以下内容:
#/var/www/html/mrtg/local/cpu/mrtg.cfg Target[CPU]: `/var/www/html/mrtg/local/cpu/cpu.sh` #调用的外部脚本命令的地址,等一下我会给出cpu.sh的代码 |
好,接下来让我们写一个获取我们所需要值的脚本文件cpu.sh
[root@ netserver bin]#vi /var/www/html/mrtg/local/cpu/cpu.sh
脚本内容如下:
#!/bin/bash tmp=`sar -u 1 5 | tail -n 1` |
#上面一句的sar –u 1 5 表示以1秒为单位,连续取5次cpu的负载,这样得到的平均值更加准确一些:
cpuuser=`echo $tmp | awk ' {print $3}' ` cpusystem=`echo $tmp | awk ' {print $5}' ` echo $cpuuser echo $cpusystem echo 0 echo 0#因为我没有取当前时间和系统已运行的时间,所以这里取两个0,读者朋友可以试一下取消他们输出的html会变成怎样 |
然后改变cpu.sh的权限为755:
[root@ netserver bin]#chmod 755 /var/www/html/mrtg/local/cpu/cpu.sh
运行mrtg,执行以下命令3次(前两次会提示一些警告信息,不用理会)
[root@ netserver bin]#./mrtg /var/www/html/mrtg/local/cpu/mrtg.cfg
C.获取本机内存/Swap使用情况
与上面一个例子很类似,我给出操作,只解释不同的地方:
[root@ netserver bin]#mkdir –p /var/www/html/mrtg/local/memory
手工编辑一个mrtg.cfg文件:
[root@ netserver bin]#vi /var/www/html/mrtg/local/memorty/mrtg.cfg
输入以下内容:
WorkDir: /var/www/html/mrtg/local/memory Target[MEMORY]: `/var/www/html/mrtg/local/memory/memory.sh` |
接下来是一个小脚本程序memory.sh:
[root@ netserver bin]#vi /var/www/html/mrtg/local/memory/memory.sh
脚本内容如下:
#!/bin/bash tmp=`sar -r 1 5 | tail -n 1` #上面一句的sar –r 1 5 表示以1秒为单位,连续取5次内存和Swap的负载,这样得到的平均值更加准确一些 memory=`echo $tmp | awk ' {print $4}' ` swap=`echo $tmp | awk ' {print $10}' ` echo $memory echo $swap echo 0 echo 0 |
然后改变memory.sh的权限为755:
[root@ netserver bin]#chmod 755 /var/www/html/mrtg/local/memory/memory.sh
运行mrtg,执行以下命令3次(前两次会提示一些警告信息,不用理会)
[root@ netserver bin]#./mrtg /var/www/html/mrtg/local/memory/memory.cfg
D.获取本机CPU和I/O电压情况
由于我们的NMS很可能同时也是一台服务器,例如笔者用HP Netserver LH6000作为NMS,一旦CPU/主板烧毁,维护价格不低,因此随时获得该机器的电压/风扇/温度等情况以方便我监视管理是非常必要的。
首先,让我们将lm_sensors使用起来。
[root@ netserver bin]# sensors-detect
之后会询问一些问题,各位可以自行决定,当然如果觉得麻烦,可以一路回车就行了。最后出现类似如下信息:
WARNING! If you have some things built into your kernel, the #----cut here---- To make the sensors modules behave correctly, add these lines to either #----cut here---- |
将下面部分(这是上面的第一段cut中的部分,具体内容请根据您测试出的结果为准)加入,以方便开机就能引导:
# I2C adapter drivers modprobe i2c-isa # I2C chip drivers modprobe via686a [root@ netserver bin]#vi /etc/modules.conf |
将下面部分(这是上面的第二段cut中的部分,具体内容请根据您测试出的结果为准)加入,以方便开机加载:
alias char-major-89 i2c-dev
之后,请重新启动计算机:
[root@ netserver bin]#reboot
重新启动后,输入sensors命令查看主版信息
[root@ netserver root]# sensors
如果出现了类似:
CPU core: +1.59 V (min = +0.00 V, max = +2.18 V) +2.5V: +2.40 V (min = +2.24 V, max = +2.74 V) I/O: +3.25 V (min = +2.95 V, max = +3.62 V) +5V: +4.92 V (min = +4.47 V, max = +5.49 V) +12V: +11.27 V (min = +10.79 V, max = +13.18 V) CPU Fan: 6428 RPM (min = 3000 RPM, div = 2) P/S Fan: 0 RPM (min = 3000 RPM, div = 2) |
这样的消息,表示我们已经成功了。
下来,让我们将它和mrtg配合起来工作:
[root@ netserver root]#cd /usr/local/mrtg/bin
与上面的思路类似,我给出操作,只解释不同的地方:
[root@ netserver bin]#mkdir –p /var/www/html/mrtg/local/vol
手工编辑一个mrtg.cfg文件
[root@ netserver bin]#vi /var/www/html/mrtg/local/vol/mrtg.cfg
输入以下内容:
WorkDir: /var/www/html/mrtg/local/vol Target[VOL]: `/var/www/html/mrtg/local/vol/vol.sh` |
接下来是一个小脚本程序vol.sh
[root@ netserver bin]#vi /var/www/html/mrtg/local/vol/vol.sh
脚本内容如下:
#!/bin/bash sensors > vol.temp tmp1=`grep 'CPU core' vol.temp | awk ' {print $3}'` cpu_core_vol=`expr substr $tmp1 2 4` echo $cpu_core_vol*1000 | bc #为精确表示电压,我采用毫V作为电压单位 tmp2=`grep 'I/O' vol.temp | awk ' {print $2}'` io_vol=`expr substr $tmp2 2 4` echo $io_vol*1000 | bc echo 0 echo 0 |
然后改变vol.sh的权限为755:
[root@ netserver bin]#chmod 755 /var/www/html/mrtg/local/vol/vol.sh
运行mrtg,执行以下命令3次(前两次会提示一些警告信息,不用理会)
[root@ netserver bin]#./mrtg /var/www/html/mrtg/local/vol/mrtg.cfg
E.获取本机风扇CPU和显卡风扇转速情况 (基本和上面相似,只有mrtg.cfg和sh脚本文件不同,所以不解释)
[root@ netserver bin]#mkdir –p /var/www/html/mrtg/local/fan [root@ netserver bin]#vi /var/www/html/mrtg/local/fan/mrtg.cfg |
输入以下内容:
WorkDir: /var/www/html/mrtg/local/fan Target[FAN]: `/var/www/html/mrtg/local/fan/fan.sh` |
接下来是一个小脚本程序fan.sh:
[root@ netserver bin]#vi /var/www/html/mrtg/local/temp/temp.sh
脚本内容如下:
#!/bin/bash sensors > fan.temp grep 'CPU Fan' fan.temp | awk ' {print $3}' grep 'P/S Fan' fan.temp | awk ' {print $3}' echo 0 echo 0 |
然后改变fan.sh的权限为755:
[root@ netserver bin]#chmod 755 /var/www/html/mrtg/local/fan/fan.sh
运行mrtg,执行以下命令3次(前两次会提示一些警告信息,不用理会)
[root@ netserver bin]#./mrtg /var/www/html/mrtg/local/fan/mrtg.cfg
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者