목차 |
---|
PDCA
전공교육 | 개발실습 | 부서교육 | 부서업무지원 | 기타 | |
---|---|---|---|---|---|
P | 과학데이터교육 일 3.2시간 이상 수강 | omz 설치 및 실습, snmp설치 및 실습, influx DB 설치 및 실습, mininet으로 만든 sdn의 snmp 데이터 가시화하기 | 우수성과취합 | ||
D | R기초 11시간 수강 | omz 설치 및 실습, snmp+telegraf+inluxdb+grafana로 네트워크 모니터링 환경 구성, ryu 컨트롤러 실습 | 32개중 13개 취합 | ||
C | 일정에 맞게 수강하였다. | 간단한 환경구성을 해보았고 성공적이었다. | 13개를 취합하긴했지만 내용이 통일되게 하지 못했다. | ||
A | 전공교육은 계속 이렇게 진행하면 될것같다. | ryu컨트롤러로 mininet의 snmp데이터 저장을 따로 하지는 못했다 | 일단 모두 취합을 한 후에 다시 한번 정리를 해야할것 같다. |
일일회고
23/02/06
- Fact : oh-my-zsh와 snmp를 설치 및 실습, mininet 토폴로지 구성을 위해 mininet python API 설명서 참조
- Feelings : oh-my-zsh의 자동완성이 너무나도 편리했다.
- Finding : snmp가 네트워크 장비들을 관리하기 위한 프로토콜 이라는 것을 알았고 mininet prthon api를 보면서 mininet 토폴로지 구성 방법에 대해 알았다.
- Future Action Plan : mininet python api를 이용해서 호스트간의 지속적인 ping을 보내는 토폴로지 구성, influxDB 설치
- Feedbacks : -
23/02/07
- Fact : telegraf, influxdb,grafana 설치 및 구동, snmp 연동
- Feelings : 복잡하면서도 체계화가 잘 된 툴인것같다.
- Finding : snmp의 값들을 telegraf를 통해 influxdb에 저장하고 grafana로 influxdb에 저장된 네트워크 장비들의 상태를 모니터링 할 수 있는 시스템 구성인것을 알았다.
- Future Action Plan : mininet python api를 이용해서 호스트간의 지속적인 ping을 보내는 토폴로지 구성 및 해당 토폴로지에 snmp를 구동하고 telegraf, influxdb,grafana를 통해 네트워크 모니터링
- Feedbacks : -
23/02/08
- Fact : mininet python api를 이용한 호스트간 지속적인 ping 보내는 간단한 토폴로지 구성, mininet controller인 ryu 컨트롤러 탐색, telegraf의 .conf 파일을 수정해보면서 influxdb에 다양한 데이터 저장 실습
- Feelings : 네트워크가 정말 복잡하다는 것을 다시 깨달았다.
- Finding : telegraf의 설정에 따른 snmp저장 형식을 배웠다. mininet의 기본 switch인 ovSwitch는 호스트 내에서 snmpd를 실행시킬수 없고 전체로 관리 된다
- Future Action Plan : 만든 토폴로지에 snmp를 구동하고 telegraf, influxdb,grafana를 통해 네트워크 모니터링
- Feedbacks : -
23/02/09
- Fact : ryu wiki를 보면서 컨트롤러 실습, mininet으로 만든 sdn의 snmp 데이터 grafana에 시각화
- Feelings : 알면 알수록 더욱 미궁속으로 빠져들어가는 느낌이다.
- Finding : ovSwitch를 사용한 토폴로지에서는 snmp가 리눅스에서 실행되기 때문에 telegraf의 설정파일을 수정하고 snmpd와 telegraf, influxdb를 모두 실행시키면 mininet을 켯을 때 자동으로 토폴로지의 호스트에 대한 iftable이 잡히게 되서 알아서 influxdb에 저장되게 된다.
- Future Action Plan : 토폴로지의 switch의 정보가 원래 snmp에 안잡히는 건지를 찾아봐야겠다.
- Feedbacks : -
23/02/10
- Fact : 성과취합만 했다.
- Feelings : 생각보다 파일들의 내용이 통일되어있지 않아서 더욱 시간이 걸리는 느낌이었다.
- Finding : -
- Future Action Plan : -
- Feedbacks : -
Memo
23/02/06
- 참고사항
- snmp란? https://ja-gamma.tistory.com/entry/SNMP-%EA%B0%9C%EB%85%90%EB%8F%99%EC%9E%91%EC%9B%90%EB%A6%AC → 네트워크 장비들을 관리하기 위해 장비들의 정보를 주고받을 프로토콜이 필요한데 이에 쓰이는 프로토콜
- mininet으로 sdn 구성하기 https://seoneu.tistory.com/9 → mininet으로 간단한 sdn 구성
- 네트워크 마스크 https://kldp.org/node/127933
- mininet Python API 설명서 https://github.com/mininet/mininet/wiki/Introduction-to-Mininet → 파이썬으로 mininet 토폴로지 구성
- 동영상 참고
출처 | 왜 | 내용 | 배운 점 및 기억해야할 점 | 비고 |
---|---|---|---|---|
과학데이터교육 R기초 | 충북대 현장실습 직무교육 | 데이터 분석 이론 기초, R프로그래밍 준비 및 기초, 데이터 분석 환경 설정 | 3차시까지 수강 |
23/02/07
- 참고사항
- https://velog.io/@ifthenelse/%EC%84%9C%EB%B2%84-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-grafana-influx-telegraf telegraf, influxdb,grafana 설치 및 구동
- 동영상 참고
출처 | 왜 | 내용 | 배운 점 및 기억해야할 점 | 비고 |
---|---|---|---|---|
과학데이터교육 R기초 | 충북대 현장실습 직무교육 | 데이터분석 실습 | 수강완료 |
23/02/08
- 참고사항
- ovSwith로 구성한 mininet에서의 snmp 구동 https://discuss.openvswitch.narkive.com/WEURLcpB/ovs-snmp-agent-on-open-vswitch → ovSwitch는 snmp을 지원하지 않기 때문에 리눅스에 snmpd를 실행시키고 해당 인터페이스들의 정보를 받아볼 수 있다.
23/02/09
- 참고사항
- telegraf snmp 설정 https://lkhill.com/telegraf-influx-grafana-network-stats/
- ryu 컨트롤러 실행 https://book.ryu-sdn.org/ko/html/switching_hub.html
배운 것 및 기억해야할 것
지속적인 핑을 주고받는 간단한 토폴로지
코드 블럭 |
---|
#!/usr/bin/python from mininet.net import Mininet from mininet.node import Controller from mininet.cli import CLI from mininet.link import Intf from mininet.log import setLogLevel, info from mininet.topo import Topo class tmpnet(Topo): def build(self, n=2): info( '*** Add switches\n') switch = self.addSwitch('s1') for h in range(n): info( '*** Add host '+str(h)+' and Link Siwtch\n') host = self.addHost('h%s'%(h+1)) self.addLink(host, switch) if __name__ == '__main__': setLogLevel( 'info' ) topo=tmpnet() net=Mininet(topo=topo) net.start() hosts=net.hosts print(hosts) hosts[0].cmd("ping "+hosts[1].IP()+" &") hosts[1].cmd("ping "+hosts[0].IP()+" &") CLI(net) net.stop() |
snmp 정보를 influxdb에 저장하는 telegraf.conf
코드 블럭 |
---|
[[outputs.influxdb]] #influxdb에 데이터베이스를 만들고 해당 정보를 기입한다. urls = ["http://127.0.0.1:8086"] database = "telegrafdb" username = "telegraf" password = "12345" [[inputs.snmp]] agents = [ "localhost" ] version = 2 community = "public" interval = "10s" timeout = "10s" retries = 3 [[inputs.snmp.field]] name = "hostname" oid = "RFC1213-MIB::sysName.0" is_tag = true # IF-MIB::ifTable contains counters on input and output traffic as well as errors and discards. [[inputs.snmp.table]] name = "interface" inherit_tags = [ "hostname" ] oid = "IF-MIB::ifTable" # Interface tag - used to identify interface in metrics database [[inputs.snmp.table.field]] name = "ifDescr" oid = "IF-MIB::ifDescr" is_tag = true |
mininet + ryu controller
코드 블럭 |
---|
sudo mn --controller remote #외부 컨트롤러를 사용하여 mininet 실행 sudo python3 /usr/local/bin/ryu-manager --verbose ~/ryu/ryu/app/simple_monitor_13.py # ryu의 예제 중 openflow1.3 을 사용하여 간단한 트래픽 모니터 컨트롤러를 실행 |