SNMP (Simple NetworkManagement Protocol)
Network 장비 모니터링 방법의 de facto standard
• UDP
• <Key, Value> 형태로 성능값을 조회
Router
GET Request
ResponseNMS
10.
망 간의 거리
수집시고려할 점
• 라우터의 SNMP 처리 성능
• 패킷당 요청 개수 : 최대 10여개 (Router 성능, 패킷 크기에 따른 제한)
• 수집항목 개수 : 한 Router당 1,000 ~ 10,000개
Router
GET Request
Response
NMS GET Request
Response
11.
망 간의 거리
수집시간이 1분을 초과할 수 있음
• Data 누락
• 이벤트 처리 오류
RTT 수집 시간
KR - CN 90ms 90s
KR - US 220ms 220s
KR - DE 290ms 290s
12.
망 간의 거리
Router의리소스를 고려하여 수집시간을 줄일 수 있는 방법 필요
• 수집 서버를 Router 근처에 배치
• Multi-threading
Data 누락을 없애고, 성능 수집으로 인해 Router에 주어지는 성능상 부담을
최소화
Router
GET Request
ResponseNMS
네트워크 장비 수
Scale-out검토 필요
• Router 개수가 수 천 대씩 증가하기도 함
• 관련한 다양한 기술 검토 필요 : Kafka, Zookeeper, Hbase, Redis, Spark,
Storm, …
Scale-out이 안 된다면
• 갑작스러운 규모 증가에 대응이 어려움
• Global view 지원이 어려움
16.
네트워크 장비 수
Region#2 (유럽)
Region #1 (한국)
Region #3 (미국)
Router
Router
Router
Router
Region 구분
17.
네트워크 장비 수
Region#2 (유럽)
Region #1 (한국)
Region #3 (미국)
Router
Router
Router
Router
NMS
Region별로 NMS 구축
18.
네트워크 장비 수
Region#2 (유럽)
Region #1 (한국)
Region #3 (미국)
Router
Router
Router
Router
Collector
Collector
Region별로 Collector 구축
19.
네트워크 장비 수
Region#2 (유럽)
Region #1 (한국)
Region #3 (미국)
Router
Router
Router
Router
Collector
Collector
Region별로 Collector 구축
Queue Consumer
Hbase
MySQL
Consumer
Event
Processor
FrontEnd
Web
API
Performance
Discovery
Event
Aggregator
20.
네트워크 장비 수
Region#2 (유럽)
Region #1 (한국)
Region #3 (미국)
Router
Router
Router
Router
Collector
Collector
Queue Consumer
Hbase
MySQL
Consumer
Event
Processor
FrontEnd
Web
API
Performance
Discovery
Event
Aggregator
Zookeeper Redis Batch
21.
네트워크 장비 수
Scale-out을위해
• Region별 수집기 구축
• Kafka, Zookeeper, Redis, Hbase 사용
대규모 Router 증설에도 간단히 대응 가능
Global view 지원
네트워크 장비 종류수
SNMP MIB 종류 : 100
Router
GET 1.3.6.1.4.1.9.9.109.1.1.1.1.4
CPU 사용률
NMS GET 1.3.6.1.4.1.9.9.13.1.3.1.3.2
#2 센서 온도
26.
네트워크 장비 종류수
장비 모델별 MIB 형식에 일관성이 없음
• A 모델 :
𝟏.𝟑.𝟔.𝟏.𝟒.𝟏.𝟑𝟑𝟕𝟓.𝟐.𝟏.𝟏.𝟐.𝟏.𝟒𝟓.𝟎 의 값
𝟏.𝟑.𝟔.𝟏.𝟒.𝟏.𝟑𝟑𝟕𝟓.𝟐.𝟏.𝟏.𝟐.𝟏.𝟒𝟒.𝟎 의 값
* 100
• B 모델 : 1.3.6.1.4.1.5951.4.1.1.41.2.0의 값
모델별로 수집기를 개발할 경우 100가지의 실행 코드가 생산됨
27.
네트워크 장비 종류수
Performance Template
CPU Used
Memory Used
Packets In
Temperature
Router Model A
CPU Used #1.3.6.1.4.1.9.9.109.1.1.1.1.4.1#
Memory Used #1.3.6.1.4.1.2636.3.1.13.1.11.9.1.0.0#
Packets In #1.3.6.1.2.1.31.1.1.1.6.$indexNum$#*8
Temperature #1.3.6.1.4.1.9.9.13.1.3.1.3.$indexNum$#
Router Model B
CPU Used #1.3.6.1.4.1.5951.4.1.1.41.6.1.2.$indexNum$
#
Memory Used #1.3.6.1.4.1.3224.16.2.1.0#/(#1.3.6.1.4.1.32
24.16.2.1.0#+#1.3.6.1.4.1.3224.16.2.2.0#)*1
00
Packets In #1.3.6.1.2.1.31.1.1.1.6.$indexNum$#*8
Temperature #1.3.6.1.4.1.3224.21.4.1.3.$indexNum$#
• 추상화
• MIB 표현식
28.
네트워크 장비 종류수
운영/개발 리소스 최소화
• Performance Template에 대해 동작하는 수집기 1개
• 수집기는 모델별 MIB 정보 분석(Parsing)하여 Data 수집
• Network 담당자가 신규 모델에 대한 MIB 정보 입력
배포시 수집 누락
수집서버 추가/제거, 수집기 배포
• 수집기 재시작 필요
• 수집기별 수집 대상 장비 변경됨
수집기 재시작
• 수집에 필요한 정보(Meta Data) loading
• 새로운 목록에 대해 수집 시작
Data 누락
• 수집기별 loading 속도가 다름
• 수집 주기(1분) 내에 loading이 어려울 수 있음 : 원거리, data size
31.
배포시 수집 누락
최초배포 시나리오
• Collector 종료 시 Membership에서 Leave 후 즉시 종료
• Master는 수집 대상 장비를 Reassign(1)하고 각 Collector는 새로운 수집 대
상 정보(1)를 읽음
• 배포 및 실행 후 즉시 Membership에 Join
• Master는 수집 대상 장비를 Reassign(2)하고 각 Collector는 새로운 수집 대
상 정보(2)를 읽음
Leave ReassignJoin
11분 12분
32.
배포시 수집 누락
결과
•11분의 수집 보장 안 됨
• 12분에 일부 Collector는 (1) 할당 정보로, 일부는 신규 설정(2)로 수집해서 누
락 및 중복 수집
• Leave 후에 다른 Collector가 준비할 때까지는 계속 수집을 해줘야 Loss가 없음
Leave ReassignJoin
11분 12분
33.
배포시 수집 누락
개선된배포 시나리오
• 종료하는 Collector는 11분에 Membership에서 Leave (zk의 member 노드만
제거하고 실제 프로세스는 살아있음)
• Master가 Reassign 하고, 14분에 모든 Collector가 Redis로부터 새로운 수집
대상 정보를 읽음 ==> 모든 Collector가 감지
• 15분이 되기 전까지는 기존 할당 정보로 수집
• 15분부터는 새로 Assign된 정보로 수집
11분 12분 13분 14분 15분
Leave 신규 수집 대상 정보 ReloadJoin
34.
배포시 수집 누락
결과
•정상 수집
11분 12분 13분 14분 15분
Leave 신규 수집 대상 정보 ReloadJoin
35.
배포시 수집 누락
Coordinator를이용한 구현
• Collector Leave시 Master는 수집 대상 정보 Reassign
• Master는 Coordinator로써 Collector에게 Barrier를 시작하는 Alarm을 보냄 (Prepare)
• Collector는 새로운 할당 정보를 읽고 Barrier에 참여하여 Barrier 완료를 기다림 (I’m ready)
• Collector는 Barrier가 완료되기 전에는 기존 할당 정보로, 완료 후에는 새로운 할당 정보로 동작함
• Barrier가 완료되면 Master는 You may leave Alarm을 보냄
• Leave 하던 Collector는 Master로부터 You may leave를 받고 종료
Prepare I’m ready You may leave
11분 12분 13분 14분 15분
Leave Join
36.
해결책과 결과
• Router근거리에 Collector 배치
• Scale-out
• 장비 모델별 수집항목을 템플릿화
• 배포 시나리오 조정
Router에 Data 수집으로 인한 부담 최소화
운영 비용 최소화
Data 누락 최소화