四、调整参数,对端口进行流量监控
1、 生成MRTG配置文件mrtg.cfg,用于存放mrtg的配置信息
首先我们新建一个目录,用于存放MRTG配置文件
#mkdir /usr/local/mrtg/etc
#/usr/local/mrtg/bin/cfgmaker --output /usr/local/mrtg/etc/mrtg.cfg luwenju @202.106.0.20
注:luwenju @202.106.0.20是我们所要监控的交换机,luwenju为交换机SNMP的团体名,202.106.0.20是交换机的管理IP地址。交换机上如何开启SNMP请自行参阅资料,有一点切忌:为了服务器的安全起见,交换机上的SNMP配置时应该配置成只读,不允许有写入或者执行权限!
2、修改MRTG配置文件mrtg.cfg
#vi /usr/local/mrtg/etc/mrtg.cfg
把Workdir后的路径改成/usr/local/apache/htdocs 意思是指定mrtg流量页面存放目录. 把#Options[_]: growright, bits 前面的#去掉,意思是定义流量单位大小,然后在另起一行,加入 Language:Chinese 意思是使mrtg支持中文
3、收集交换机每个端口的状态信息并把搜集的信息存储到MRTG配置文件当中
#env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/mrtg.cfg
注:执行时多执行几遍,只到不出现任何提示信息
4、为交换机生成html文件,以供用户访问
# /usr/local/mrtg/bin/indexmaker --output /usr/local/apache/htdocs/index.html --title=ruishengIDC --sort=title --sort=name --sort=descr --sort=original /usr/local/mrtg/etc/mrtg.cfg
5、让MRTG监控信息自动更新
我们可以利用cron进程,让MRTG自动刷新,方法如下
#crontab -e
然后写入*/5 * * * * env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/mrtg.cfg
6.测试
下面我们在浏览器中输入服务器的IP地址或者域名就可以看到我们要监控的流量了,如下图
四、为MRTG做授权访问
倘若一个机房的网络带宽使用情况谁查看都可以,那未免也有点太那啥了吧。。。 因此,我们做授权访问是有必要的
1. 建立虚拟用户
建立这个虚拟用户的目的就在于只让这个用户访问MRTG的监控页面 ,首先我们建立一个目录,用于存放虚拟用户的用户密码
# mkdir /etc/webpasswd
建立虚拟用户,
我们创建一个虚拟用户luwenju,将其配置文件放到/etc/webpasswd/luwenjupwd
#/usr/local/apache/bin/htpasswd -c /etc/webpasswd/luwenjupwd luwenju
注:执行完上述命令后会要求设置此用户的密码,我们输入想要设置的密码即可。Apache自带的htpasswd命令提供了建立和更新存储用户名、密码的文本文件的功能。-c选项表示无论口令文件是否已经存在,都会重新写入文件并删去原有内容。
2、配置用户认证
修改apache配置文件vi /usr/local/apache/conf/httpd.conf 在配置文件最后加入以下内容(倘若我们想在某个虚拟主机中实现身份验证,那么我们就把如下信息加入某个虚拟主机中即可)
<Directory "/usr/local/apache/htdocs">
AuthType Basic
AuthName "Rui Sheng IDC"
AuthUserFile /etc/webpasswd/luwenjupwd
Require user luwenju
</Directory>
注:Directory定义我们针对那么目录进行授权,我们配置MRTG时让html文件生成到了/usr/local/apache/htdocs
AuthType 的意思是采用哪种模式进行验证,我们使用basic
AuthName 的意思是登陆窗口的名称
AuthUserFile 的的意思是指定用户的密码配置文件
Require user 的意思是允许哪个用户来访问
OK,完成上面设置后我们重启一下Apache,然后再浏览器中访问时会弹出以下页面
然后我们输入正确的用户名和密码后就可以看到MRTG的流量监控页面了,如下图
在这篇文章中我有一个很大的疑惑:我没有在Linux系统中安装SNMP,理论上来讲,MRTG既然是用SNMP协议去搜集交换机上的信息那么系统中就用该安装SNMP。我在实际环境中并没有安装SNMP,MRTG也照样正常运行。