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监控就配置完成了。
本文由 Mr Gu 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Mar 9, 2018 at 11:18 am