
현재 회사에 많은 직원들이 네트워크 불안정성으로 고통받고 있음. 간헐적인 패킷 손실 및 네트워크 단절 현상 으로 업무에 대한 차질이 생기고 있는데 트래픽을 데이터화하여 실시간 관측 가능성을 확보하고 네트워크 병목 구간을 특정할 수 있는 정량적 데이터를 보고자 하는 개인 프로젝트
현재 사용되는 ASUS 라우터는 SNMP IP 를 지원해주는 장비가 아니기 때문에 전사 네트워크 트래픽에 대한 조사가 어려움. 직원들의 개인 컴퓨터 혹은 휴대폰에 대한 트래픽은 작을 것이라 판단하여, 사내 vm 네트워크 트래픽에 대한 전수조사 진행
pve-exporter 가 proxmox 의 현재 노드 상태(Json) 요청pve-exporter : proxmox의 JSON 데이터를 prometheus 포맷으로 바꿈snmp-exporter : 숫자(OID) 로 된 암호 같은 데이터를 우리가 알아볼 수 있는 이름(ifInOctets) 으로 매핑해줌. snmp.yml 이라는 설정파일 중요docker-compose.yml 에서 pve-exporter 를 띄움Prometheus.yml scrap_interval: 15s → 15초마다 PVE Exporter(:9221) 에 접속 후 데이터 전송 요청pve.yml API Token 을 이용해 Exporter 가 Proxmox API(:8006) 에 접속해서 JSON 형태의 원본 데이터 받음. 전송된 JSON 데이터를 Prometheus 의 텍스트 포맷(pve_cpu_usage 0.5 등) 으로 바꿔 prometheus 전달ASUS 공유기에 SNMP 메뉴가 없어, 하드웨어적으로 모니터링을 지원하지 않는 모델. 공유기 모니터링 불가능. snmpd 를 설치해서 테스트. 운영중인 204번 서버에 SNMP 에이전트(snmpd) 설치하면, 그 서버가 스위치인 것처럼 동작하여 SNMP 모니터링 파이프라인이 정상 작동하는지 검증
docker restart prometheus

vmbr0
tapXXXTi0
tap + [VM ID 번호] + i0tap118i0: 118번 VM의 랜선snmp-exporter, pve-exporter, blackbox-exporternode-exporter, window-exporter, snmpdsnmpd 를 root 에 설치하는 이유
1. 포트 번호
- 0 ~ 1023 번 포트는 오직 root 만 포트 생성 가능
- SNMP 의 표준 포트 : UDP 161번을 사용하기 때문에 root 권한이 없으면 Permission denied
2. 하드웨어 및 커널 정보 접근 권한
- snmpd 의 목적은 시스템 감시. 네트워크 인터페이스의 트래픽, CPU 온도, 디스크의 물리적 상태 등은 운영