mrtg网络监控配置笔记

随着三月的到来,skidu在北京的培训也随之步入尾声,在兄弟连的最后一个由老师安排的项目也如期而至。
项目要求是分别配置Linux+Apache+PHP+MySQL+sphinx、Linux+Apache+MongoDB+PHP两个环境,并分别在这个环境中写一个简易的留言板程序,然后再上一台机器做lvs负载均衡,接着就是网络监控、邮件报警神马的。
今天先分享一下我的snmp+mrtg网络监控的配置笔记吧



skidu的实现环境:虚拟机CentOS 5.5 监控管理软件: snmp + mrtg 为了实现监控硬件,咱首先得安装snmp服务,嗯,这个直接yum上吧
yum -y install net-snmp*

当屏幕显示 Complate! 字样后安装就已经完成。
接下来咱需要修改一下snmp的配置信息,它被存放在/etc/snmp/snmpd.conf
使用vi查看一下可以发现配置信息内容很多,其实咱并不需要看懂这些,把这个配置文件删掉,然后使用snmpconf命令来生成一个snmpd.conf配置信息文件。

·输入snmpconf并回车,根据屏幕提示选择snmpd.conf项生成配置文件
·再选择Access Control Setup项进行监控访问控制信息配置
·接下来咱选择a SNMPv1/SNMPv2c read-only access community name,使用SNMPv1版本只读
·这一步会设置监控密码,直接键入public吧
·然后设置监控访问允许信息,直接敲回车则使用默认值all允许所有人来查看监控信息
·再设置别人可以查看哪些监控信息,这里敲回车使用默认值允许查看所有监控信息,如果需要单独设置的话在这里分配相应的oid即可
·到这里配置差不多就完成了,输入finished
·然后查看屏幕提示,如果有quit字样则键入quit并回车退出

到这里,配置文件就生成好了,如果需要更改配置信息可以手工编辑它,配置格式为

community [允许查看的人] [允许查看的监控项目]

然后启动snmp服务

service snmpd start

此时可以使用snmp的相关命令查看指定硬件信息的监控内容了。
snmp使用的是系统OID来监控系统硬件,比如.1.3.6.1.4.1.2021.11.50.0为1分钟CPU的使用率、.1.3.6.1.2.1.25.2.3.1.6.2为内存使用量、.1.3.6.1.2.1.25.1.6.0为系统当前进程数、.1.3.6.1.4.1.2021.10.1.5.3为系统15分钟负载信息等。
OID这玩意太多了,咱就懒得记了,也记不了这么多,直接查阅相关帮助文档吧,里面会罗列出常用的监控项目OID。

snmp常用命令:

查看系统所有oid及oid名称:

snmp walk -v1 -cpublic localhost -m all

查看该oid的描述:

snmptranslate -Td .1.3.6.1.4.1.2021.9.1.8.1

单个oid查看:

snmptranslate -T1 .1.3.6.1.4.1.2021.9.1.8.1

查看整个oid全称:

snmptranslate -Of .1.3.6.1.4.1.2021.9.1.8.1

查看该oid的oid名称和值:

snmpget -v1 -cpublic localhost .1.3.6.1.4.1.2021.9.1.8.1

此时监控出来的信息是什么样的?

[root@skidu ~]# snmpget -v1 -cpublic localhost .1.3.6.1.4.1.2021.11.53.0
UCD-SNMP-MIB::ssCpuRawIdle.0 = Counter32: 284131

上面skidu查看了一下系统15分钟的CPU使用率,监控结果是284131。
嗯,很费劲,使用率竟然是一个数值而不是百分比╮(╯▽╰)╭
好吧,为了让枯燥的监控变得更人性化一些,咱请出mrtg兄来为我们绘制监控图吧~
当然,这之前咱还是得先安装一下程序:

yum -y install mrtg*

安装完毕后mrtg会在/var/www下创建一个mrtg目录并存放一些生成网页需要的图片等文件
同时mrtg会生成一个apache包含配置文件在/etc/httpd/conf.d/mrtg.conf,这个也可以根据自己的实际情况进行修改,修改完毕后记得重启Apache

接下来是mrtg配置文件的修改,配置文件位于/etc/mrtg/mrtg.cfg

配置内容有点多,详细请参考官方的帮助文档吧:
http://oss.oetiker.ch/mrtg/doc/mrtg-reference.en.html

这里的skidu就直接贴上自己的网卡流量监控配置信息

HtmlDir:/usr/local/apache2/htdocs/mrtg
#设置监控信息网页存放的位置
ImageDir:/usr/local/apache2/htdocs/mrtg
#生成的图片存放的位置
LogDir: /var/lib/mrtg
#监控日志文件存放位置
ThreshDir: /var/lib/mrtg
#====eth0网卡流量监控配置开始
Target[eth0_192.168.22.2]: /192.168.22.2:public@192.168.22.2:
#标记一个监控名字:  /被监控网卡的接口(网卡可以直接使用ip替代oid):登录钥匙@被监控的机器的ip
Options[eth0_192.168.22.2]: growright
#选项:右对齐
Directory[eth0_192.168.22.2]: 192.168.22.2-eth0
#设置该监控信息存放目录的名字
MaxBytes[eth0_192.168.22.2]: 100000000
#最大字节数:100000000    默认以字节为单位
Kmg[eth0_192.168.22.2]: K,M,G
#自动切换单位,以1000为倍数
YLegend[eth0_192.168.22.2]: Bytes per Second
#Y轴标题
ShortLegend[eth0_192.168.22.2]: B/s
#X轴标题(单位)
Legend1[eth0_192.168.22.2]: 每秒流入量 (单位 Bytes)
#图示说明
Legend2[eth0_192.168.22.2]: 每秒流出量 (单位 Bytes)
#图示说明
LegendI[eth0_192.168.22.2]: 流入:
#图示说明
LegendO[eth0_192.168.22.2]: 流出:
#图示说明
Title[eth0_192.168.22.2]: eth0网络流量[192.168.22.2]
#设置监控页面title部分的标题
PageTop[eth0_192.168.22.2]: <h1>eth0网络流量[192.168.22.2]</h1>
#设置页面内顶部的标题

生成图片和监控网页:
打开/etc/cron.d/mrtg文件可以并复制LANG=xxxxxx这一句命令

LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok

然后执行这条命令,此时系统会有一些报错,不用理会它,重复执行直到不报错为止

接着我们使用indexmaker命令生成一个监控首页

indexmaker --output /usr/local/apache2/htdocs/mrtg/index.html --title="skidu的监控信息" /etc/mrtg/mrtg.cfg
格式:indexmaker --output [设置首页存放的为止] --title="[这里写网页头部需要显示的标题]" [mrtg配置文件存放的位置]

至此整个配置流程已经完成了,浏览器访问 192.168.22.2/mrtg 查看监控网页(实际地址根据自己的服务器配置决定)

标签: mrtg, snmp, 网络监控

仅有一条评论

  1. [...] 之前在兄弟连学习的时候接触过SNMP+MRTG,但是俺实在无法忍受它的配置以及乱码问题(归根结底还是想看见一个完整的中文界面- -),于是skidu开始寻找一些别的同类软件zabbix、awstats就此进入了我的视线 [...]

添加新评论