Migration / Monitoring
Claude Code를 사용하여 PRTG의 네트워크 장비 모니터링 정의를
Zabbix로 마이그레이션해 보았다【후속편】 #
이전 UPS 편에 이어, 이번에는 스위치·라우터·무선 AP가 혼재된 환경을 마이그레이션했다. 전체 동일 벤더라는 통일성을 활용하면서, “먼저 등록·나중에 활성화”라는 안전한 절차로 진행했다.
이전(UPS 편)과의 차이점 #
이전에는 전체 APC UPS라는 균일한 구성이었기 때문에, 템플릿을 1종류만 적용하는 것으로 완료되었다. 이번에는 스위치·라우터·무선 AP가 혼재된 2023년 백업이 대상이다.
이번 마이그레이션 대상 #
PRTG의 2023년 백업(PRTG Configuration.dat)을 분석한 결과,
네트워크 장비로서 다음 11대를 마이그레이션 대상으로 선정했다.
사전 준비: Zabbix 서버에 정적 라우트 추가 #
이번 대상 장비는 모니터링 전용 세그먼트(이하 x.x.x.0/24로 표기)에 존재한다.
Zabbix 서버에서 이 세그먼트로의 경로가 없었기 때문에,
마이그레이션 작업 전에 정적 라우트를 추가했다.
nmcli connection up은 사용하지 않는다.정적 라우트 추가에는
nmcli connection modify와 ip route add를 병용한다.
nmcli connection up을 실행하면 인터페이스가 일시적으로 끊기기 때문에,
운영 환경에서는 피해야 한다.
# 영구 적용(재시작 후에도 유효)
nmcli connection modify 'System eth1' +ipv4.routes 'x.x.x.0/24 x.x.x.1'
# 즉시 반영(현재 세션만)
ip route add x.x.x.0/24 via x.x.x.1 dev eth1
Claude Code 에 전달한 지시 #
이번에는 UPS 편의 반성을 살려, 템플릿 매핑 확인에서 반드시 일시 정지시키는 단계를 지시에 포함했다. UPS 편에서는 전압 임계값 차이로 알림이 오발보했지만, 이번에는 사전 확인으로 그 문제를 방지하는 것이 목표다.
PRTG 백업을 분석해서 네트워크 장비를 Zabbix 로 이행해 주세요.
이번에는 스위치・라우터・AP 가 혼재된 환경입니다.
STEP 1: XML 분석. 디바이스를 switch / router / ap / other 로 분류해서 CSV 로 출력.
STEP 2: template.get 으로 템플릿 목록을 취득하고, 매핑 표를 작성해서 확인을 받는다.
제가 "OK" 라고 답변할 때까지 STEP 3 으로 진행하지 말 것.
STEP 3: 호스트 그룹을 생성하고, 카테고리별로 등록한다.
※ 전체 Disabled(모니터링 비활성화)로 등록할 것. SNMP 통신 확인 후 개별 활성화한다.
STEP 4: 차이 확인 리포트를 출력한다.
STEP 2 의 매핑 확인 #
Claude Code 가 Zabbix API 로 취득한 템플릿 목록을 기반으로, 다음 매핑을 제안했다. 전체가 동일 벤더 제품이므로, 스위치・라우터・AP 는 모두 동일 템플릿으로 문제없었다.
switch → Network Generic Device by SNMP(templateid=10226)
router → Network Generic Device by SNMP(templateid=10226)
ap → Network Generic Device by SNMP(templateid=10226)
인터페이스: SNMP v2c / community=public / port=161
등록 상태: Disabled(전체・통신 확인 후 활성화)
등록 결과 #
카테고리별 등록 내역 #
스위치(5대)
- 코어 스위치 1대
- L2 스위치(PoE 지원)4대
라우터(2대)・AP(4대)
- 엣지 라우터 2대(프라이머리・세컨더리)
- 법인용 무선 AP 4대(각 거점)
UPS 편과의 비교:무엇이 달랐나 #
✅ 동일했던 점
- 백업 XML 의 직접 분석(서버 불필요)
- Claude Code 가 스크립트 생성부터 실행까지 자동
- 호스트 그룹・템플릿의 자동 적용
- 등록 후 차이 리포트 출력
📋 이번에 추가한 것
- 디바이스를 카테고리별로 분류해서 등록
- 템플릿 매핑 확인 단계(일시 정지)
- 전체 Disabled 로 등록(통신 확인 후 활성화)
- 정적 라우트의 사전 추가
주의점:Syslog 센서와 SNMP 통신 #
Zabbix에서도 Syslog를 수신하고자 하는 경우, 별도로 Zabbix의 Syslog 수신 설정이 필요하다. 이번에는 등록만 진행하고, Syslog 설정은 남은 작업으로 나중에 미루었다.
PRTG 쪽 센서가 거의 Ping만이었다는 것은, 기기 측의 SNMP 설정이 미확인 또는 미설정일 가능성이 있다. 모니터링 활성화 전에 기기 측에서
snmp-server enable과 커뮤니티 문자열 설정 확인을 수행할 것을 권장한다.
활성화 전 확인 체크리스트 #
- 기기 측에서 SNMP 에이전트가 활성화되어 있는가(
snmp-server enable) - 커뮤니티 문자열이 설정되어 있는지 확인(Zabbix 측과 일치하는지)
- Zabbix 서버에서 대상 기기의 UDP/161로 통신이 가능한가
- Zabbix에서
snmpwalk로 실제로 응답이 반환되는지 확인
현재 상황과 남은 작업 #
UPS 편에서의 개선점 #
-
템플릿은 반드시 사전 확인 후 적용한다
UPS 편에서는 전압 임계값의 차이로 알람이 오발보되었다. 이번에는 STEP 2에서 반드시 일시정지시켜, 매핑 표를 사람이 확인한 후 진행하는 설계로 변경했다. -
통신이 안 되는 기기는 Disabled로 등록한다
PRTG의 센서 구성을 보면 SNMP가 설정되지 않은 대수가 많았다. 즉시 활성화하지 않고 “등록만 먼저 완료하고 나중에 확인”하는 절차가 안전하다. -
사전 환경 확인을 프롬프트에 포함한다
정적 경로 추가 등, 마이그레이션 스크립트 실행 전에 필요한 환경 준비를 프롬프트 서두에 작성해 두면 Claude Code가 확인 단계를 제안해 준다. -
카테고리 분류 규칙을 명시한다
디바이스명으로부터 카테고리를 추정하게 하는 경우, 명명 규칙(접두사·접미사)을 구체적으로 나열해 두면 분류 정확도가 향상된다.
다음 단계 #
등록한 11대의 SNMP 통신 확인이 완료되면, 순차적으로 모니터링을 활성화해 나갈 것이다. 또한 일부 라우터에 대해서는 Syslog 수신 설정 추가도 검토 중이다.
PRTG 측 센서가 거의 Ping만이었던 기기도, Zabbix의 템플릿을 활용함으로써 CPU 사용률·인터페이스 트래픽·메모리 사용률 등을 추가 비용 없이 모니터링할 수 있게 된다. 마이그레이션은 목표가 아니라, 모니터링 품질을 높이는 출발선이다.