让MRTG进程跟随系统一同启动,这是一个最基本的需求,因为MRTG的最基本功能就是实时记录网络设备的流量,操作系统总有重启的时侯,我们要实现的是当系统重新启动后,MRTG也随之启动了,怎么做呢?做一个脚本,放在/etc/rc.5/目录下即可,这里面有几点需要注意的地方。
(一)正确判断放置脚本的目录
在此要说明一下,本文中MRTG程序是运行在红旗LINUX6.0操作系统的桌面环境下,因此这个环境下启动文件是放在/etc/rc5.d/目录下的。
(二)创建一个启动脚本
内容如下:
[root@jncatvrd6a htdocs]# more /etc/rc5.d/S31mrtg
#!/bin/sh
cd /usr/local/mrtg-2/bin && ./mrtg /usr/local/mrtg-2/bin/cfg/192.168.3.1.cfg
该文件以大写的"S"开头,表示为一个启动文件,后面跟两位数字,再后面跟标志该程序的字符串。
(三)为脚本设置正确的权限
即使创建了符合格式的文件名,脚本的内容也正常,重启计算机后也可以无法正确的启动MRTG进程,不成功的原因很可能是由于没有设置正确的权限,可以看一下这个目录下的其它文件的取限设置,发现它们都是可执行文件,照它们的样子写即可:
[root@jncatvrd6a rc5.d]# chmod 777 S31mrtg
[root@jncatvrd6a rc5.d]# ls -l S31mrtg
-rwxrwxrwx 1 root root 87 10-27 16:25 S31mrtg
以上三步做完,MRTG就可以跟随系统一起启动了。
(四)不要忘了同时启动WWW发布进程
我们发布网页(也就是MRTG监控的结果)是通过APACHE程序,也需要把这个程序设置为自动启动
[root@jncatvrd6a rc5.d]# chmod 777 S65apache
[root@jncatvrd6a rc5.d]# more S65apache
#!/bin/sh
设置参数,让输出信息更加准确
这是我们研究的重点,我们以往配置MRTG的时侯,一般来说都是按照默认的参数来做的,即先生成配置文件(cfgmaker),再生成网页文件(mrtg),最后生成合并的网页文件(indexmaker),但是仔细观查生成的网页文件时却会发现一些问题,比如网页中显示的端口号与交换机实际的端口上对应不上,或者出现了一些交换机上没有的端口(这在三层交换机上表现的尤为明显,一台24口的交换机,MRTG输出的网页上可能出现七、八十个端口,点击进去以后结果发现是VLAN),实际上通过对于cfgmaker命令的深入研究,我们发现是可以通过设置相应参数来得到我们最终想要的结果。
(一)如何获得最详尽的cfgmaker命令使用方法的帮助信息
打这个命令就可以了:cfgmaker -man
为了方便查看,可以将此帮助输出到一个文件里面。
[root@jncatvrd6a rc5.d]# cd /usr/local/mrtg-2/bin
1027.txt cfg cfgmaker indexmaker mrtg mrtg-traffic-sum rateup
[root@jncatvrd6a bin]# ./cfgmaker --man >>1029.txt
[root@jncatvrd6a bin]# more 1029.txt
通过FTP的方式将这个文件传到一台WINDOWS的电脑,在WORD中打开这个文件,可以方便的进行标注及翻译。
(二)了解cfgmaker最基本的语法格式
通过查看cfgmaker的帮助文件的开并头部分,我们可以大概了解到cfgmaker命令的基本语法
[root@jncatvrd6a bin]# more 1029.txt
NAME
cfgmaker - Creates mrtg.cfg files (for mrtg-2.16.2)
SYNOPSIS
cfgmaker [options] [community@]router [[options] [community@]router ...]
OPTIONS
--ifref=nr interface references by Interface Number (default)
--ifref=ip ... by Ip Address
--ifref=eth ... by Ethernet Number
--ifref=descr ... by Interface Description
--ifref=name ... by Interface Name
--ifref=type ... by Interface Type
--ifdesc=nr interface description uses Interface Number (default)
--ifdesc=ip ... uses Ip Address
--ifdesc=eth ... uses Ethernet Number
--ifdesc=descr ... uses Interface Description
--ifdesc=name ... uses Interface Name
--ifdesc=catname ... uses CatOS Interface Name
--ifdesc=ppname ... uses Passport Port Name
--ifdesc=alias ... uses Interface Alias
--ifdesc=type ... uses Interface Type
如上面的信息所显示的,cfgmaker命令主要通过后面所跟的相应参数来生成相应的配置文件,最后面跟的是要监控设备的community串和主机名
(三)主要的参数
1、--ifref系列参数
Ifref系列参数的主要作用就是告诉配置文件依据什么指标来标记端口,可以通过端口号(nr)、端口的IP地址(ip)、端口的以太地址(eth)、端口的描述(descr)、端口的名字(name)、端口的类型(type)来标记,一般情况下我们就是使用端口号来标记端口的,我们可以写一下看看,命令如下:
cfgmaker --global "WorkDir:/usr/local/apache2/htdocs/mrtg/" --output /usr/local/mrtg-2/bin/cfg/3switch.cfg --ifref=nr public@192.168.3.1
可以到指定的目录去看一下生成的配置文件,可以看到跟用默认的命令生成的配置文件内容是一样的,因为系统默认就是通过nr来标识端口的。
利用脚本来简化命令的输入
相信大家在配置MRTG的过程中,总为要不断的敲入一长串一长串的命令犯愁,其实我们可以通过将配置命令做成脚本来简化操作,比如我们要学习-ifref=nr这个参数的配置,可以写如下一个脚本:
[root@jncatvrd6a bin]# more sifrefnr
#!/bin/sh
cd /usr/local/mrtg-2/bin && cfgmaker --global "WorkDir:/usr/local/apache2/htdocs/mrtg/" --output /usr/local/mrtg-2/bin/cfg/192.168.3.1.des1029.cfg --ifref=nr public@192.168.3.1
[root@jncatvrd6a bin]# ls -l sifrefnr
-rwxrwxrwx 1 root root 189 10-29 17:09 sifrefnr
下次如果我们要看-ifref=eth的效果时,只需将这个脚本复制另一个文件,然后再稍微的改动一下这个新文件的内容即可,我们可以这样写:
[root@jncatvrd6a bin]#cp sifrefnr sifrefeth
[root@jncatvrd6a bin]# more sifrefeth
#!/bin/sh
cd /usr/local/mrtg-2/bin && cfgmaker --global "WorkDir:/usr/local/apache2/htdocs/mrtg/eth" --output /usr/local/mrtg-2/bin/cfg/192.168.3.1.eth1029.cfg --ifref=eth public@192.168.3.1
[root@jncatvrd6a bin]# ls -l sifrefeth
-rwxrwxrwx 1 root root 204 10-30 11:42 sifrefeth
为什么可以这样做,因为cfgmaker命令的语法是相同的,不同之处只是所跟的参数,而且只是各别具体的值,所以我们可以针对一个参数系列写成一个模板脚本,每次要尝试一个萁中小项参数的功能的时侯,稍微修改一下模板的内容就可以了。
.分页: [1] [2]
TAG: MRTG 技巧 高级