목차 |
---|
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 : -
- 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 을 사용하여 간단한 트래픽 모니터 컨트롤러를 실행 |