Centos6 MRTG安装 监控服务器和交换机

in 监控 with 0 comment

MRTG(Multi Router Traffic Grapher),通常讲是一个监控网络链路流量负载的开源软件,它可以从所有运行SNMP协议的设备上(包括服务器、路由器、交换机等)抓取信息。事实上它不仅可以监控网络设备,任何其它的支持SNMP协议的设备都可以做为MRTG的监控对象,并自动生成包含PNG图形格式的HTML文档,通过HTTP方式显示给用户。

mrtg服务端部署

1.安装mrtg

yum install -y epel-release
yum install mrtg net-snmp net-snmp-utils gd-* libpng-* zlib-* -y

2.创建mrtg目录

mkdir -p /data/mrtg
chmod 777 /data/mrtg

3.生成配置文件

/usr/bin/cfgmaker public@'被监控IP' --snmp-options=:::::2 --global "WorkDir: /data/mrtg" --global "Options[_]: bits,growright" --output=/etc/mrtg/mrtg.cfg          

public: 指团体名,类似于密钥身份认证
snmp-options: 指定了snmpV2协议,当被监控机流量大于100M时,需要使用v2协议
WorkDir: 指定文件存放目录
Options[_]: bits,growright: 流量单位显示bits,图形向右顺序延伸
output: 指定配置文件位置

4.生成index.html默认页面

/usr/bin/indexmaker /etc/mrtg/mrtg.cfg --output=/data/mrtg/index.html   ##注意每次修改/etc/mrtg/mrtg.cfg文件后都需要重新生成此页面,相关修改才会生效

注意:这一步可能会报如下的错误:

Use of uninitialized value $first in hash element at /usr/bin/indexmaker line 353.

这是因为上一步(cfgmaker那一步)生成的文件由于某种原因全被注释了,如

### Interface 1 >> Descr: 'lo' | Name: 'lo' | Ip: '127.0.0.1' | Eth: '' ###
### The following interface is commented out because:
### * it is a Software Loopback interface
...
...

### Interface 2 >> Descr: 'eth0' | Name: 'eth0' | Ip: '192.168.0.117' | Eth: '52-54-00-00-00-17' ###
### The following interface is commented out because:
### * has a speed of 0 which makes no sense
这时只要手动修改/etc/mrtg/mrtg.cfg去注释并修改第二个接口的下面一行

MaxBytes[localhost_2]: 1250000

再运行以上命令就不会有问题。

5.服务器端添加计划任务

crontab -e
*/5 * * * * env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg

保存文件后,没5分钟抓一次数据。

6.防火墙设置

iptables -A INPUT -p udp --dport 161:162 -j ACCEPT 

客户端配置

1.安装snmp

yum -y install net-snmp*

2.配置snmp

sed -i 's/default       public/0.0.0.0       public/g' /etc/snmp/snmpd.conf     ##此处public对应服务器端生成配置文件指定的团体名public
sed -i 's/systemview none/all none/g' /etc/snmp/snmpd.conf
sed -i 's/#view all    included  .1/view all    included  .1/g' /etc/snmp/snmpd.conf

3.启动服务

service snmpd restart
chkconfig --add snmpd && chkconfig --level 345 snmpd on   ##加入开机启动

4.防火墙放开161端口

service crond restart
iptables -A INPUT -p udp --dport 161 -j ACCEPT 
service iptables save
service iptables restart

监控交换机设备

监控交换设备和监控服务器类似,只是我们需要网络管理员配置交换机snmp选项,指定snmpV2协议,团体名设置public或其他自定义字符,注意读写权限的团体名设置,以及是否防火墙限制外部机器访问。

获取到写权限的团体名后,在mrtg监控端执行生成对应配置文件和index.html页面就可抓取到数据,记得在计划任务添加对应的命令。
例如交换机IP为1.2.3.4,团体名为test1234,使用如下命令:

/usr/bin/cfgmaker test1234@1.2.3.4 --snmp-options=:::::2 --global "WorkDir: /data/mrtg" --global "Options[_]: bits,growright" --output=/etc/mrtg/mrtg_1234.cfg
/usr/bin/indexmaker /etc/mrtg/mrtg_1234.cfg --output=/data/mrtg/index.html
echo "*/5 * * * * env LANG=C /usr/bin/mrtg /home/mrtg/mrtg_1234.cfg">> /var/spool/cron/root  ##添加计划任务

Nginx web配置

cd /usr/local/nginx/conf/vhost
server {
        listen       80;
        server_name  localhost;
        root /data/mrtg;
        index index.html index.htm;
        access_log  /dev/null;
        error_log   /dev/null;
}
service nginx reload     ##加载nginx配置

浏览器访问:http://localhost:80

至此mrtg监控就配置完成了。

Responses