이 가이드는 Proxmox VE의 네트워크 사용량을 Zabbix로 모니터링하는 방법을 단계별로 설명합니다. Proxmox VE의 REST API를 활용해 노드 및 VM/컨테이너의 네트워크 트래픽을 모니터링하며, Zabbix의 공식 템플릿을 사용해 설정을 간소화합니다. 또한, Zabbix 서버 설치에 필요한 최소 권장 시스템 사양을 포함합니다.
1. 요구 사항
1.1 소프트웨어 요구 사항
- Proxmox VE: 버전 6.0 이상 (최신 버전 권장, 예: 8.2).
- Zabbix: 버전 6.0 이상 (최신 7.0 권장). Proxmox VE HTTP 템플릿 지원.
- 운영 체제: Zabbix 서버는 아래 OS에서 설치 가능:
- Ubuntu 20.04/22.04 LTS
- Debian 11/12
- CentOS/AlmaLinux 8/9
- 데이터베이스: MySQL/MariaDB, PostgreSQL (PostgreSQL 권장).
- 웹 서버: Apache 또는 Nginx.
- PHP: PHP 7.4 이상.
1.2 최소 권장 하드웨어 사양
Zabbix 서버의 하드웨어 사양은 모니터링 대상 호스트 수와 메트릭 수에 따라 달라집니다. 아래는 소규모 환경(호스트 10~50개, 초당 50~100 값)을 위한 최소 권장 사양입니다:
컴포넌트 최소 사양 권장 사양
CPU | 2코어 (예: Intel Xeon E5 또는 AMD EPYC) | 4코어 이상 |
RAM | 4GB | 8GB 이상 |
디스크 | 50GB SSD (데이터베이스 및 로그 포함) | 100GB SSD 이상 (RAID 권장) |
네트워크 | 100Mbps | 1Gbps |
참고: 더 많은 호스트(예: 1000개 이상) 또는 높은 메트릭 처리율(예: 초당 1000 값)에서는 CPU 8코어, RAM 16GB, 고속 NVMe SSD 권장. 자세한 사양은 Zabbix 공식 문서 참조.
2. Zabbix 서버 설치
Zabbix 서버를 Proxmox VE 외부의 별도 VM 또는 컨테이너에 설치하는 것을 권장합니다. 아래는 Ubuntu 22.04 LTS 기준 설치 절차입니다.
2.1 Zabbix 저장소 추가
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_7.0-1+ubuntu22.04_all.deb
sudo apt update
2.2 Zabbix 서버, 프론트엔드, 에이전트 설치
sudo apt install -y zabbix-server-pgsql zabbix-frontend-php php8.1-pgsql zabbix-nginx-conf zabbix-agent
sudo apt install -y postgresql
2.3 데이터베이스 설정
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
/etc/zabbix/zabbix_server.conf 파일 편집:
sudo nano /etc/zabbix/zabbix_server.conf
# 수정
DBPassword=<your_password>
2.4 Nginx 및 PHP 설정
/etc/zabbix/nginx.conf 파일 확인 및 필요 시 서버 IP/포트 수정.
sudo systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
sudo systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm
2.5 Zabbix 웹 인터페이스 설정
- 브라우저에서 http://<zabbix-server-ip>/zabbix 접속.
- 설치 마법사 따라 설정 (기본 사용자: Admin, 비밀번호: zabbix).
- 로그인 후 비밀번호 변경 권장.
3. Proxmox VE에서 Zabbix 에이전트 설치
Proxmox VE 노드에 Zabbix 에이전트를 설치해 로컬 메트릭(네트워크 포함)을 수집합니다.
sudo apt install -y zabbix-agent
sudo nano /etc/zabbix/zabbix_agentd.conf
# 수정
Server=<zabbix-server-ip>
ServerActive=<zabbix-server-ip>
Hostname=<proxmox-node-name>
sudo systemctl restart zabbix-agent
sudo systemctl enable zabbix-agent
4. Proxmox API 설정
Zabbix가 Proxmox VE의 네트워크 메트릭을 수집하려면 API 토큰과 사용자 권한 설정이 필요합니다.
4.1 사용자 생성
- Proxmox 웹 GUI에서 Datacenter > Permissions > Users로 이동.
- "Add" 클릭, 사용자 이름 입력 (예: zabbix@pve).
4.2 API 토큰 생성
- Datacenter > Permissions > API Tokens로 이동.
- "Add" 클릭, 사용자 선택 (zabbix@pve), Token ID 입력 (예: ZabbixMonitoring).
- "Privilege Separation" 체크 해제.
- 생성된 Token ID (zabbix@pve!ZabbixMonitoring)와 Secret 복사.
4.3 권한 설정
- Datacenter > Permissions > Add > User Permission:
- Path: /
- User: zabbix@pve
- Role: PVEAuditor
- Datacenter > Permissions > Add > API Token Permission:
- Path: /
- Token: zabbix@pve!ZabbixMonitoring
- Role: PVEAuditor
참고: 최소 권한으로 설정하려면 /nodes, /vms 경로에 Sys.Audit, VM.Audit 권한 부여.
5. Zabbix에서 Proxmox 모니터링 설정
5.1 Proxmox VE HTTP 템플릿 적용
- Zabbix 웹 인터페이스에서 Configuration > Templates로 이동.
- "Import" 클릭, 공식 Proxmox VE by HTTP 템플릿 다운로드 후 업로드.
5.2 호스트 추가
- Configuration > Hosts > Create host:
- Host name: Proxmox 노드 이름 (예: pve1).
- Groups: Proxmox Servers (필요 시 그룹 생성).
- Interfaces: Type Agent, IP는 Proxmox 노드 IP, 포트는 8006 (API 포트).
- Templates 탭에서 Proxmox VE by HTTP 템플릿 추가.
- Macros 탭에서 매크로 설정:
- {$PVE.TOKEN.ID}: zabbix@pve!ZabbixMonitoring
- {$PVE.TOKEN.SECRET}: API 토큰 Secret
- {$PVE.URL.HOST}: Proxmox 노드 IP 또는 호스트명
- {$PVE.URL.PORT}: 8006 (기본값, 변경 시 수정)
- 저장.
5.3 네트워크 모니터링 확인
- Monitoring > Latest data로 이동.
- Host 필터에 Proxmox 노드 이름 입력, Name에 Proxmox 입력 후 Apply.
- 예시 메트릭:
- Proxmox: Network in eth0: 초당 수신 바이트.
- Proxmox: Network out eth0: 초당 송신 바이트.
- VM/컨테이너별: Proxmox: LXC/VM network in/out.
6. 고급 설정
6.1 대역폭(Mbps) 표시
Zabbix에서 네트워크 데이터를 Mbps 단위로 표시하려면:
- Configuration > Templates > Proxmox VE by HTTP > Items로 이동.
- Network in 항목 편집, Units에 bps 설정.
- Preprocessing 탭에서:
- Custom multiplier: 8 / 1000000 (바이트/초 → Mbps).
6.2 알림 설정
- Configuration > Actions > Trigger actions > Create action.
- 조건: 예: Proxmox: Network in eth0 > 100Mbps.
- 작업: 이메일, Slack 등으로 알림 전송.
6.3 클러스터 모니터링
다중 노드 클러스터의 경우, 각 노드를 개별 호스트로 추가하거나, HAProxy를 사용해 API 호출을 단일 엔드포인트로 통합.
7. 문제 해결
- 데이터 수집 안 됨:
- Proxmox API 토큰 및 권한 확인.
-
로 API 테스트.curl -k -H "Authorization: PVEAPIToken=zabbix@pve!ZabbixMonitoring=<secret>" https://<proxmox-ip>:8006/api2/json/cluster/status
- 403 Permission 오류:
- 사용자와 토큰에 동일한 권한 적용.
- Zabbix 에이전트 연결 실패:
- /etc/zabbix/zabbix_agentd.conf의 Server 설정 확인.
- 방화벽 포트(10050, 10051, 8006) 개방.
8. 추가 리소스
9. 결론
Zabbix와 Proxmox VE의 통합은 네트워크 트래픽 모니터링을 위한 강력하고 유연한 솔루션을 제공합니다. 공식 템플릿을 사용하면 설정이 간단하며, 알림 및 대시보드를 통해 실시간 모니터링이 가능합니다. 위 가이드를 따라 설정하면 소규모부터 대규모 환경까지 효과적으로 관리할 수 있습니다.
'서버 리뷰 > Proxmox' 카테고리의 다른 글
Proxmox 내부 VM 접속을 위한 Guacamole vs RustDesk 비교 (0) | 2025.05.13 |
---|---|
Proxmox GPU 패스스루 설정 가이드 (0) | 2025.05.11 |
Proxmox VE 콘솔 가이드: noVNC, xterm.js, SPICE (0) | 2025.05.04 |
Proxmox 폐쇄망 VM 구축 가이드 (0) | 2025.05.03 |
Proxmox VE 2025년 최신 이슈와 소식 (0) | 2025.04.09 |