Ubuntu 24.04 Zabbix 7.0 LTS 설치 및 설정 방법
Ubuntu 24.04 환경에서 Zabbix 7.0 LTS를 설치하는 전체 과정을 다룹니다. MySQL 스키마 임포트부터 nginx 프론트엔드 및 agent2 설정까지, 초보자가 흔히 겪는 데이터베이스 연결 오류와 설정 미비 문제를 완벽하게 해결하는 방법을 설명합니다.
구축 목표
Zabbix 7.0 LTS 스택 전체가 실행되는 단일 Ubuntu 24.04 VPS를 구축합니다. 이 스택에는 데이터를 수집하고 알림을 보내는 zabbix-server 데몬, 모든 메트릭을 저장하는 MariaDB/MySQL 데이터베이스, nginx가 제공하는 PHP 프론트엔드, 그리고 서버 자체의 메트릭을 수집하는 zabbix-agent2가 포함됩니다. 구축이 완료되면 두 번째 서버를 대상으로 지정하고 템플릿을 연결하십시오. 디스크가 가득 차거나 서비스가 중단되는 즉시 이메일을 받을 수 있습니다.
Zabbix는 단순한 상태 페이지 도구보다 기능이 많습니다. 템플릿, 트리거, 에스컬레이션 및 이력 보관 기능을 갖춘 실제 시계열 시스템입니다. 대부분의 오류는 사람들이 다음 세 단계를 건너뛰기 때문에 발생합니다. 데이터베이스 스키마 임포트, 서버가 실제로 읽는 데이터베이스 비밀번호 설정, 그리고 nginx 설정 파일에서 두 줄의 주석 해제입니다. 이 단계들을 올바르게 설정하면 나머지는 매우 간단합니다. 단순히 서버의 가동 여부 확인과 공유 가능한 상태 페이지가 목적이라면, 가벼운 Uptime Kuma 상태 모니터를 컨테이너 하나로 실행하는 것이 좋습니다. 반면 메트릭별 임계값 설정과 여러 호스트에 대한 에스컬레이션이 필요하다면 Zabbix가 적합합니다.
7.0 LTS 버전을 사용하십시오. 서버, 프론트엔드, agent2 및 스키마가 함께 버전 관리되며, 향후 수년간 보안 패치가 제공됩니다. 아래의 저장소 파일 이름을 복사하기 전에 공식 Zabbix 다운로드 페이지를 확인하십시오. latest 릴리스 패키지는 항상 최신 7.0 마이너 버전을 가리키지만, 특정 7.0-N 빌드를 고정하여 사용하려면 해당 페이지에 나열된 파일 이름을 사용하면 됩니다. 이 가이드의 다른 모든 명령은 7.0 라인 전체에서 동일하게 작동합니다.
Sizing, ports and prerequisites
root 또는 sudo 권한을 가진 신규 Ubuntu 24.04 KVM VPS를 기준으로 합니다. 리소스 산정 시 다음 사항을 고려하십시오. 소수의 호스트를 모니터링하는 단일 서버에서 server, database, nginx, PHP를 모두 실행하려면 2 GB RAM과 2 vCPUs가 최소 사양입니다. 1 GB 사양의 서버는 부팅은 가능하지만, 데이터 이력이 쌓이면 database 리소스가 부족해집니다. 호스트가 수십 대를 넘어가면 4 GB를 할당하고, 100대가 넘어가면 database를 별도의 서버로 분리하십시오. 디스크 용량은 수집하는 항목의 수와 데이터 보관 기간에 따라 증가합니다. 초기에는 몇 GB를 할당하십시오. housekeeper가 설정된 retention window에 따라 오래된 데이터를 삭제합니다.
Ports: frontend용으로 80 및 443 포트를 사용하며, 공개 또는 특정 IP로 제한할 수 있습니다. server는 active agent가 데이터를 전송할 수 있도록 TCP 10051 포트에서 대기합니다. 각 agent는 server가 데이터를 요청할 수 있도록 TCP 10050 포트에서 대기합니다. 방화벽이 있는 경우 노출이 필요한 포트만 개방하십시오. frontend를 위한 DNS A record 설정을 권장합니다. 실제 인증서를 적용해야 하기 때문입니다. Zabbix는 실행 중인 다른 모든 서비스를 모니터링하므로, 사후에 추가하는 방식이 아니라 2026년에 실행할 가치가 있는 광범위한 self-hosting stack의 일부로 구성해야 합니다.
Step 1 — 공식 Zabbix 7.0 repository 추가
zabbix-release 패키지는 apt source list와 signing key를 시스템에 설치하는 역할만 수행합니다. 패키지를 설치한 후 index를 갱신하십시오.
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo apt updatewget 실행 결과가 404 Not Found인 경우 파일명이 변경된 것입니다. Zabbix 다운로드 페이지에서 Ubuntu 24.04를 선택하고 표시된 zabbix-release URL을 정확히 복사하십시오. 깨끗한 apt update 상태에서는 repo.zabbix.com 라인이 나타나며 키 관련 경고가 발생하지 않습니다. The following signatures couldn't be verified because the public key is not available은 릴리스 패키지가 키를 설치하지 않았음을 의미하므로 dpkg -i을 다시 실행하고 업데이트를 다시 수행하십시오.
Step 2 — 서버, frontend, agent 설치
MySQL 기반의 server, PHP frontend, nginx config, SQL schema files, 그리고 agent2를 한 번에 설치합니다.
sudo apt install -y zabbix-server-mysql zabbix-frontend-php \
zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2zabbix-server-mysql은 MySQL/MariaDB용으로 컴파일된 server입니다. PostgreSQL을 사용하는 경우 zabbix-server-pgsql을 설치하고 아래의 database 단계를 수정하십시오. zabbix-sql-scripts에는 다음에 가져오기(import)할 schema가 포함되어 있습니다. 7.0 버전부터는 별도의 패키지로 분리되었으므로, 이를 누락하면 나중에 import 경로를 찾을 수 없는 오류가 발생합니다. 이 패키지들은 database engine을 포함하지 않습니다. 시스템에 이미 설치되어 있지 않다면 지금 MariaDB를 설치하십시오.
sudo apt install -y mariadb-server
sudo systemctl enable --now mariadbStep 3 — 올바른 character set으로 데이터베이스 생성
Zabbix는 collation 설정에 엄격합니다. 데이터베이스는 utf8mb4_bin과 함께 utf8mb4이어야 합니다. 그렇지 않으면 import 과정 중 foreign-key 오류로 인해 중단됩니다. sudo mysql를 사용하여 root shell을 열고 다음을 실행하십시오:
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER zabbix@localhost IDENTIFIED BY 'choose-a-strong-password';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
SET GLOBAL log_bin_trust_function_creators = 1;
FLUSH PRIVILEGES;SET GLOBAL 라인은 import를 위한 안전장치입니다. Zabbix schema는 stored functions를 생성합니다. binary logging이 활성화된 상태에서 zabbix와 같은 non-SUPER 계정은 함수를 생성할 수 없습니다. MySQL 8은 binary logging이 기본적으로 활성화되어 있으며, 일부 managed MariaDB 빌드도 마찬가지입니다 (stock MariaDB는 활성화되어 있지 않습니다). binary logging이 활성화된 서버에서 해당 flag를 건너뛰면 ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled 오류와 함께 import가 중단됩니다. root 권한으로 설정하면 이 문제가 해결됩니다. import 완료 후 다시 비활성화하십시오. 비밀번호를 정확하게 기록하십시오. server config에는 이와 동일한 문자열이 byte 단위로 일치해야 합니다.
Step 4 — 스키마 가져오기 (가장 많이 누락되는 단계)
새 프론트엔드가 로드되지 않는 가장 흔한 원인은 생성한 데이터베이스가 비어 있기 때문입니다. zabbix-sql-scripts에 포함된 스키마를 데이터베이스에 로드하십시오.
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | \
mysql --default-character-set=utf8mb4 -uzabbix -p zabbixzabbix 비밀번호를 입력해야 합니다. 소형 VPS에서는 30초에서 60초 정도 소요됩니다. 성공하면 아무런 메시지도 출력되지 않으며, 이는 정상적인 상태입니다. zcat: /usr/share/zabbix-sql-scripts/mysql/server.sql.gz: No such file or directory 오류는 zabbix-sql-scripts 패키지가 설치되지 않았음을 의미합니다 (Step 2를 다시 확인하십시오). ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' 오류는 Step 3에서 설정한 비밀번호나 권한이 잘못되었음을 의미합니다. 작업이 완료되면 안전 플래그를 다시 비활성화하십시오.
sudo mysql -e "SET GLOBAL log_bin_trust_function_creators = 0;"sudo mysql -e "SELECT COUNT(*) FROM zabbix.users;" 명령어로 로드 여부를 확인하십시오. doesn't exist 오류가 아닌 숫자가 출력되면 스키마가 정상적으로 로드된 것입니다.
Step 5 — zabbix_server.conf 파일에 데이터베이스 비밀번호 설정
서버는 /etc/zabbix/zabbix_server.conf에서 데이터베이스 인증 정보를 읽습니다. 비밀번호만 설정하면 됩니다. DBName와 DBUser은 이미 zabbix으로 설정되어 있습니다. # DBPassword= 행의 주석을 해제하고 다음과 같이 설정하십시오:
DBName=zabbix
DBUser=zabbix
DBPassword=choose-a-strong-password비밀번호는 Step 3에서 설정한 값과 완전히 일치해야 합니다. DBPassword가 비어 있거나 잘못되면 나중에 "Zabbix server is not running" 오류가 발생합니다. 이는 데몬이 시작된 후 로그인에 실패하여 종료되기 때문입니다. 화면에는 아무런 메시지도 표시되지 않으며, 로그를 통해서만 확인할 수 있습니다.
Step 6 — nginx를 frontend로 지정하기
zabbix-nginx-conf 패키지는 /etc/zabbix/nginx.conf에 server block을 설치하고 /etc/nginx/conf.d/zabbix.conf에서 nginx로 링크를 생성합니다. 하지만 listen 및 server_name 라인이 주석 처리되어 있습니다. 이 라인들을 수정하기 전까지 nginx는 Zabbix를 위해 아무것도 제공하지 않습니다.
server {
listen 80;
server_name zabbix.example.com;
...
}도메인을 사용하십시오. DNS가 없다면 서버의 public IP를 사용하십시오. 주의할 점이 두 가지 있습니다. Ubuntu의 기본 nginx welcome site도 port 80에서 대기하며 default server로 설정되어 있습니다. 따라서 이름이 일치하지 않는 모든 요청에 대해 해당 사이트가 우선권을 갖습니다. 잘못된 페이지가 로드되는 것을 방지하려면 sudo rm -f /etc/nginx/sites-enabled/default를 제거하십시오. 만약 /etc/nginx/conf.d/zabbix.conf이(가) 누락된 경우(패키징 오류), sudo ln -s /etc/zabbix/nginx.conf /etc/nginx/conf.d/zabbix.conf을(를) 사용하여 수동으로 링크를 생성하십시오. 그 다음 테스트하고 reload를 수행하십시오.
sudo nginx -t
sudo systemctl reload nginxnginx -t 실행 결과 test is successful이(가) 출력되어야 합니다. 만약 nginx: [emerg] a duplicate default server for 0.0.0.0:80이(가) 출력된다면, default site와 Zabbix block이 모두 default_server을(를) 점유하고 있는 것입니다. default site를 제거하고 다시 테스트하십시오. 대부분의 경우 conflicting server name 경고만 발생하며 테스트는 통과하지만, 브라우저에는 여전히 기본 welcome page가 표시됩니다. 이는 일치하지 않는 이름에 대해 default site가 우선권을 가졌기 때문이며, 해당 사이트를 제거하면 해결됩니다.
Step 7 — 서비스 시작 및 활성화
server, agent, PHP-FPM, nginx를 실행합니다. 재부팅 후에도 서비스가 유지되도록 활성화합니다.
sudo systemctl restart zabbix-server zabbix-agent2 nginx php8.3-fpm
sudo systemctl enable zabbix-server zabbix-agent2 nginx php8.3-fpmUbuntu 24.04에는 PHP 8.3이 포함되어 있으므로 FPM 서비스는 php8.3-fpm입니다. zabbix-nginx-conf 패키지는 동일한 master 아래에서 frontend를 실행합니다. server가 시작되었고 정상 작동하는지 확인합니다:
sudo systemctl status zabbix-server --no-pager
sudo tail -n 20 /var/log/zabbix/zabbix_server.log정상적인 로그는 server가 시작되었고 housekeeper, poller, trapper 프로세스가 실행 중이라는 메시지로 끝납니다. 만약 [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost'이 나타나면 Step 5의 DBPassword가 일치하지 않는 것입니다. 이를 수정하고 재시작하십시오. [Z3005] query failed: [1146] Table 'zabbix.dbversion' doesn't exist 라인이 나타나면 Step 4의 schema import를 건너뛴 것이며, 이 경우 server가 읽을 데이터가 없습니다.
Step 8 — 웹 설정 마법사 완료
http://your-domain-or-ip로 접속합니다. Zabbix 설정 마법사가 실행됩니다. 다음 단계를 진행하십시오.
- Welcome — 언어를 선택합니다.
- Check of pre-requisites — 모든 항목이 기본적으로 OK로 표시되어야 합니다. 패키지에 포함된
/etc/zabbix/php-fpm.conf풀이 Zabbix에 필요한 PHP 제한 값을 이미 설정해 둡니다. - Configure DB connection — database type은 MySQL, host는
localhost, port는0(기본 포트 또는 socket)를 입력합니다. database name은zabbix, user는zabbix를 입력하고 Step 3에서 설정한 비밀번호를 입력합니다. 자격 증명이 틀리거나 schema가 없으면 이 단계에서 오류가 발생합니다. - Settings — Zabbix server host는
localhost, port는10051로 유지하고 설치 이름을 지정합니다. - Pre-installation summary, 이후 Install — 마법사가
/etc/zabbix/web/zabbix.conf.php를 생성합니다. - Finish —
Admin(대문자 A) 계정으로 로그인합니다. 비밀번호는zabbix입니다. 로그인 후 즉시 Users 메뉴에서 비밀번호를 변경하십시오.
마법사에서 Cannot create the configuration file 오류가 발생하면 웹 사용자가 /etc/zabbix/web/를 쓸 수 없다는 의미입니다. 안내되는 zabbix.conf.php를 다운로드한 후, sudo를 사용하여 해당 위치에 직접 배치하고 Finish를 클릭하십시오.
Step 9 — Add the local host and attach a template
Zabbix는 자동으로 자기 자신을 모니터링하지 않습니다. Data collection → Hosts → Create host로 이동합니다. host name을 zabbix-server으로 설정합니다. Linux servers group에 추가합니다. IP 127.0.0.1, port 10050인 Agent interface를 추가합니다. Templates 항목에서 Linux by Zabbix agent을 연결합니다(passive-poll 방식입니다. Linux by Zabbix agent active은 agent push 방식입니다). 저장합니다.
1분 이내에 host 행에 녹색 ZBX 레이블이 표시되며, Monitoring → Latest data에 메트릭이 나타납니다. 빨간색 ZBX 레이블은 서버가 agent에 접속할 수 없음을 의미합니다. 이는 아래에서 다루는 오류 모드이며, 이 단계의 실수가 아닙니다.
Step 10 — 유용한 trigger 하나와 이메일 alert
Linux by Zabbix agent template에는 이미 높은 CPU 사용률, 낮은 메모리, 디스크 용량 부족에 대한 trigger가 포함되어 있습니다. 따라서 template을 연결하는 즉시 alert를 받을 수 있습니다. trigger 생성 방법을 배우기 위해 직접 생성해 보겠습니다. host를 열고 Triggers → Create trigger로 이동합니다. 이름을 Root filesystem over 90% full on {HOST.NAME}으로 설정하고, severity를 High로 지정한 뒤 다음 expression을 입력합니다.
last(/zabbix-server/vfs.fs.dependent.size[/,pused])>90vfs.fs.dependent.size[/,pused]는 template의 filesystem discovery가 root filesystem을 위해 생성하는 percent-used item입니다. (7.0 버전의 Linux template은 vfs.fs.get를 한 번만 수집하고 각 mount 지점별 item을 유도합니다.) 따라서 추가 데이터 수집 없이 trigger가 작동합니다. 저장을 완료합니다.
trigger는 action이 누군가에게 알림을 보내기 전까지는 dashboard의 행 색상만 변경합니다. Alerts → Media types → Email에서 SMTP server, port, sender address, connection security (일반적으로 STARTTLS) 및 relay credentials를 설정합니다. 그 다음 Test를 실행하십시오. 여기서 실패하면 실제 alert가 발생하기 전에 SMTP 경로에 문제가 있음을 의미합니다. Users → Users → Admin → Media → Add에서 Admin 사용자에게 이메일 주소를 할당하고 알림을 받을 severity를 선택합니다. 그 다음 Alerts → Actions → Trigger actions → Create action에서 설정을 연결합니다. Trigger severity >= Warning과 같은 condition을 추가하고, Operations에서 Admin에게 Email로 전송하도록 설정합니다. 저장 후 활성화합니다. 채팅 알림을 선호합니까? Zabbix 7.0은 Slack, Discord, Telegram용 webhook media type을 제공합니다. Email과 동일한 방식으로 설정한 뒤 사용자에게 할당하십시오.
Agent를 이용한 두 번째 서버 모니터링
다른 서버를 모니터링하려면 해당 서버에도 Zabbix repository를 추가해야 합니다. Ubuntu 24.04에는 Zabbix 패키지가 기본 포함되어 있지 않습니다. 그 다음 agent만 설치합니다.
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb
sudo apt update
sudo apt install -y zabbix-agent2/etc/zabbix/zabbix_agent2.conf 파일을 수정합니다. Passive polling을 사용하려면 Server을 Zabbix server의 IP로 설정합니다. Active checks를 사용하려면 ServerActive과 frontend에서 생성한 host와 일치하는 고유한 Hostname을 설정합니다.
Server=10.0.0.10
ServerActive=10.0.0.10
Hostname=web-01sudo systemctl enable --now zabbix-agent2을 실행합니다. Zabbix server에서 이 장비의 TCP 10050 포트를 허용합니다. Frontend에서 Agent interface가 해당 장비의 IP를 가리키는 host를 생성하고 Linux template을 연결합니다. 1분 이내에 데이터가 보고됩니다.
Failure modes, with the strings you will see
Frontend shows Error connecting to database or a database error. 마법사의 DB 단계에서 Access denied for user 'zabbix'@'localhost' (using password: YES)이 발생하면 비밀번호가 Step 3와 일치하지 않거나 GRANT가 실행되지 않은 것입니다. 데이터베이스 연결은 성공했으나 frontend에서 The frontend does not match Zabbix database 또는 Table 'zabbix.users' doesn't exist이 표시되면 Step 4의 schema import가 건너뛰어지거나 실패한 것입니다. 새로 생성한 데이터베이스에 해당 단계를 다시 실행하십시오.
Orange banner: Zabbix server is not running: the information displayed may not be current. frontend는 작동 중이나 live server에 도달할 수 없는 상태입니다. 원인은 세 가지이며, 첫 번째 원인이 가장 빈번합니다. 서비스가 중지된 경우입니다. systemctl status zabbix-server을 확인하고 서비스를 시작하십시오. 서비스는 실행 중이나 데이터베이스에 도달할 수 없는 경우입니다. 로그에 [Z3001] connection to database 'zabbix' failed: [1045] Access denied이 표시되면 DBPassword이 잘못되었거나 비어 있음을 의미합니다. 또는 frontend가 잘못된 서버를 가리키는 경우입니다. 이 설정은 /etc/zabbix/web/zabbix.conf.php의 host localhost port 10051에 저장됩니다. Ubuntu에는 기본적으로 SELinux가 설치되어 있지 않으므로, RHEL 가이드에서 언급하는 SELinux-socket 문제는 해당되지 않습니다. 이 경우 대부분 데이터베이스 비밀번호 문제이거나 서비스가 중지된 상태입니다.
Host shows a red ZBX label; item error Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused. agent가 실행 중이 아니거나 listening 상태가 아닙니다. systemctl status zabbix-agent2을 확인하고 ListenPort=10050을 확인하십시오. "connection refused" 대신 timeout이 발생하는 것은 방화벽이 port 10050을 차단하고 있음을 의미합니다. 관련 Received empty response from Zabbix Agent. Assuming that agent dropped connection because of access permissions.은 agent에는 도달할 수 있으나 Server= 라인에 Zabbix server의 IP가 나열되지 않았음을 의미합니다. IP를 추가하고 agent를 재시작하십시오.
Plain nginx welcome page, or 502 Bad Gateway. welcome page가 표시되면 default site가 여전히 활성화되어 있거나 Zabbix block이 연결되지 않은 상태입니다. /etc/nginx/sites-enabled/default을 제거하고 Step 6와 같이 /etc/nginx/conf.d/zabbix.conf이 존재하는지 확인하십시오. 502은 nginx가 PHP에 도달했으나 PHP-FPM이 중지되었거나 다른 socket에서 listening 중임을 의미합니다. php8.3-fpm를 시작하고 Zabbix block의 fastcgi_pass socket이 실행 중인 pool과 일치하는지 확인하십시오.
Backups, upgrades, and TLS
데이터베이스에는 전체 이력이 포함되어 있습니다. 따라서 mysqldump을 사용하여 정기적으로 백업을 수행하고, 덤프 파일을 서버 외부에 보관하십시오.
mysqldump --single-transaction zabbix | gzip > zabbix-$(date +%F).sql.gz/etc/zabbix 설정 파일은 크기가 작으므로 백업하는 것이 좋습니다. 하지만 설정 파일은 재구축이 가능하지만, 데이터는 불가능합니다. 복구 과정은 백업의 역순입니다. 데이터베이스를 생성하고, 덤프를 임포트한 뒤, 설정 파일이 해당 데이터베이스를 가리키도록 지정하십시오.
7.0 버전 계열 내에서의 업그레이드는 일반적인 apt update && apt upgrade 실행과 같습니다. 서버가 다음 시작 시 스키마 마이그레이션을 적용하므로, 패키지를 업그레이드한 후 zabbix-server를 재시작하십시오. 메이저 버전 간의 업그레이드는 의도적인 이동입니다. 업그레이드 노트를 읽고, 먼저 데이터베이스를 덤프하십시오. 스키마 변경은 되돌릴 수 없습니다. 이러한 일방향 변경 때문에 LTS 버전을 선택하고 해당 버전을 유지해야 합니다.
프론트엔드를 일반 HTTP로 방치하지 마십시오. DNS가 서버를 가리키게 되면 Certbot and Let's Encrypt on nginx for Ubuntu 24.04를 사용하여 인증서를 설치하십시오. 이 도구는 서버 블록을 수정하여 443 포트에서 대기하고 80 포트를 리다이렉트합니다. 다른 서버를 모니터링하기 위해 로그인하는 서버를 보안 강화할 때는, fail2ban banning brute-force SSH attempts를 사용하여 SSH도 잠그십시오. 모니터링 로그인 정보가 평문으로 전송되어서는 안 되며, 비밀번호 추측 공격에 노출되어서도 안 됩니다.
FAQ
Zabbix agent가 반드시 필요한가요, 아니면 agent 없이도 모니터링이 가능한가요?
두 방식 모두 가능합니다. agent(agent2)는 CPU, memory, disks, processes, services, log files와 같은 상세한 호스트별 메트릭을 제공하며, 관리 권한이 있는 서버에 사용하는 표준 방식입니다. agentless 모니터링은 소프트웨어를 설치할 수 없는 장비에 사용합니다. 스위치와 프린터에는 SNMP를, 연결 확인에는 ICMP ping을, 엔드포인트에는 HTTP check를, 하드웨어 상태 확인에는 IPMI를 사용합니다. 대부분의 실제 환경에서는 두 방식을 혼합하여 사용합니다.
frontend에 Zabbix server가 실행 중이 아니라는 메시지가 표시됩니다.
frontend는 작동 중이지만 실행 중인 zabbix-server 프로세스에 연결할 수 없는 상태입니다. 대개 서버가 시작되었으나 zabbix_server.conf 내의 DBPassword 설정이 잘못되었거나 비어 있어 로그인을 실패하고 종료된 경우입니다. systemctl status zabbix-server을 실행하여 /var/log/zabbix/zabbix_server.log를 확인하십시오. [Z3001] connection to database ... failed 라인이 있으면 해당 오류를 확인할 수 있습니다. 비밀번호를 수정한 후 재시작하면 1분 이내에 오류 메시지가 사라집니다.
MySQL만 사용해야 하나요, 아니면 PostgreSQL도 사용 가능한가요?
두 데이터베이스 모두 지원됩니다. 이 가이드와 같이 MariaDB 또는 MySQL을 사용하는 zabbix-server-mysql 방식과 PostgreSQL를 사용하는 zabbix-server-pgsql 방식이 있습니다. 소규모 설치에서는 선택이 중요하지 않습니다. 대규모 환경에서는 TimescaleDB 확장을 사용하는 PostgreSQL가 history table을 파티셔닝하여 유지 관리 비용을 크게 낮춰주므로 대형 사이트에서 선호됩니다. 하나를 선택하여 사용하십시오. 나중에 데이터베이스를 변경하려면 설정 변경이 아닌 전체 export 및 re-import 과정이 필요합니다.
Zabbix all-in-one 서버에는 얼마만큼의 RAM이 필요한가요?
소수의 호스트를 모니터링하는 단일 서버의 경우 2 GB가 최소 사양이며, 수십 대 이상의 호스트를 안정적으로 운영하려면 4 GB가 적당합니다. 메모리는 주로 database cache와 server의 pollers에 사용됩니다. 1 GB VPS에서도 실행은 가능하지만, history 데이터가 증가하면 database가 메모리 부족 상태에 빠집니다. 호스트가 100대를 초과하면 database를 별도 서버로 분리하고, 단일 장비에 RAM을 추가하기보다 database의 buffer pool을 튜닝하십시오.
서버 몇 대를 모니터링하는 데 Zabbix는 과한가요?
그럴 수 있습니다. 단순히 "서버가 작동 중인가?"를 확인하고 상태 페이지를 공유하는 것이 목적이라면, Uptime Kuma와 같은 가벼운 도구가 구축이 빠르고 한눈에 확인하기 쉽습니다. 메트릭별 임계값, 이력 그래프, 호스트 템플릿 및 에스컬레이션 규칙이 필요한 경우에는 Zabbix를 선택하십시오. 이러한 기능은 단순한 pinger로는 대규모 환경에서 구현할 수 없습니다.