SNMP协议详细介绍及SNMP监控LXD端口流量( 三 )


重启服务
systemctl restart snmpd
2.7 查看流量监控
YR1给YR3发送数据包,在YR3中开启端口流量监控
其中192.168.72.20是YR3的ip地址,.950和.950分别指定了输入和输出流量的OID(即在2.6中的定义)
snmpwalk -v 2c -c public 192.168.72.20 ifInOctets.950 ifOutOctets.950
2.8 碰到的问题2.8.1 问题一
问题描述
访问出错无法获得流量,无法识别有效的自定义标识符
解决办法
通过下载第三方的解析库来实现标识符的转换
进入服务器端YR3,下载第三方库
apt-get install snmp-mibs-downloader
在服务器端YR3修改配置文件vi /etc/snmp/snmp.conf
# 注释掉下面这一行mibs :
重启服务
service snmpd restart
再次监控流量即可
snmpwalk -v 2c -c public 192.168.72.20 ifInOctets.950 ifOutOctets.950
2.8.2 问题二
问题描述
只能监控进或者出的流量,而不能同时监控两个
解决办法
只支持输出第一个参数的流量结果,将其替换为即可监控进出流量
snmpget -v 2c -c public 192.168.72.20 ifInOctets.950 ifOutOctets.950
2.8.2 问题三
问题描述
每次输入的命令只能监控当前时刻流量,如何持续监控
解决办法
配合脚本文件实现
vi getFlow.sh
添加如下内容
#!/bin/bash# 定义监控流量进出的命令InFlow="snmpget -v 2c -c public 192.168.72.20 ifInOctets.950"OutFlow="snmpget -v 2c -c public 192.168.72.20 ifOutOctets.950"# 定义存放日志位置logFile="/root/Flow.log"# 循环获5次流量for((i=1;i<=5;i++))do# 获取进入流量和出去流量,$NF表示获取最后一列(即获取流量大小)in_bytes=$($InFlow | awk '{print $NF}')out_bytes=$($OutFlow | awk '{print $NF}')# 将流量信息写入日志文件echo "$(date +%Y-%m-%d\ %H:%M:%S) - In: $in_bytes bytes, Out: $out_bytes bytes" >> $logFile# 等待3秒再次获取流量信息sleep 3doneecho "流量监控完毕,请查看日志文件,日志文件位置如下:$logFile"
【SNMP协议详细介绍及SNMP监控LXD端口流量】运行截图如下