MRTG高级应用

首先咱们一块儿来看三个问题
①      MRTG在监控交换机时,会为每一个端口都生成一个页面,咱们访问MRTG流量监控页面存放的目录时监控了多少个 端口就会看到有多少个页面,监控一台交换机咱们查看时很方便,由于通常也就是24或48个页面(实际状况根据交换机端口的个数而定)。请问当咱们须要监控十个交换机时怎么办?每一个按24个端口算的话咱们查看时还要面临240个页面。不只是流量图查看起来不方便,并且240个端口的配置信息都存储到一个配置文件里面(mrtg的配置文件),使用时很是不方便,今天咱们就解决这个问题------为每台交换机分别生成单独的流量页面放置目录和单独配置文件
②      咱们在查看MRTG流量监控的主页面时默认状况下是看不到哪一个页面是哪一个端口的,以下图,咱们要想知道是哪一个端口的流量必需要点开这个图片才能够看到,在查看流量时很是不便,因此咱们今天要把这个东西改为咱们想要的,必须改成用户名称+机柜号+端口号+用户IP+联系方式
clip_p_w_picpath001
③        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支持中文
clip_p_w_picpath002
修改I9交换机的配置文件
[root@luwenju mrtg]# vi /usr/local/mrtg/etc/i9/mrtg.cfg
clip_p_w_picpath003
分别对两台交换机的端口进行扫描
[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交换机的流量监控图
clip_p_w_picpath004
clip_p_w_picpath006
问题二解决方案:
        咱们能够看到下图中圈出的内容,下面咱们一块儿看一下怎么把这些内容改成咱们想要的
clip_p_w_picpath007
      咱们须要修改那个端口的描述信息,就须要修改哪一个端口的配置文件,在此咱们修改E16交换机 1/0/1端口的描述信息
[root@luwenju e16]# vi /usr/local/mrtg/etc/e16/mrtg.cfg
图中蓝色部分是系统本身对端口的描述,这个咱们不须要修改。咱们只修改红色标出的部分便可,咱们能够将它修改成lu_wen_ju
clip_p_w_picpath009
而后从新扫描
[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
下面咱们在查看时,就看到了咱们想要的信息,以下图
clip_p_w_picpath010
clip_p_w_picpath011
问题三解决方案:
       由于全部的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>
clip_p_w_picpath012
测试,想查看E16和I9的流量时须要提供用户名和密码才能够
clip_p_w_picpath014
          下面咱们要开始对个别端口的监控页面作单独的受权访问了,如今有一个E16交换机的某个用户须要作受权访问,这个用户你们都叫他juzi,因此咱们在监控页面E16文件夹下新建一个文件夹,名字为juzi,用户放置这个用户交换机端口的流量监控信息
[root@luwenju ~]# mkdir /usr/local/apache/htdocs/e16/juzi
[root@luwenju ~]# cd /usr/local/apache/htdocs/e16/juzi/
咱们该怎么样把某个端口的页面单独拿出来呢?直接cp出来确定是扯淡,一个最好的方法是使用软链接。以下图,咱们要把这个端口拿出来作受权
clip_p_w_picpath015
单击上图后,咱们会在I浏览器中看到以下信息。就是XXXXXXX.html。这个html文件就是这个端口的主页面,因此咱们要对它进行受权访问
clip_p_w_picpath016
    这个地方用到了8个文件,分别是某端口本身的页面文件、day.png 、 week.png、 month.png、 year.png、mrtg-1.png、mrtg-r.png、 mrtg-m.png 咱们要把这个几个文件都软链接到juzi目录下,以下图
     作完以后咱们在浏览器中访问juzi的目录,但是服务器提示要求输入luwenju的用户名和密码,这个用户名是MRTG全局用户,因此juzi这个用户是不能使用的,因此咱们要对这个目录作受权
clip_p_w_picpath020
[root@luwenju htdocs]# /usr/local/apache/bin/htpasswd -c /usr/local/mrtg/passwd/juzipwd juzi //新建用户juzi 配置文件juzipwd 放置到/usr/local/mrtg/passwd目录下
而后咱们打开Apache配置文件,在配置的全局用户受权访问下面新添加一个,以下图
clip_p_w_picpath021
在浏览器中输入 http://x.x.x.x/e16/juzi
这个时候服务器会提示输入用户名和密码,咱们在上面设置的用户名是juzi 密码juzi
输入完回车后会进入
clip_p_w_picpath023
    下图为用户juzi的流量监控页面,用户juzi只能看到本身的流量监控图,无权限看到其它端口流量
clip_p_w_picpath025