使用cacti监控虚接口

前言

linux系统中的tun、pppx等虚接口无法被cacti监控流量。因为这些是vpn连接成功后才生成动态接口,即使接口的名称一样,每一次生成的接口id都不相同,导致cacti无法连续监控接口的流量。
为了解决此问题,笔者想到了一个比较dirty但行之有效的方法。
1.在接口生成的时候记录下本次生成的接口名称,然后通过snmpwalk命令获取本次接口的oid值。
2.通过计划任务每30秒一次,获取本次接口的流量保存在本地。
3.使用net-snmp的自定义oid获取已经保存在本地的数值。
4.cacti添加基于自定义oid的数据源模板、图形模板、数据查询模板。由于自定义的oid总是固定的,所以可以连续监控到接口的流量。
本文将记录此方法的实现过程。

环境介绍:
- 被监控节点 Centos 6.4 snmpd 5.5 pptpd
- cacti系统版本cactiez 0.87

连接脚本

以pptpd为例,用户连接之后保存本次的接口名称到/root/snmpd/interface/命名为pptp-用户名
pptpd通过/etc/ppp/auth-up脚本可以传递相关参数。在/etc/ppp/auth-up加入一下内容(如果没有此文件可新建)

#!/bin/bash
REALDEVICE=$1
USER=$2
echo $REALDEVICE >/root/snmpd/interface/pptp-$USER

这里可以通过接入vpn来测试连接脚本是否有效。如用户d2o接入了pptp,生成了一个名为ppp0的接口。如无意外,在目录/root/snmpd/interface/下会生成了一个名为pptp-d2o的文件,文件内容ppp0。

[root@localhost ~]# cat /root/snmpd/interface/pptp-d2o 
ppp0

断开脚本

用户断开就把/root/snmpd/interface/pptp-用户名文件删除掉。脚本位置/etc/ppp/auth-down

#!/bin/sh
USER=$2
rm /root/snmpd/interface/pptp-$USER

收集接口流量

由于crontab最小的间隔是1分钟,所以用了2个文件来采集数据,每5分钟执行一次cron_control.sh,然后cron_control.sh里面每29秒执行一次interface_cron.sh。实现效果就是每5分钟根据接口名获取一次oid,每29秒抓取一次流量数据,并把数据保存到results.inresults.out,分别对应流入流出的字节数。
/root/snmpd/interface_index用来保存需要监控流量的用户的用户名,并为cacti提供snmpd索引。
例如监控d2o、h2o、t2o三个用户,/root/snmpd/interface_index的内容如下

pptp-d2o
pptp-h2o
pptp-t2o

/root/s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值