Zabbix 상세 개요
Zabbix는 오픈 소스 기반의 통합 모니터링 솔루션으로, 네트워크, 서버, 애플리케이션, 데이터베이스, 클라우드 환경 등을 실시간으로 감시하고 관리할 수 있는 도구이다.
2001년 Alexei Vladishev가 개발을 시작했으며, 현재 기업 및 공공기관에서 널리 사용되고 있다.
1. Zabbix의 주요 특징
1.1 다양한 모니터링 대상 지원
• 네트워크 장비(라우터, 스위치, 방화벽 등)
• 서버 및 가상 환경(Linux, Windows, VMware 등)
• 애플리케이션 및 데이터베이스(MySQL, PostgreSQL, Oracle, Redis 등)
• 클라우드 환경(AWS, Azure, GCP 등)
1.2 데이터 수집 방식
1. 에이전트 기반 (Zabbix Agent)
• 모니터링 대상 서버에 Zabbix Agent를 설치하여 데이터를 직접 수집.
• CPU, 메모리, 디스크 사용량 등 정밀한 모니터링 가능.
2. 에이전트리스 모니터링
• SNMP, SSH, WMI, HTTP, API를 이용하여 외부 장비 및 애플리케이션을 모니터링.
• 네트워크 장비, 클라우드 서비스 등에서 주로 사용.
3. 푸시 방식 지원 (Zabbix Sender, Trapper, Webhook)
• 외부 시스템에서 데이터를 직접 Zabbix 서버로 전송 가능.
1.3 데이터 저장 및 분석
• 데이터는 시계열 데이터베이스에 저장되며, 장기간 보관 및 분석 가능.
• 내장된 대시보드 및 차트를 통해 실시간으로 데이터를 시각화.
• 트리거(Trigger) 기능을 활용해 특정 임계값 초과 시 알람 발생.
1.4 자동화 및 확장성
• 자동 검색(Auto Discovery): 네트워크 내 장비를 자동으로 탐색하여 등록.
• 템플릿 지원: 서버, 네트워크 장비, 애플리케이션별 미리 정의된 설정 제공.
• 분산 모니터링(Zabbix Proxy): 대규모 환경에서 Zabbix Proxy를 사용해 여러 지역의 시스템을 효율적으로 관리.
1.5 알림 및 연동 기능
• 이메일, SMS, Telegram, Slack, Webhook 등을 통한 알림 전송 가능.
• Grafana와 연동하여 보다 강력한 시각화 가능.
2. Zabbix 아키텍처
2.1 주요 컴포넌트
1. Zabbix Server: 모니터링 데이터 수집 및 저장, 트리거 분석, 이벤트 관리.
2. Zabbix Database: 수집된 데이터 저장 (MySQL, PostgreSQL, Oracle, TimescaleDB 등 지원).
3. Zabbix Frontend: 웹 기반 관리 콘솔 (PHP 기반).
4. Zabbix Agent: 모니터링 대상에서 데이터를 수집하여 서버로 전송.
5. Zabbix Proxy: 대규모 환경에서 분산 모니터링을 지원하는 중간 서버.
3. Zabbix 설치 및 설정
3.1 Zabbix 서버 설치 (Ubuntu 기준)
# Zabbix 패키지 저장소 추가
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1+ubuntu20.04_all.deb
sudo dpkg -i zabbix-release_6.0-1+ubuntu20.04_all.deb
sudo apt update
# Zabbix 서버, 웹 인터페이스 및 에이전트 설치
sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
# 데이터베이스 생성 및 설정 (MySQL)
sudo mysql -uroot -p
mysql> CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
mysql> CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
mysql> FLUSH PRIVILEGES;
exit;
# Zabbix 데이터베이스 스키마 불러오기
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
# Zabbix 서버 설정 변경
sudo nano /etc/zabbix/zabbix_server.conf
# DBPassword=password (설정 추가)
# Zabbix 서비스 시작 및 활성화
sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2
4. Zabbix 기본 설정
4.1 웹 인터페이스 접속
1. 브라우저에서 http://<Zabbix 서버 IP>/zabbix 접속.
2. 초기 로그인 정보
• 사용자: Admin
• 비밀번호: zabbix
4.2 모니터링 대상 추가
1. Configuration → Hosts 이동.
2. “Create Host” 버튼 클릭.
3. • Hostname: server1
• Groups: Linux servers
• Agent Interface: server1 IP 입력
4. “Templates” 탭에서 적절한 템플릿 추가 (예: Template OS Linux).
5. “Add” 버튼 클릭하여 저장.
5. Zabbix 활용 예제
5.1 CPU 사용률 모니터링
• Template OS Linux에 포함된 Processor load 항목을 사용하여 CPU 부하 확인.
• 트리거 설정: CPU 부하가 90% 이상 지속되면 알람 발생.
5.2 디스크 공간 모니터링
• 특정 파티션(/var, /home 등)의 남은 공간이 10% 미만일 경우 알람 발생 설정.
5.3 네트워크 트래픽 분석
• Template Net Cisco 같은 네트워크 장비 템플릿을 활용하여 트래픽 모니터링.
• SNMP를 이용해 트래픽 흐름 분석 가능.
5.4 Docker 및 Kubernetes 모니터링
• Template App Docker 또는 Template Kubernetes 활용 가능.
• 컨테이너별 CPU, 메모리, 네트워크 사용량 모니터링.
6. Zabbix의 장점과 단점
6.1 장점
✅ 완전한 오픈 소스 (무료로 사용 가능).
✅ 강력한 확장성 (Zabbix Proxy, 템플릿, API 제공).
✅ 다양한 모니터링 방식 지원 (Agent, SNMP, IPMI, HTTP, Webhook 등).
✅ 강력한 트리거 및 알림 시스템 (Slack, Email, SMS, Telegram 연동).
✅ 대규모 환경에서도 안정적 (수만 개의 장비 모니터링 가능).
6.2 단점
❌ 설치 및 설정이 복잡함 (초기 설정이 많음).
❌ 자체 데이터 저장소 부족 (장기 데이터 보관 시 외부 DB 연동 필요).
❌ 대량의 데이터 처리 시 성능 저하 가능 (최적화 필요).
7. 결론
Zabbix는 강력한 오픈 소스 모니터링 솔루션으로, 다양한 IT 환경에서 네트워크, 서버, 애플리케이션을 모니터링할 수 있다. 대규모 환경에서도 안정적으로 동작하며, 강력한 트리거 및 알림 기능을 제공한다.
초기 설정이 다소 복잡하지만, 템플릿과 자동화 기능을 활용하면 쉽게 확장할 수 있다. 기업 및 공공기관에서 널리 사용되는 신뢰할 수 있는 모니터링 도구이다.