요구 사항
하드웨어
메모리
Zabbix에는 물리 메모리와 디스크 공간이 모두 필요합니다. 필요한 디스크 공간은 모니터링하는 호스트와 매개변수의 수에 따라 달라집니다. 모니터링하는 매개변수의 이력을 장기간 보관하려면 데이터베이스에 이력을 저장할 공간을 충분히 확보할 수 있도록 최소 몇 기가바이트의 공간을 고려해야 합니다. 각 Zabbix 데몬 프로세스에는 데이터베이스 서버에 대한 여러 연결이 필요합니다. 연결에 할당되는 메모리의 양은 데이터베이스 엔진 설정에 따라 달라집니다.
물리 메모리가 많을수록 데이터베이스와 Zabbix가 더 빠르게 작동합니다.
CPU
Zabbix, 특히 Zabbix 데이터베이스는 모니터링하는 매개변수의 수와 선택한 데이터베이스 엔진에 따라 상당한 CPU 리소스가 필요할 수 있습니다.
기타 하드웨어
Zabbix에서 SMS 알림 기능을 사용하려면 직렬 통신 포트와 직렬 GSM 모뎀이 필요합니다. USB-직렬 변환기도 사용할 수 있습니다.
하드웨어 구성 예시
다음 표는 Linux/BSD/Unix 플랫폼을 기준으로 한 하드웨어 구성 예시입니다.
다음은 초기 규모 산정과 하드웨어 구성을 위한 예시입니다. 각 Zabbix 설치 환경은 서로 다릅니다. 운영 환경에 Zabbix를 배포하기 전에 요구 사항을 충분히 파악할 수 있도록 스테이징 또는 개발 환경에서 Zabbix 시스템의 성능을 벤치마크해야 합니다.
| 설치 규모 | 모니터링 지표^1^ | CPU/vCPU 코어 | 메모리 (GiB) |
데이터베이스 | Amazon EC2^2^ |
|---|---|---|---|---|---|
| 소규모 | 1 000 | 2 | 8 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.large/m6g.large |
| 중규모 | 10 000 | 4 | 16 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.xlarge/m6g.xlarge |
| 대규모 | 100 000 | 16 | 64 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.4xlarge/m6g.4xlarge |
| 초대규모 | 1 000 000 | 32 | 96 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.8xlarge/m6g.8xlarge |
^1^ 규모 산정 시 모니터링 지표 1개는 대략 지표 1개 = 아이템 1개 + 트리거 1개 + 그래프 1개라는 식으로 나타냅니다. 이는 추정 기준일 뿐, 모니터링 지표를 계산하는 공식은 아닙니다.
^2^ ARM64 또는 x86_64 아키텍처를 사용하는 Amazon 범용 EC2 인스턴스의 예시입니다. 운영 환경에 설치하기 전에 Zabbix 설치 평가 및 테스트 과정에서 컴퓨팅/메모리/스토리지 최적화 등 적합한 인스턴스 유형을 선택해야 합니다.
실제 구성은 활성 아이템 수와 갱신 주기에 크게 좌우됩니다(자세한 내용은 이 페이지의 데이터베이스 크기 절 참조). 대규모 설치에서는 별도 서버에서 데이터베이스를 실행할 것을 강력히 권장합니다.
지원 플랫폼
보안 요구 사항과 모니터링 서버의 업무상 중요성 때문에, UNIX는 필요한 성능, 내결함성 및 복원력을 일관되게 제공할 수 있는 유일한 운영 체제입니다. Zabbix는 시장에서 널리 사용되는 버전에서 작동합니다.
Zabbix 구성 요소는 다음 플랫폼에서 사용할 수 있으며 테스트되었습니다.
| 플랫폼 | 서버 | 에이전트 | 에이전트 2 | 비고 |
|---|---|---|---|---|
| Linux | x | x | x | |
| Windows | - | x | x | Zabbix 에이전트는 Windows XP(64비트)/Server 2003 이후의 모든 데스크톱 및 서버 버전에서 지원됩니다. Zabbix 에이전트 2는 Windows 10(32비트)/Server 2016 이후의 모든 데스크톱 및 서버 버전에서 지원되며, 심각한 보안 취약점을 방지하기 위해 지원되는 Go 버전으로만 컴파일됩니다. Go 1.21부터 최소 필수 Windows 버전이 높아져, Zabbix 에이전트 2의 최소 버전은 Windows 10/Server 2016이 되었습니다. |
| macOS | x | x | - | |
| IBM AIX | x | x | - | Zabbix 에이전트는 6.1 TL07 / 7.1 TL01 미만 버전의 AIX 플랫폼에서 작동하지 않습니다. |
| FreeBSD | x | x | - | |
| OpenBSD | x | x | - | |
| Solaris | x | x | - | |
| NetBSD | x | x | - | |
| HP-UX | x | x | - |
Zabbix 서버/에이전트는 다른 Unix 계열 운영 체제에서도 작동할 수 있습니다.
Zabbix는 암호화 지원을 포함하여 컴파일된 경우 코어 덤프를 비활성화하며, 시스템에서 코어 덤프 비활성화를 허용하지 않으면 시작되지 않습니다.
필수 소프트웨어
Zabbix는 최신 웹 서버, 주요 데이터베이스 엔진 및 PHP 스크립트 언어를 기반으로 구축되었습니다.
외부 타사 소프트웨어
필수로 표시된 소프트웨어/라이브러리는 반드시 필요합니다. 선택 사항은 특정 기능을 지원하는 데 필요합니다.
| 소프트웨어 | 필수 여부 | 지원 버전 | 비고 |
|---|---|---|---|
| MySQL/Percona | 다음 중 하나 | 8.0.30-9.7.X | MySQL(또는 Percona)을 Zabbix 백엔드 데이터베이스로 사용하는 경우 필요합니다. InnoDB 엔진이 필요합니다. 다음 MySQL 버전에 대한 지원이 추가되었습니다. - 9.5.X: Zabbix 7.4.6부터; - 9.6.X: Zabbix 7.4.9부터; - 9.7.X: Zabbix 7.4.12부터. 서버/프록시 빌드에는 C API (libmysqlclient) 라이브러리 사용을 권장합니다. 운영 환경에서는 LTS 릴리스만 사용할 것을 강력히 권장합니다. "롤링 릴리스", "얼리 액세스" 등으로 표시된 릴리스는 권장하지 않습니다. |
| MariaDB | ^ | 10.5.00-12.3.X | InnoDB 엔진이 필요합니다. 서버/프록시 빌드에는 MariaDB Connector/C 라이브러리 사용을 권장합니다. 다음 MariaDB 버전에 대한 지원이 추가되었습니다. - 12.0.X: Zabbix 7.4.3부터; - 12.2.X: Zabbix 7.4.9부터; - 12.3.X: Zabbix 7.4.12부터. 관련 문서: MariaDB에서 발생할 수 있는 교착 상태 및 MariaDB 10.5.1-10.5.9에서 UI 요소에 접근. 운영 환경에서는 LTS 릴리스만 사용할 것을 강력히 권장합니다. "롤링 릴리스", "얼리 액세스" 등으로 표시된 릴리스는 권장하지 않습니다. |
| PostgreSQL | ^ | 13.0-18.X | PostgreSQL을 Zabbix 백엔드 데이터베이스로 사용하는 경우 필요합니다. 설치 규모에 따라 PostgreSQL의 work_mem 설정 속성(기본값 4MB)을 늘려야 할 수 있습니다. 이렇게 하면 특정 작업에 데이터베이스가 사용하는 메모리를 충분히 확보하여 쿼리 실행에 과도한 시간이 걸리지 않도록 할 수 있습니다. 다음 PostgreSQL 버전에 대한 지원이 추가되었습니다. - 18.X: Zabbix 7.4.4부터. |
| TimescaleDB (PostgreSQL용) | ^ | 2.13.0-2.29.X | TimescaleDB를 PostgreSQL 데이터베이스 확장으로 사용하는 경우 필요합니다. 압축을 지원하는 TimescaleDB Community Edition을 반드시 설치하세요. PostgreSQL과 TimescaleDB의 버전 호환성에 대한 자세한 내용은 TimescaleDB 문서를 참조하세요. 다음 TimescaleDB 버전에 대한 지원이 추가되었습니다. - 2.20.X, 2.21.X: Zabbix 7.4.1부터; - 2.22.X: Zabbix 7.4.4부터; - 2.23.X: Zabbix 7.4.6부터; - 2.24.X: Zabbix 7.4.7부터; - 2.25.X: Zabbix 7.4.8부터; - 2.26.X: Zabbix 7.4.9부터; - 2.27.X: Zabbix 7.4.12부터; - 2.28.X: Zabbix 7.4.13부터; - 2.29.X: Zabbix 7.4.14부터. |
| SQLite | 선택 사항 | 3.3.5-3.53.X | SQLite는 Zabbix 프록시에서만 지원됩니다. SQLite를 Zabbix 프록시 데이터베이스로 사용하는 경우 필요합니다. SQLite 버전 지원: - 3.53.X: Zabbix 7.4.9부터. |
| Elasticsearch | ^ | 7.X | Elasticsearch는 Zabbix 서버에서 이력 데이터 저장 용도로만 지원됩니다. Elasticsearch 지원은 현재 실험 단계입니다. 필수 소프트웨어에 대해서는 다음도 참조하세요: 서버/프록시. |
| smartmontools | ^ | 7.1 이상 | Zabbix 에이전트 2에 필요합니다. |
| who | ^ | 사용자 수 플러그인에 필요합니다. | |
| dpkg | ^ | system.sw.packages 플러그인에 필요합니다. | |
| pkgtool | ^ | system.sw.packages 플러그인에 필요합니다. | |
| rpm | ^ | system.sw.packages 플러그인에 필요합니다. | |
| pacman | ^ | system.sw.packages 플러그인에 필요합니다. | |
| q applets | ^ | qlist 및 qsize는 q applets에 포함되어 있으며, Gentoo Linux의 system.sw.packages 플러그인에 필요합니다. |
Zabbix는 운영 체제에서 제공하는 데이터베이스로도 작동할 수 있지만, 최적의 사용 환경을 위해 데이터베이스 개발자의 공식 저장소에서 설치한 데이터베이스를 사용할 것을 권장합니다.
프런트엔드
Zabbix 프런트엔드가 지원하는 최소 화면 너비는 1200px입니다.
필수로 표시된 소프트웨어/라이브러리는 반드시 필요합니다. 선택 사항은 특정 기능을 지원하는 데 필요합니다.
| 소프트웨어 | 필수 여부 | 지원 버전 | 비고 |
|---|---|---|---|
| PHP | 예 | 8.0.0 - 8.5.X | 다음 PHP 버전에 대한 지원이 추가되었습니다. - 8.5.X: Zabbix 7.4.9부터. |
| Apache | 다음 중 하나 | 2.4 이상 | |
| Nginx | ^ | 1.20 이상 | |
| MySQL | 다음 중 하나 | 참조: 외부 타사 소프트웨어 | |
| PostgreSQL | ^ | ^ | |
| PHP 확장 | < | < | < |
| mysqli | 예 | MySQL을 Zabbix 백엔드 데이터베이스로 사용하는 경우 필요합니다. | |
| pgsql | ^ | PostgreSQL을 Zabbix 백엔드 데이터베이스로 사용하는 경우 필요합니다. | |
| bcmath | ^ | php-bcmath (--enable-bcmath) | |
| mbstring | ^ | php-mbstring (--enable-mbstring) | |
| sockets | ^ | php-net-socket (--enable-sockets); 사용자 스크립트 지원에 필요합니다. | |
| gd | ^ | 2.0.28 이상 | php-gd(배포자가 별도 패키지로 제공하는 경우); PHP GD 확장은 PNG 이미지(--with-png-dir), JPEG 이미지(--with-jpeg-dir) 및 FreeType 2(--with-freetype-dir)를 지원해야 합니다. 일부 프런트엔드 언어에서 발생할 수 있는 그래프의 텍스트 겹침을 방지하려면 2.3.0 이상 버전이 필요할 수 있습니다. |
| libxml | ^ | 2.6.15 이상 | php-xml(배포자가 별도 패키지로 제공하는 경우) |
| xmlwriter | ^ | php-xmlwriter(배포자가 별도 패키지로 제공하는 경우) | |
| xmlreader | ^ | php-xmlreader(배포자가 별도 패키지로 제공하는 경우) | |
| ctype | ^ | php-ctype (--enable-ctype) | |
| session | ^ | php-session(배포자가 별도 패키지로 제공하는 경우) | |
| ldap | 아니요 | php-ldap; LDAP 인증에 필요합니다. | |
| openssl | ^ | php-openssl; SAML 인증에 필요합니다. | |
| gettext | ^ | php-gettext (--with-gettext); 번역에 필요합니다. | |
| cURL | ^ | 7.19.4 이상 | php-curl; 필요한 기능: Duo Universal Prompt MFA 및 SMTP 인증. |
Zabbix에 포함된 타사 프런트엔드 라이브러리:
| 라이브러리 | 필수 여부 | 제공 버전 | 비고 |
|---|---|---|---|
| jQuery JavaScript Library | 예 | 3.6.0 | 브라우저 간 호환성을 고려한 개발 과정을 간소화하는 JavaScript 라이브러리입니다. |
| jQuery UI | ^ | 1.12.1 | jQuery를 기반으로 구축된 사용자 인터페이스 상호 작용, 효과, 위젯 및 테마 모음입니다. |
| SAML PHP Toolkit | ^ | 4.3.1 | Zabbix에 로그인할 수 있도록 SAML 2.0 인증 지원을 추가하는 PHP 툴킷입니다. 제공 버전 이력: - 4.0.0: Zabbix 7.4.0부터; - 4.3.1: Zabbix 7.4.8부터(권장). |
| Duo Universal PHP library | ^ | 1.1.2 | Zabbix에 Duo Universal Prompt 다중 인증 지원을 추가하는 PHP 라이브러리입니다. 제공 버전 이력: - 1.0.2: Zabbix 7.4.0부터; - 1.1.0: Zabbix 7.4.7부터; - 1.1.2: Zabbix 7.4.10부터(권장). |
| Symfony Yaml Component | ^ | 5.1.0 | Zabbix 구성 요소를 YAML 형식으로 내보내고 가져오는 기능을 추가합니다. |
Zabbix는 Apache, MySQL 및 PostgreSQL의 이전 버전에서도 작동할 수 있습니다.
기본 DejaVu 이외의 글꼴에는 PHP 함수 imagerotate가 필요할 수 있습니다. 이 함수가 없으면 그래프를 표시할 때 해당 글꼴이 잘못 렌더링될 수 있습니다. 이 함수는 PHP가 내장 GD와 함께 컴파일된 경우에만 사용할 수 있으며, Debian 및 기타 배포판은 이에 해당하지 않습니다.
Zabbix 프런트엔드 코드 작성 및 디버깅에 사용되는 타사 라이브러리:
| 라이브러리 | 필수 여부 | 최소 버전 | 설명 |
|---|---|---|---|
| Composer | 아니요 | 2.4.1 | PHP 소프트웨어와 필수 라이브러리의 의존성을 관리하기 위한 표준 형식을 제공하는 PHP용 애플리케이션 수준 패키지 관리자입니다. |
| PHPUnit | ^ | 8.5.29 | Zabbix 프런트엔드를 테스트하기 위한 PHP 단위 테스트 프레임워크입니다. |
| SASS | ^ | 3.4.22 | 해석 및 컴파일을 통해 CSS(Cascading Style Sheets)로 변환되는 전처리기 스크립트 언어입니다. |
클라이언트 측 웹 브라우저
쿠키와 JavaScript를 활성화해야 합니다.
Google Chrome, Mozilla Firefox, Microsoft Edge, Apple Safari 및 Opera의 최신 안정 버전을 지원합니다.
IFrame에 동일 출처 정책이 적용되므로 다른 도메인의 프레임 안에 Zabbix를 배치할 수 없습니다.
다만 Zabbix 프레임에 배치된 페이지와 Zabbix 프런트엔드가 동일한 도메인에 있으면, 해당 페이지는 JavaScript를 통해 Zabbix 프런트엔드에 접근할 수 있습니다.
예를 들어 http://secure-zabbix.com/cms/page.html 같은 페이지를 http://secure-zabbix.com/zabbix/의 대시보드에 배치하면 Zabbix에 대한 완전한 JS 접근 권한을 갖게 됩니다.
서버/프록시
필수로 표시된 소프트웨어/라이브러리는 반드시 필요합니다. 선택 사항은 특정 기능을 지원하는 데 필요합니다.
| 요구 사항 | 필수 여부 | 설명 |
|---|---|---|
| libpcre2 | 예 | 다음 기능을 지원하려면 PCRE2 라이브러리가 필요합니다: Perl 호환 정규 표현식 (PCRE). PCRE2 v10.x를 지원합니다. |
| libevent | ^ | 프로세스 간 통신에 필요합니다. 버전 2.0.10 이상이 필요합니다. |
| libevent-pthreads | ^ | 프로세스 간 통신에 필요합니다. |
| libpthread | ^ | 뮤텍스 및 읽기-쓰기 잠금 지원에 필요합니다(libc에 포함되어 있을 수 있음). |
| libresolv | ^ | DNS 확인에 필요합니다(libc에 포함되어 있을 수 있음). |
| libiconv | ^ | 텍스트 인코딩/형식 변환에 필요합니다(libc에 포함되어 있을 수 있음). Linux에서 Zabbix 서버에 필수입니다. |
| libz | ^ | 압축 지원에 필요합니다. |
| libm | ^ | 수학 라이브러리입니다. Zabbix 서버에만 필요합니다. |
| libmysqlclient | 다음 중 하나 | MySQL을 사용하는 경우 필요합니다. |
| libmariadb | ^ | MariaDB를 사용하는 경우 필요합니다. |
| libpq5 | ^ | PostgreSQL을 사용하는 경우 필요합니다. libpq5 버전은 사용하는 PostgreSQL 데이터베이스 버전과 같거나 높아야 합니다. |
| libsqlite3 | ^ | SQLite를 사용하는 경우 필요합니다. Zabbix 프록시에만 필요합니다. |
| libOpenIPMI | 아니요 | IPMI 지원에 필요합니다. Zabbix 서버에만 필요합니다. |
| libssh2 또는 libssh | ^ | 필요한 기능: SSH 검사. 버전 1.8.0 이상(libssh2), 0.9.0 이상(libssh)이 필요합니다. |
| libcurl | ^ | 다음 기능에 필요합니다: - 웹 모니터링, VMware 모니터링 및 HTTP 에이전트 아이템(모두 버전 7.19.1 이상); - Zabbix 에이전트 web.page.* 아이템(버전 7.19.1 이상; 에이전트 요구 사항도 참조); - SMTP 인증 (기본 인증: 버전 7.20.0 이상; OAuth: 버전 7.33 이상; 프런트엔드 요구 사항도 참조); - Elasticsearch (버전 7.28.0 이상). 모든 기능에 버전 7.28.0 이상을 권장합니다. web.page.* 아이템에서 업그레이드된 cURL 기능을 사용하려면 Zabbix 서버/프록시를 다시 시작하세요.SMTP 인증에는 실행 시 libcurl-full 패키지를 사용하세요. |
| libxml2 | ^ | 필요한 기능: VMware 모니터링 및 XML XPath 전처리. |
| net-snmp | ^ | SNMP 지원에 필요합니다. 버전 5.3.0 이상이 필요합니다. 강력한 암호화 프로토콜(AES192/AES192C, AES256/AES256C)은 net-snmp 라이브러리 5.8부터 지원됩니다. RHEL 8+ 기반 시스템에서는 net-snmp 5.8.15 이상 사용을 권장합니다. |
| libunixodbc | ^ | 필요한 기능: 데이터베이스 모니터링. |
| libgnutls 또는 libopenssl | ^ | 필요한 기능: 암호화. 최소 버전: libgnutls - 3.1.18, libopenssl - 1.0.1 |
| libldap | ^ | LDAP 지원에 필요합니다. |
| fping | ^ | 필요한 기능: ICMP ping 아이템. |
| c-ares | ^ | Zabbix를 --with-ares 옵션으로 구성한 경우 비동기 DNS 확인에 필요합니다. 그렇지 않으면 libevent가 사용됩니다.최소 버전: 1.16.0 |
에이전트
| 요구 사항 | 필수 여부 | 설명 |
|---|---|---|
| libpcre2 | 예 | 다음 기능을 지원하려면 PCRE2 라이브러리가 필요합니다: Perl 호환 정규 표현식 (PCRE). PCRE2 v10.x를 지원합니다. 로그 모니터링에 필요합니다. Windows에서도 필요합니다. |
| libpthread | ^ | 뮤텍스 및 읽기-쓰기 잠금 지원에 필요합니다(libc에 포함되어 있을 수 있음). Windows에서는 필요하지 않습니다. |
| libresolv | ^ | DNS 확인에 필요합니다(libc에 포함되어 있을 수 있음). Windows에서는 필요하지 않습니다. |
| libiconv | ^ | 로그 아이템, 파일 내용, 파일 정규 표현식 및 regmatch 아이템의 텍스트 인코딩/형식을 UTF-8로 변환하는 데 필요합니다(libc에 포함되어 있을 수 있음). Windows에서는 필요하지 않습니다. |
| libgnutls 또는 libopenssl | 아니요 | 필요한 기능: 암호화. 최소 버전: libgnutls - 3.1.18, libopenssl - 1.0.1 Microsoft Windows에서는 OpenSSL 1.1.1 이상이 필요합니다. |
| libldap | ^ | LDAP를 사용하는 경우 필요합니다. Windows에서는 지원되지 않습니다. |
| libcurl | ^ | Zabbix 에이전트의 web.page.* 아이템에 대한 확장 지원에 필요합니다. libcurl 없이도 기본 기능을 사용할 수 있습니다(예: web.page.get[http://example.com]). libcurl을 사용하면 에이전트가 자격 증명이 포함된 HTTP URL(예: http://user:password@example.com) 및 HTTPS URL과 같은 추가 기능을 지원합니다. 버전 7.19.1 이상이 필요합니다(7.28.0 이상 권장). 업그레이드된 cURL 기능을 사용하려면 Zabbix 에이전트를 다시 시작하세요. |
| libmodbus | ^ | Modbus 모니터링을 사용하는 경우에만 필요합니다. 버전 3.0 이상이 필요합니다. |
에이전트 2
| 요구 사항 | 필수 여부 | 설명 |
|---|---|---|
| Go | 예 | 소스에서 Zabbix 에이전트 2와 해당 플러그인을 빌드하는 데 필요합니다. Go 1.25 이상을 지원합니다. 설치 지침은 go.dev를 참조하세요. Zabbix 에이전트 2와 해당 플러그인이 사용하는 Go 라이브러리는 Zabbix Git 저장소에 나열되어 있습니다(저장소에서 indirect로 표시된 라이브러리는 다른 필수 라이브러리의 의존성입니다):- Zabbix 에이전트 2 - 플러그인 지원 - PostgreSQL - MongoDB - MSSQL - Ember+ - NVIDIA GPU - 예제 플러그인 |
| libpcre2 | 예 | 다음 기능을 지원하려면 PCRE2 라이브러리가 필요합니다: Perl 호환 정규 표현식 (PCRE). PCRE2 v10.x를 지원합니다. 로그 모니터링에 필요합니다. Windows에서도 필요합니다. |
| libopenssl | 아니요 | 암호화를 사용하는 경우 필요합니다. UNIX 플랫폼에서는 OpenSSL 1.0.1 이상이 필요합니다. OpenSSL 라이브러리에서 PSK 지원이 활성화되어 있어야 합니다. LibreSSL은 지원되지 않습니다. Microsoft Windows 시스템에서는 OpenSSL 1.1.1 이상이 필요합니다. |
웹 서비스
Zabbix 웹 서비스를 사용한 예약 보고서 생성에는 Google Chrome의 최신 안정 버전을 지원합니다.
웹 서비스 빌드에 필요한 Go 버전은 다음 구성 요소에서 사용하는 버전과 같습니다: Zabbix 에이전트 2.
Java 게이트웨이
소스 저장소 또는 아카이브에서 Zabbix를 받았다면 필요한 의존성이 소스 트리에 이미 포함되어 있습니다.
배포판의 패키지로 Zabbix를 받았다면 필요한 의존성이 패키징 시스템을 통해 이미 제공됩니다.
위 두 경우 모두 소프트웨어를 바로 사용할 수 있으며 추가 다운로드가 필요하지 않습니다.
그러나 이러한 의존성을 원하는 버전으로 제공하려는 경우(예: 특정 Linux 배포판용 패키지를 준비하는 경우), 아래에서 Java 게이트웨이와 함께 작동하는 것으로 확인된 라이브러리 버전 목록을 참조하세요. Zabbix는 해당 라이브러리의 다른 버전에서도 작동할 수 있습니다.
다음 표는 현재 원본 코드의 Java 게이트웨이에 포함된 JAR 파일 목록입니다.
| 라이브러리 | 필수 여부 | 포함된 버전 | 비고 |
|---|---|---|---|
| android-json | 예 | 4.3r1 | JSON(JavaScript Object Notation)은 경량 데이터 교환 형식입니다. 이 라이브러리는 Android SDK에서 추출한 org.json 호환 Android 구현입니다. |
| logback-classic | ^ | 1.5.25 | |
| logback-core | ^ | 1.5.25 | |
| slf4j-api | ^ | 2.0.16 |
Java 게이트웨이는 Oracle Java 또는 오픈 소스 OpenJDK(버전 1.6 이상)를 사용하여 빌드할 수 있습니다. Zabbix에서 제공하는 패키지는 OpenJDK로 컴파일됩니다. 다음 표는 배포판별로 Zabbix 패키지 빌드에 사용되는 OpenJDK 패키지 목록입니다.
| 배포판 | OpenJDK 패키지 |
|---|---|
| AlmaLinux 10 | java-21-openjdk-devel (amd64, arm64: 21.0.12.0.8-1.2) |
| AlmaLinux 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3) |
| AlmaLinux 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.332.b09-2; arm64: 1.8.0.382.b05-2) |
| Amazon Linux 2023 | java-22-amazon-corretto-devel (amd64, arm64: 22.0.2+9-1) |
| CentOS Stream 10 | java-21-openjdk-devel (amd64, arm64: 21.0.11.0.10-2) |
| CentOS Stream 9 | java-11-openjdk-devel (amd64, arm64: 11.0.18.0.10-3) |
| CentOS Stream 8 | java-1.8.0-openjdk-devel (amd64, arm64: 1.8.0.362.b08-3) |
| CentOS 7 | java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1) |
| Debian 13 | default-jdk-headless (amd64, arm64: 2:1.21-76) |
| Debian 12 | default-jdk-headless (amd64, arm64: 2:1.17-74) |
| Debian 11 | default-jdk-headless (amd64: 2:1.11-72) |
| OpenSUSE Leap 16 | java-21-openjdk-devel (amd64, arm64: 21.0.11.0-160000.2.1) |
| OpenSUSE Leap 15 | java-17-openjdk-devel (amd64: 17.0.5.0-150400.3.9.3; arm64: 17.0.8.0-150400.3.27.1) |
| Oracle Linux 10 | java-21-openjdk-devel (amd64, arm64: 21.0.11.0.10-2.0.1) |
| Oracle Linux 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4.0.1; arm64: 11.0.20.0.8-2.0.1) |
| Oracle Linux 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4.0.1); java-11-openjdk-devel (arm64: 11.0.20.0.8-3.0.1) |
| Oracle Linux 7 | java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1) |
| Raspberry Pi OS 13 | default-jdk-headless (arm64, armhf: 2:1.21-76) |
| Raspberry Pi OS 12 | default-jdk-headless (arm64, armhf: 2:1.17-74) |
| Raspberry Pi OS 11 | default-jdk-headless (arm64: 2:1.11-72; armhf: 2:1.11-72+b4) |
| RHEL 10 | java-21-openjdk-devel (amd64, arm64: 21.0.12.0.8-1.2) |
| RHEL 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3) |
| RHEL 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4; arm64: 1.8.0.382.b05-2) |
| RHEL 7 | java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1) |
| Rocky Linux 10 | java-21-openjdk-devel (amd64, arm64: 21.0.12.0.8-1.2) |
| Rocky Linux 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3) |
| Rocky Linux 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4; arm64: 1.8.0.382.b05-2) |
| SLES 16 | java-21-openjdk-devel (amd64, arm64: 21.0.11.0-160000.1.1) |
| SLES 15 | java-17-openjdk-devel (amd64: 17.0.5.0-150400.3.9.3; arm64: 17.0.8.0-150400.3.27.1) |
| Ubuntu 26.04 | default-jdk-headless (amd64, arm64: 2:1.25-77) |
| Ubuntu 24.04 | default-jdk-headless (amd64, arm64: 2:1.21-75+exp1) |
| Ubuntu 22.04 | default-jdk-headless (amd64, arm64: 2:1.11-72build2) |
| Ubuntu 20.04 | default-jdk-headless (amd64, arm64: 2:1.11-72) |
기본 포트 번호
기본 설정에 적용되는 구성 요소별 개방 포트 목록은 다음과 같습니다.
| Zabbix 구성 요소 | 포트 번호 | 프로토콜 | 연결 유형 |
|---|---|---|---|
| Zabbix 에이전트 | 10050 | TCP | 요청 시 |
| Zabbix 에이전트 2 | 10050 | TCP | 요청 시 |
| Zabbix 서버 | 10051 | TCP | 요청 시 |
| Zabbix 프록시 | 10051 | TCP | 요청 시 |
| Zabbix Java 게이트웨이 | 10052 | TCP | 요청 시 |
| Zabbix 웹 서비스 | 10053 | TCP | 요청 시 |
| Zabbix 프런트엔드 | 80 | HTTP | 요청 시 |
| ^ | 443 | HTTPS | 요청 시 |
| Zabbix 트래퍼 | 10051 | TCP | 요청 시 |
Zabbix 통신을 활성화하려면 방화벽에서 해당 포트를 열어야 합니다. 일반적으로 나가는 TCP 연결에는 명시적인 방화벽 설정이 필요하지 않습니다.
데이터베이스 크기
Zabbix 구성 데이터는 일정한 양의 디스크 공간을 필요로 하며 크기가 크게 증가하지 않습니다.
Zabbix 데이터베이스 크기는 주로 저장되는 이력 데이터의 양을 결정하는 다음 변수에 따라 달라집니다.
- 초당 처리되는 값의 수
Zabbix 서버가 매초 수신하는 새 값의 평균 개수입니다. 예를 들어 갱신 주기가 60초인 모니터링 아이템이 3000개라면, 초당 값의 수는 3000/60 = 50입니다.
이는 매초 50개의 새 값이 Zabbix 데이터베이스에 추가된다는 의미입니다.
- 이력에 대한 하우스키퍼 설정
Zabbix는 일반적으로 몇 주 또는 몇 달의 일정한 기간 동안 값을 보관합니다. 새 값마다 데이터와 인덱스를 위한 일정량의 디스크 공간이 필요합니다.
따라서 30일 동안 이력을 보관하고 초당 50개의 값을 수신한다면, 전체 값의 수는 약 (30*24*3600)* 50 = 129.600.000, 즉 약 1억 3천만 개가 됩니다.
사용하는 데이터베이스 엔진과 수신 값의 유형(부동 소수점 수, 정수, 문자열, 로그 파일 등)에 따라 단일 값을 보관하는 데 필요한 디스크 공간은 40바이트에서 수백 바이트까지 달라질 수 있습니다. 숫자형 아이템은 일반적으로 값당 약 90바이트가 필요합니다^2^. 이 예시에서 1억 3천만 개의 값에는 130M * 90 bytes = 10.9GB의 디스크 공간이 필요합니다.
텍스트/로그 아이템 값의 크기를 정확하게 예측할 수는 없지만, 값당 약 500바이트로 예상할 수 있습니다.
- 추세에 대한 하우스키퍼 설정
Zabbix는 각 아이템의 1시간 단위 최댓값/최솟값/평균/개수 묶음을 다음 테이블에 저장합니다: trends. 이 데이터는 추세 분석과 장기간 그래프에 사용됩니다. 1시간이라는 주기는 변경할 수 없습니다.
Zabbix 데이터베이스는 데이터베이스 유형에 따라 집계값 하나당 약 90바이트가 필요합니다. 추세 데이터를 5년간 보관한다고 가정해 보겠습니다. 아이템 3000개의 값에 필요한 공간은 연간 3000*24*365* 90 = 2.2GB이며, 5년간 필요한 공간은 11GB입니다.
- 이벤트에 대한 하우스키퍼 설정
각 Zabbix 이벤트에는 약 250바이트의 디스크 공간이 필요합니다^1^. Zabbix에서 매일 생성되는 이벤트의 수를 추정하기는 어렵습니다. 최악의 경우 Zabbix가 초당 이벤트 하나를 생성한다고 가정할 수 있습니다.
복구된 이벤트마다 event_recovery 레코드가 생성됩니다. 일반적으로 대부분의 이벤트가 복구되므로 이벤트당 event_recovery 레코드가 하나씩 있다고 가정할 수 있습니다. 이는 이벤트당 80바이트가 추가로 필요하다는 의미입니다.
이벤트에는 선택적으로 태그를 지정할 수 있으며, 각 태그 레코드에는 약 100바이트의 디스크 공간이 필요합니다^1^. 이벤트당 태그 수(#tags)는 설정에 따라 달라집니다. 따라서 각 이벤트에는 #tags * 100바이트의 디스크 공간이 추가로 필요합니다.
이는 이벤트를 3년간 보관하려면 3*365*24*3600* (250+80+#tags*100) = ~30GB+#tags*100B의 디스크 공간이 필요하다는 의미입니다^2^.
^1^ 이벤트 이름, 태그 및 값에 비ASCII 문자가 포함되면 더 많은 공간이 필요합니다.
^2^ 크기 추정치는 MySQL을 기준으로 하며 다른 데이터베이스에서는 다를 수 있습니다.
다음 표에는 Zabbix 시스템에 필요한 디스크 공간을 계산하는 데 사용할 수 있는 공식이 나와 있습니다.
| 매개변수 | 필요한 디스크 공간 계산식(바이트 단위) |
|---|---|
| Zabbix 구성 | 고정 크기입니다. 일반적으로 10MB 이하입니다. |
| 이력 | days*(items/refresh rate)*24*3600*bytes items : 아이템 수 days : 이력 보관 일수 refresh rate : 아이템의 평균 갱신 주기 bytes : 단일 값을 보관하는 데 필요한 바이트 수. 데이터베이스 엔진에 따라 다르며 일반적으로 약 90바이트입니다. |
| 추세 | days*(items/3600)*24*3600*bytes items : 아이템 수 days : 이력 보관 일수 bytes : 단일 추세 값을 보관하는 데 필요한 바이트 수. 데이터베이스 엔진에 따라 다르며 일반적으로 약 90바이트입니다. |
| 이벤트 | days*events*24*3600*bytes events : 초당 이벤트 수. 최악의 경우 초당 이벤트 하나(1개). days : 이력 보관 일수 bytes : 단일 이벤트를 보관하는 데 필요한 바이트 수. 데이터베이스 엔진에 따라 다르며 일반적으로 약 330 + 이벤트당 평균 태그 수 * 100바이트입니다. |
따라서 필요한 전체 디스크 공간은 다음과 같이 계산할 수 있습니다.
구성 + 이력 + 추세 + 이벤트
Zabbix 설치 직후부터 이 디스크 공간이 모두 사용되는 것은 아닙니다. 데이터베이스 크기는 증가하다가 하우스키퍼 설정에 따라 어느 시점에서 더 이상 증가하지 않게 됩니다.
시간 동기화
Zabbix를 실행하는 서버의 시스템 시간을 정확하게 유지하는 것은 매우 중요합니다. ntpd는 호스트의 시간을 다른 컴퓨터의 시간과 동기화하는 가장 널리 사용되는 데몬입니다. Zabbix 구성 요소가 실행되는 모든 시스템의 시간을 동기화된 상태로 유지할 것을 강력히 권장합니다.
네트워크 요구 사항
기본 설정에 적용되는 구성 요소별 개방 포트 목록은 다음과 같습니다.
| 구성 요소 | 포트 |
|---|---|
| 프런트엔드 | http는 80, https는 443 |
| 서버 | 10051(액티브 프록시/에이전트와 함께 사용) |
| 액티브 프록시 | 10051 |
| 패시브 프록시 | 10051 |
| 에이전트 2 | 10050 |
| 트래퍼 | |
| Java 게이트웨이 | 10052 |
| 웹 서비스 | 10053 |
Zabbix와 외부 통신을 활성화하려면 방화벽에서 해당 포트를 열어야 합니다. 일반적으로 나가는 TCP 연결에는 명시적인 방화벽 설정이 필요하지 않습니다.