Cisco 라우터 트래픽을 RRDtool을 사용하여 30초 평균 그래프 만들기(준비)
목적
일반적인 라우터 트래픽을 그래프로 표시하는 도구는 5분 평균입니다.
스파이크와 같은 일시적인 트래픽 증감을 파악하기 위해 30초 평균으로 그래프화합니다.
트래픽의 그래프화에는 RRDtool을 이용합니다.
이 기사에서는 RRDtool의 사용법을 확인하기 위해 명령으로 실행하는 방법을 설명합니다.
Cisco 라우터 및
snmp
는 Cisco 라우터의 포트 목록을 SNMP로 검색에 설명되어 있습니다.실행 이미지
아래와 같이 패킷 데이터량과 패킷수를 30초 평균의 그래프로 합니다.
여기에서는 샘플 데이터로 사인 커브를 저장하고 RRDtool로 그립니다.
송수신 트래픽(전송 데이터량) ※정방향은 수신, 부방향은 송신
송수신 패킷수 ※정방향은 수신, 부방향은 송신
수집 대상 SNMP OID
아래의 OID를 정기적으로
snmpget
로 얻어 RRD 파일에 저장합니다.RRDtool 명령
대상
이번은 Cisco1812J 라우터의 FastEthernet0의 인터페이스를 취득 대상으로 한다.
아래의
snmpwalk
의 실행 결과로부터 인덱스 번호는 1
로 확인할 수 있다.snmpwalk
% snmpwalk -v2c -c public 192.168.88.101 ifDescr
IF-MIB::ifDescr.1 = STRING: FastEthernet0
IF-MIB::ifDescr.2 = STRING: FastEthernet1
IF-MIB::ifDescr.3 = STRING: BRI0
IF-MIB::ifDescr.4 = STRING: BRI0:1
IF-MIB::ifDescr.5 = STRING: BRI0:2
IF-MIB::ifDescr.6 = STRING: FastEthernet2
IF-MIB::ifDescr.7 = STRING: FastEthernet3
IF-MIB::ifDescr.8 = STRING: FastEthernet4
IF-MIB::ifDescr.9 = STRING: FastEthernet5
IF-MIB::ifDescr.10 = STRING: FastEthernet6
IF-MIB::ifDescr.11 = STRING: FastEthernet7
IF-MIB::ifDescr.12 = STRING: FastEthernet8
IF-MIB::ifDescr.13 = STRING: FastEthernet9
IF-MIB::ifDescr.14 = STRING: Null0
IF-MIB::ifDescr.15 = STRING: Vlan1
IF-MIB::ifDescr.16 = STRING: BRI0-Physical
IF-MIB::ifDescr.17 = STRING: BRI0-Signaling
IF-MIB::ifDescr.18 = STRING: BRI0:1-Bearer Channel
IF-MIB::ifDescr.19 = STRING: BRI0:2-Bearer Channel
만들기
RRD 형식의 데이터베이스를 작성합니다. 파일 이름은 UUID를 붙였습니다.
30초 간격으로 한 달 동안 라우터의 각 카운터를 저장할 수 있습니다.
create
# 1447167590 => 2015-11-10 23:59:90 +0900
# 1447167600 => 2015-11-11 00:00:00 +0900
rrdtool create 286ec4c0-4233-4460-b8ca-2a0393e5edb3.rrd \
--start 1447167590 \
--step 30 \
DS:InOctets:COUNTER:120:0:U \
DS:OutOctets:COUNTER:120:0:U \
DS:InUcastPkts:COUNTER:120:0:U \
DS:OutUcastPkts:COUNTER:120:0:U \
DS:InMulticastPkts:COUNTER:120:0:U \
DS:OutMulticastPkts:COUNTER:120:0:U \
DS:InBroadcastPkts:COUNTER:120:0:U \
DS:OutBroadcastPkts:COUNTER:120:0:U \
RRA:MAX:0.5:1:86400
업데이트
watch 명령으로 30초마다 snmpget으로 트래픽을 검색하고 업데이트합니다.
update
watch -n 30 rrdtool update 286ec4c0-4233-4460-b8ca-2a0393e5edb3.rrd N:\
`snmpget -v2c -Oqv -c public 192.168.88.101 ifHCInOctets.1`:\
`snmpget -v2c -Oqv -c public 192.168.88.101 ifHCOutOctets.1`:\
`snmpget -v2c -Oqv -c public 192.168.88.101 ifHCInUcastPkts.1`:\
`snmpget -v2c -Oqv -c public 192.168.88.101 ifHCOutUcastPkts.1`:\
`snmpget -v2c -Oqv -c public 192.168.88.101 ifHCInMulticastPkts.1`:\
`snmpget -v2c -Oqv -c public 192.168.88.101 ifHCOutMulticastPkts.1`:\
`snmpget -v2c -Oqv -c public 192.168.88.101 ifHCInBroadcastPkts.1`:\
`snmpget -v2c -Oqv -c public 192.168.88.101 ifHCOutBroadcastPkts.1`
그리기
트래픽 및 패킷 수 그래프를 별도로 그립니다.
수신 방향을 그래프의 양의 영역에, 송신 방향을 그래프의 부의 영역에 묘화 합니다.
start와 end에, 전날~오늘까지의 범위 지정을 하고 있습니다.
교통
graph
rrdtool graph 286ec4c0-4233-4460-b8ca-2a0393e5edb3-traffic.png \
--start -1day \
--end start+1day \
--title "R1 Fa0 - Traffic" \
--width 800 \
--height 200 \
--slope-mode \
--rigid \
--vertical-label "bits per second (bps)" \
"DEF:a=286ec4c0-4233-4460-b8ca-2a0393e5edb3.rrd:InOctets:MAX" \
"DEF:b=286ec4c0-4233-4460-b8ca-2a0393e5edb3.rrd:OutOctets:MAX" \
"CDEF:bita=a,8,*" \
"CDEF:bitb=b,8,*,-1,*" \
"VDEF:maxa=bita,MAXIMUM" \
"VDEF:maxb=bitb,MINIMUM" \
"VDEF:avga=bita,AVERAGE" \
"VDEF:avgb=bitb,AVERAGE" \
"VDEF:lsta=bita,LAST" \
"VDEF:lstb=bitb,LAST" \
"HRULE:0#888888" \
"AREA:bita#54EC48:Inbound " \
"LINE1:bita#24BC14" \
"GPRINT:avga:Average\\:%8.1lf %sbps" \
"GPRINT:maxa:Maximum\\:%8.1lf %sbps" \
"GPRINT:lsta:Current\\:%8.1lf %sbps\\n" \
"AREA:bitb#48C4EC:Outbound" \
"LINE1:bitb#1598C3" \
"GPRINT:avgb:Average\\:%8.1lf %sbps" \
"GPRINT:maxb:Maximum\\:%8.1lf %sbps" \
"GPRINT:lstb:Current\\:%8.1lf %sbps\\n"
패킷 수
graph
rrdtool graph 286ec4c0-4233-4460-b8ca-2a0393e5edb3-packet.png \
--start \
--start -1day \
--end start+1day \
--title "R1 Fa0 - Packets" \
--width 800 \
--height 200 \
--slope-mode \
--rigid \
--vertical-label "packets per second (pps)" \
"DEF:a=286ec4c0-4233-4460-b8ca-2a0393e5edb3.rrd:InUcastPkts:MAX" \
"DEF:b=286ec4c0-4233-4460-b8ca-2a0393e5edb3.rrd:OutUcastPkts:MAX" \
"DEF:c=286ec4c0-4233-4460-b8ca-2a0393e5edb3.rrd:InMulticastPkts:MAX" \
"DEF:d=286ec4c0-4233-4460-b8ca-2a0393e5edb3.rrd:OutMulticastPkts:MAX" \
"DEF:e=286ec4c0-4233-4460-b8ca-2a0393e5edb3.rrd:InBroadcastPkts:MAX" \
"DEF:f=286ec4c0-4233-4460-b8ca-2a0393e5edb3.rrd:OutBroadcastPkts:MAX" \
"CDEF:bita=a" \
"CDEF:bitb=b,-1,*" \
"CDEF:bitc=c" \
"CDEF:bitd=d,-1,*" \
"CDEF:bite=e" \
"CDEF:bitf=f,-1,*" \
"CDEF:ace=bita,bitc,+,bite,+" \
"CDEF:bdf=bitb,bitd,+,bitf,+" \
"VDEF:maxa=bita,MAXIMUM" \
"VDEF:maxb=bitb,MINIMUM" \
"VDEF:maxc=bitc,MAXIMUM" \
"VDEF:maxd=bitd,MINIMUM" \
"VDEF:maxe=bite,MAXIMUM" \
"VDEF:maxf=bitf,MINIMUM" \
"VDEF:maxace=ace,MAXIMUM" \
"VDEF:maxbdf=bdf,MINIMUM" \
"VDEF:avga=bita,AVERAGE" \
"VDEF:avgb=bitb,AVERAGE" \
"VDEF:avgc=bitc,AVERAGE" \
"VDEF:avgd=bitd,AVERAGE" \
"VDEF:avge=bite,AVERAGE" \
"VDEF:avgf=bitf,AVERAGE" \
"VDEF:avgace=ace,AVERAGE" \
"VDEF:avgbdf=bdf,AVERAGE" \
"VDEF:lsta=bita,LAST" \
"VDEF:lstb=bitb,LAST" \
"VDEF:lstc=bitc,LAST" \
"VDEF:lstd=bitd,LAST" \
"VDEF:lste=bite,LAST" \
"VDEF:lstf=bitf,LAST" \
"VDEF:lstace=ace,LAST" \
"VDEF:lstbdf=bdf,LAST" \
"HRULE:0#888888" \
\
"AREA:bita#54EC48:Unicast Packets In " \
"GPRINT:avga:Average\\:%8.1lf %spps" \
"GPRINT:maxa:Maximum\\:%8.1lf %spps" \
"GPRINT:lsta:Current\\:%8.1lf %spps\\n" \
"AREA:bitc#7648EC:Multicast Packets In :STACK" \
"GPRINT:avgc:Average\\:%8.1lf %spps" \
"GPRINT:maxc:Maximum\\:%8.1lf %spps" \
"GPRINT:lstc:Current\\:%8.1lf %spps\\n" \
"AREA:bite#DE48EC:Broadcast Packets In :STACK" \
"GPRINT:avgc:Average\\:%8.1lf %spps" \
"GPRINT:maxc:Maximum\\:%8.1lf %spps" \
"GPRINT:lstc:Current\\:%8.1lf %spps\\n" \
"LINE1:bita#24BC14" \
"LINE1:bitc#4D18E4::STACK" \
"LINE1:bite#B415C7::STACK" \
"COMMENT: Total Packets In " \
"GPRINT:avgace:Average\\:%8.1lf %spps" \
"GPRINT:maxace:Maximum\\:%8.1lf %spps" \
"GPRINT:lstace:Current\\:%8.1lf %spps\\n" \
"COMMENT: \\n" \
\
"AREA:bitb#48C4EC:Unicast Packets Out" \
"GPRINT:avgb:Average\\:%8.1lf %spps" \
"GPRINT:maxb:Maximum\\:%8.1lf %spps" \
"GPRINT:lstb:Current\\:%8.1lf %spps\\n" \
"AREA:bitd#EA644A:Multicast Packets Out:STACK" \
"GPRINT:avgd:Average\\:%8.1lf %spps" \
"GPRINT:maxd:Maximum\\:%8.1lf %spps" \
"GPRINT:lstd:Current\\:%8.1lf %spps\\n" \
"AREA:bitf#EC9D48:Broadcast Packets Out:STACK" \
"GPRINT:avgf:Average\\:%8.1lf %spps" \
"GPRINT:maxf:Maximum\\:%8.1lf %spps" \
"GPRINT:lstf:Current\\:%8.1lf %spps\\n" \
"LINE1:bitb#1598C3" \
"LINE1:bitd#CC3118::STACK" \
"LINE1:bitf#CC7016::STACK" \
"COMMENT: Total Packets Out" \
"GPRINT:avgbdf:Average\\:%8.1lf %spps" \
"GPRINT:maxbdf:Maximum\\:%8.1lf %spps" \
"GPRINT:lstbdf:Current\\:%8.1lf %spps\\n"
Reference
이 문제에 관하여(Cisco 라우터 트래픽을 RRDtool을 사용하여 30초 평균 그래프 만들기(준비)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kooshin/items/c032125157d79c222a4a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)