openvswitch配置sflow进行网络监控

来源:互联网 发布:公司封了lol端口 代理 编辑:程序博客网 时间:2024/06/16 03:23

官方给出的地址在这里: Monitoring VM Trafic Using sFlow, 这里的做法跟官方做法基本一致。

openvswitch已经自带了sflow模块,不需要安装。另外我们使用了sflowtool进行监控,sflowtool的github地址在这里:sflow/sflowtool,

实验环境如下,host为ubuntu16.04 desk,其中host2为监控端

这里写图片描述

首先在host1配置一些环境变量,其实就是ovs-vsctl的命令参数,新建sflowenv文件,修改如下:

COLLECTOR_IP=192.168.1.48COLLECTOR_PORT=6343AGENT_IP=ens33HEADER_BYTES=128SAMPLING_N=64POLLING_SECS=10

然后执行 source sflowenv命令使参数生效。前两项分别为监控端的ip和端口,第三个是代理ip,也就是host1要使用那个接口来发送sflow监控数据。

然后执行如下命令进行监控并发送数据:

 ovs-vsctl -- --id=@sflow create sflow agent=${AGENT_IP} \    target="${COLLECTOR_IP}:${COLLECTOR_PORT}" header=${HEADER_BYTES} \    sampling=${SAMPLING_N} polling=${POLLING_SECS} \      -- set bridge br0 sflow=@sflow

直接执行上面命令会有问题,需要在${COLLECTOR_IP}:${COLLECTOR_PORT}的冒号之前加一个反斜杠‘\’,如下:

 ovs-vsctl -- --id=@sflow create sflow agent=${AGENT_IP} \    target="${COLLECTOR_IP}\:${COLLECTOR_PORT}" header=${HEADER_BYTES} \    sampling=${SAMPLING_N} polling=${POLLING_SECS} \      -- set bridge br0 sflow=@sflow

接下来要在host2上安装sflowtool进行监控,下载,解压(unzip sflowtool.zip),安装:

./boot.sh./configuremakesudo make install

但是执行./boot.sh的时候,出现问题说是没有安装 aotoreconf,执行如下命令安装即可:

sudo apt-get install autoconf automake libtool

安装完成之后就可以执行sflowtool来进行监控数据收集了,sflowtool命令被放在了文件夹/usr/local/bin中。sflow监控分为count参加和sample采样,下一次将分析sflow报文。如下:

startDatagram =================================datagramSourceIP 192.168.1.55datagramSize 280unixSecondsUTC 1487818805datagramVersion 5agentSubId 0agent 192.168.1.54packetSequenceNo 613sysUpTime 1505000samplesInPacket 2startSample ----------------------sampleType_tag 0:2sampleType COUNTERSSAMPLEsampleSequenceNo 151sourceId 2:1000counterBlock_tag 0:2203user_time 7302492system_time 6679608memory_used 34811904memory_max 0files_open 0files_max 0connections_open 0connections_max 0counterBlock_tag 0:2207skipping unknown counters_sample_element: 0:2207 len=24endSample   ----------------------startSample ----------------------sampleType_tag 0:2sampleType COUNTERSSAMPLEsampleSequenceNo 151sourceId 0:10counterBlock_tag 0:1004skipping unknown counters_sample_element: 0:1004 len=12counterBlock_tag 0:1005ifName br0counterBlock_tag 0:1ifIndex 10networkType 6ifSpeed 100000000ifDirection 0ifStatus 3ifInOctets 619119ifInUcastPkts 3818ifInMulticastPkts 0ifInBroadcastPkts 4294967295ifInDiscards 1ifInErrors 0ifInUnknownProtos 4294967295ifOutOctets 137573ifOutUcastPkts 755ifOutMulticastPkts 4294967295ifOutBroadcastPkts 4294967295ifOutDiscards 0ifOutErrors 0ifPromiscuousMode 0endSample   ----------------------endDatagram   =================================
startDatagram =================================datagramSourceIP 192.168.1.55datagramSize 216unixSecondsUTC 1487818804datagramVersion 5agentSubId 0agent 192.168.1.54packetSequenceNo 612sysUpTime 1504000samplesInPacket 1startSample ----------------------sampleType_tag 0:1sampleType FLOWSAMPLEsampleSequenceNo 22sourceId 2:1000meanSkipCount 64samplePool 1408dropEvents 0inputPort 7outputPort 11flowBlock_tag 0:1001extendedType SWITCHin_vlan 0in_priority 0out_vlan 0out_priority 0flowBlock_tag 0:1flowSampleType HEADERheaderProtocol 1sampledPacketSize 102strippedBytes 4headerLen 98headerBytes 52-54-00-D1-6D-01-52-54-00-BE-70-9B-08-00-45-00-00-54-31-F8-40-00-40-01-84-EF-C0-A8-01-38-C0-A8-01-39-08-00-5F-A2-08-45-00-39-31-50-AE-58-00-00-00-00-E4-63-0D-00-00-00-00-00-10-11-12-13-14-15-16-17-18-19-1A-1B-1C-1D-1E-1F-20-21-22-23-24-25-26-27-28-29-2A-2B-2C-2D-2E-2F-30-31-32-33-34-35-36-37dstMAC 525400d16d01srcMAC 525400be709bIPSize 84ip.tot_len 84srcIP 192.168.1.56dstIP 192.168.1.57IPProtocol 1IPTOS 0IPTTL 64IPID 63537ICMPType 8ICMPCode 0endSample   ----------------------endDatagram   =================================
0 0