首先我们一起来看三个问题
① MRTG在监控交换机时,会为每个端口都生成一个页面,我们访问MRTG流量监控页面存放的目录时监控了多少个 端口就会看到有多少个页面,监控一台交换机我们查看时很方便,因为一般也就是24或48个页面(实际情况根据交换机端口的个数而定)。请问当我们需要监控十个交换机时怎么办?每个按24个端口算的话我们查看时还要面临240个页面。不仅是流量图查看起来不方便,而且240个端口的配置信息都存储到一个配置文件里面(mrtg的配置文件),使用时非常不方便,今天我们就解决这个问题------为每台交换机分别生成单独的流量页面放置目录和单独配置文件
② 我们在查看MRTG流量监控的主页面时默认情况下是看不到哪个页面是哪个端口的,如下图,我们要想知道是哪个端口的流量必须要点开这个图片才可以看到,在查看流量时非常不便,所以我们今天要把这个东西改成我们想要的,必须改为用户名称+机柜号+端口号+用户IP+联系方式
③ IDC机房服务器以企业单台服务器居多,所以用户并没有自己的交换机,但用户要求要能时刻查看自己服务器的流量。这个时候我们需要给用户提供一个单独的URL,以便用户方便查看,而且为了安全起见,用户在访问自己的MRTG流量监控页面时需要提供用户名和密码,而且只能看到自己服务器的流量--------实现MRTG单个端口流量页面分离(我给它取的名字,嘿嘿)
问题一解决方案:
在此我们就不介绍MRTG是怎么安装的了,关于MRTG的安装和基本配置请参阅http://luwenju.blog.51cto.com/620835/246892 Apache安装路径为/usr/local/apache, Mrtg安装路径为/usr/local/mrtg。本次我们拿两台真实环境中的交换机来监控,所以图片上一些敏感的信息我抹掉了,不清楚的地方请跟帖提出。
我们监控的两台交换机的名字分别为E16和I9,下面我们为两台交换机建立放置MRTG配置文件的目录
# mkdir -p /usr/local/mrtg/etc/e16 //用于放置E16交换机的配置文件
# mkdir /usr/local/mrtg/etc/i9 //用于放置I9交换机的配置文件
为每台交换机生成配置文件
# /usr/local/mrtg/bin/cfgmaker --output /usr/local/mrtg/etc/e16/mrtg.cfg public@121.X.X.160 //为E16交换机生成配置文件,放置到/usr/local/mrtg/etc/e16目录下
# /usr/local/mrtg/bin/cfgmaker --output /usr/local/mrtg/etc/i9/mrtg.cfg public@121.X.X.10
//为I9交换机生成配置文件,放置到/usr/local/mrtg/etc/i9目录下
为每台交换机建立放置流量监控页面的目录
[root@luwenju mrtg]# mkdir /usr/local/apache/htdocs/e16 //e16交换机html 文件放置目录
[root@luwenju mrtg]# mkdir /usr/local/apache/htdocs/i9 //I9交换机html文件放置目录
修改E16交换机的配置文件
[root@luwenju mrtg]# vi /usr/local/mrtg/etc/e16/mrtg.cfg
WorkDir: /usr/local/apache/htdocs/e16 //监控E16交换机生成的流量图放置路径
Options[_]: growright, bits //定义流量单位
Language:Chinese //让MRTG支持中文
修改I9交换机的配置文件
[root@luwenju mrtg]# vi /usr/local/mrtg/etc/i9/mrtg.cfg
分别对两台交换机的端口进行扫描
[root@luwenju mrtg]# env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/e16/mrtg.cfg
[root@luwenju mrtg]# env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/i9/mrtg.cfg
为两台交换机分别生成html主目录
[root@luwenju mrtg]# /usr/local/mrtg/bin/indexmaker --output /usr/local/apache/htdocs/e16/index.html --title=E16 /usr/local/mrtg/etc/e16/mrtg.cfg
[root@luwenju mrtg]# /usr/local/mrtg/bin/indexmaker --output /usr/local/apache/htdocs/i9/index.html --title=I9 /usr/local/mrtg/etc/i9/mrtg.cfg
在cron服务里面添加以下命令,让MRTG每5分钟扫描一次交换机流量
*/5 * * * * env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/e16/mrtg.cfg
*/5 * * * * env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/i9/mrtg.cfg
配置完然后重启Apache后,我们在浏览器中输入MRTG的IP地址,然后可以看到两个交换机放置html的目录(Apache在允许列表的情况下),我们点击E16,然后就会出现E16交换机的流量监控图
问题二解决方案:
我们可以看到下图中圈出的内容,下面我们一起看一下怎么把这些内容改为我们想要的
我们需要修改那个端口的描述信息,就需要修改哪个端口的配置文件,在此我们修改E16交换机 1/0/1端口的描述信息
[root@luwenju e16]# vi /usr/local/mrtg/etc/e16/mrtg.cfg
图中蓝色部分是系统自己对端口的描述,这个我们不需要修改。我们只修改红色标出的部分即可,我们可以将它修改为lu_wen_ju
然后重新扫描
[root@luwenju e16]# env LANG=C /usr/local/mrtg/bin/mrtg /usr/local/mrtg/etc/e16/mrtg.cfg
然后重新生成html页面
[root@luwenjue16]#/usr/local/mrtg/bin/indexmaker --output /usr/local/apache/htdocs/e16/index.html --title=E16 /usr/local/mrtg/etc/e16/mrtg.cfg
下面我们在查看时,就看到了我们想要的信息,如下图
问题三解决方案:
因为所有的MRTG监控都运行在一台服务器上,在对用户提供时时在线查看流量之前我们应该先对全局监控做一个授权访问,要不然用户不但能查看自己的流量,还能查看所有端口流量,那样就麻烦啦~
[root@luwenju e16]# mkdir /usr/local/mrtg/passwd //建立一个用户放置密码的目录
[root@luwenju e16]# /usr/local/apache/bin/htpasswd -c /usr/local/mrtg/passwd/luwenjupwd luwenju //新建用户luwenju 密码配置文件为luwenjupwd ,生成到/usr/local/mrtg/passw目录下
[root@luwenju ~]# vi /usr/local/apache/conf/httpd.conf //在Apache配置文件中做授权访问
<Directory "/usr/local/apache/htdocs"> //需要授权的目录,E16和I9两个HTML文件夹都在这个目录下
AuthType Basic //验证模式,使用BASIC
AuthName "Welcom To luwenju" //欢迎信息
AuthUserFile /etc/mrtgpasswd/luwenjupwd //密码配置文件路径
Require user luwenju //授权的用户
</Directory>
测试,想查看E16和I9的流量时需要提供用户名和密码才可以
下面我们要开始对个别端口的监控页面做单独的授权访问了,现在有一个E16交换机的某个用户需要做授权访问,这个用户大家都叫他juzi,所以我们在监控页面E16文件夹下新建一个文件夹,名字为juzi,用户放置这个用户交换机端口的流量监控信息
[root@luwenju ~]# mkdir /usr/local/apache/htdocs/e16/juzi
[root@luwenju ~]# cd /usr/local/apache/htdocs/e16/juzi/
我们该怎么样把某个端口的页面单独拿出来呢?直接cp出来肯定是扯淡,一个最好的方法是使用软连接。如下图,我们要把这个端口拿出来做授权
单击上图后,我们会在I浏览器中看到如下信息。就是XXXXXXX.html。这个html文件就是这个端口的主页面,所以我们要对它进行授权访问
这个地方用到了8个文件,分别是某端口自己的页面文件、day.png 、 week.png、 month.png、 year.png、mrtg-1.png、mrtg-r.png、 mrtg-m.png 我们要把这个几个文件都软连接到juzi目录下,如下图
做完之后我们在浏览器中访问juzi的目录,可是服务器提示要求输入luwenju的用户名和密码,这个用户名是MRTG全局用户,所以juzi这个用户是不能使用的,所以我们要对这个目录做授权
[root@luwenju htdocs]# /usr/local/apache/bin/htpasswd -c /usr/local/mrtg/passwd/juzipwd juzi //新建用户juzi 配置文件juzipwd 放置到/usr/local/mrtg/passwd目录下
然后我们打开Apache配置文件,在配置的全局用户授权访问下面新添加一个,如下图
在浏览器中输入http://x.x.x.x/e16/juzi
这个时候服务器会提示输入用户名和密码,我们在上面设置的用户名是juzi 密码juzi
输入完回车后会进入
下图为用户juzi的流量监控页面,用户juzi只能看到自己的流量监控图,无权限看到其它端口流量
由于笔者水平有限,语言表达能力极差,不明之处请跟帖
鸣谢大师兄 海龙 、 Gogllen
本文出自 “陆文举” 博客,请务必保留此出处http://luwenju.blog.51cto.com/620835/263327
转载于:https://blog.51cto.com/tianxue/281649