SSD Nodes Learn Hosting plans →
가이드 Matt Connor작성자 Matt Connor · 업데이트됨 2026-08-07

Ubuntu 24.04에 Zabbix 7.0 LTS 설치 및 설정 가이드

Ubuntu 24.04 환경에서 Zabbix 7.0 LTS를 설치하는 방법을 설명합니다. 공식 저장소 추가부터 MariaDB 스키마 구성, nginx 및 agent2 설정까지 단계별로 안내하며 설치 과정에서 발생하는 흔한 오류 해결법을 포함합니다.

구축할 시스템

Ubuntu 24.04 VPS 한 대에서 Zabbix 7.0 LTS 스택 전체를 운영합니다. 여기에는 메트릭을 수집하고 알림을 보내는 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 버전 전체에서 안정적으로 작동합니다.

사이징, 포트 및 사전 요구 사항

root 권한이나 sudo 권한을 가진 최신 Ubuntu 24.04 KVM VPS를 사용한다고 가정합니다. 리소스에 대해 솔직히 말씀드리면, 서버, 데이터베이스, Nginx, PHP를 한 대의 장비에서 운영하며 소수의 호스트를 모니터링할 때 2 GB RAM과 2개의 vCPU가 현실적인 최소 사양입니다. 1 GB 사양의 장비는 부팅은 되지만 기록이 쌓일수록 데이터베이스가 자원 부족에 시달립니다. 수십 대의 호스트를 넘어가면 4 GB를 계획해야 하며, 100대가 넘어가면 데이터베이스를 별도의 서버로 분리하십시오. 디스크 용량은 수집하는 항목의 수와 기록 보관 기간에 따라 증가합니다. 시작 시 몇 GB 정도를 할당하고, 설정한 보관 주기에 따라 housekeeper가 오래된 데이터를 정리하도록 하십시오.

포트: 프론트엔드용으로 80번과 443번 포트가 필요하며, 이를 공개하거나 본인의 IP로만 제한할 수 있습니다. 서버는 능동형 에이전트가 데이터를 전송할 수 있도록 TCP 10051번 포트에서 대기하며, 각 에이전트는 서버가 데이터를 폴링할 수 있도록 TCP 10050번 포트에서 대기합니다. 방화벽이 앞단에 있다면 노출할 포트만 개방하십시오. 프론트엔드용 DNS A 레코드를 설정하는 것이 좋습니다. 실제 인증서를 적용해야 하기 때문입니다. Zabbix 서버는 운영 중인 다른 모든 서비스를 감시하므로, 나중에 추가하는 부가 기능이 아니라 2026년에 운영할 가치가 있는 광범위한 셀프 호스팅 스택의 일부로 포함해야 합니다.

1단계, 공식 Zabbix 7.0 저장소 추가

zabbix-release 패키지는 시스템에 apt 소스 목록과 서명 키를 추가하는 역할만 수행합니다. 패키지를 설치한 후 패키지 인덱스를 새로 고침하십시오.

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

만약 wget 명령이 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 명령을 다시 실행하고 업데이트를 진행하십시오.

2단계, 서버, 프론트엔드, 에이전트 설치

MySQL 기반으로 빌드된 서버, PHP 프론트엔드, nginx 설정, SQL 스키마 파일, 그리고 agent2를 한 번에 설치합니다.

sudo apt install -y zabbix-server-mysql zabbix-frontend-php \
  zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

zabbix-server-mysql은 MySQL/MariaDB용으로 컴파일된 서버입니다. PostgreSQL을 사용한다면 대신 zabbix-server-pgsql을 설치하고 아래의 데이터베이스 관련 단계를 조정하십시오. zabbix-sql-scripts에는 다음에 가져올(import) 스키마가 포함되어 있습니다. 이는 7.0 버전에서 별도의 패키지로 분리되었으므로, 이를 누락하면 나중에 가져오기 경로를 찾을 수 없게 됩니다. 이 패키지들은 데이터베이스 엔진을 자동으로 설치하지 않으므로, 서버에 MariaDB가 설치되어 있지 않다면 지금 설치하십시오.

sudo apt install -y mariadb-server
sudo systemctl enable --now mariadb

3단계, 올바른 문자 집합으로 데이터베이스 생성

Zabbix는 데이터 정렬(collation)에 엄격합니다. 데이터베이스는 반드시 utf8mb4utf8mb4_bin 설정을 사용해야 합니다. 그렇지 않으면 가져오기(import) 도중 외래 키 오류로 인해 작업이 중단됩니다. sudo mysql를 사용하여 루트 셸을 열고 다음 명령을 실행하십시오.

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 줄은 가져오기 작업을 위한 안전장치입니다. Zabbix 스키마는 저장 함수(stored functions)를 생성하는데, zabbix와 같은 비 SUPER 계정은 바이너리 로깅이 활성화된 상태에서 이를 생성할 수 없습니다. MySQL 8은 기본적으로 바이너리 로깅을 활성화하며, 일부 관리형 MariaDB 빌드도 마찬가지입니다(일반 MariaDB는 그렇지 않습니다). 바이너리 로깅이 활성화된 서버에서 이 플래그를 생략하면 가져오기 작업이 ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled 오류와 함께 중단됩니다. 루트 권한으로 이 설정을 지정하면 문제가 해결되며, 가져오기가 완료된 후 다시 비활성화하면 됩니다. 서버 설정 파일에는 정확히 동일한 바이트의 문자열이 필요하므로 비밀번호를 정확히 기록해 두십시오.

4단계, 스키마 가져오기(가장 자주 누락되는 단계)

새로 설치한 프론트엔드가 로드되지 않는 가장 흔한 이유는 생성한 데이터베이스가 비어 있기 때문입니다. zabbix-sql-scripts에 포함된 스키마를 데이터베이스에 로드하십시오.

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | \
  mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

이 명령을 실행하면 zabbix 비밀번호를 묻습니다. 소규모 VPS에서는 30초에서 60초 정도 소요되며, 성공 시 아무런 메시지도 출력하지 않습니다. 성공 시에는 조용한 것이 정상입니다. zcat: /usr/share/zabbix-sql-scripts/mysql/server.sql.gz: No such file or directory가 출력되면 zabbix-sql-scripts 패키지가 설치되지 않은 것이므로 2단계로 돌아가십시오. ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost'이 출력되면 3단계에서 설정한 비밀번호나 권한이 잘못된 것입니다. 작업이 완료되면 보안 플래그를 다시 끄십시오.

sudo mysql -e "SET GLOBAL log_bin_trust_function_creators = 0;"

sudo mysql -e "SELECT COUNT(*) FROM zabbix.users;"를 사용하여 로드 상태를 확인하십시오. doesn't exist 오류가 아닌 숫자가 출력되면 스키마가 정상적으로 로드된 것입니다.

5단계, zabbix_server.conf에서 데이터베이스 비밀번호 설정

서버는 /etc/zabbix/zabbix_server.conf에서 데이터베이스 자격 증명을 읽습니다. 비밀번호만 설정하면 되며, DBNameDBUser은 이미 zabbix로 기본 설정되어 있습니다. # DBPassword= 줄의 주석을 해제하고 다음과 같이 설정하십시오.

DBName=zabbix
DBUser=zabbix
DBPassword=choose-a-strong-password

비밀번호는 3단계에서 설정한 것과 바이트 단위까지 정확히 일치해야 합니다. DBPassword가 비어 있거나 잘못되면 나중에 "Zabbix server is not running" 배너가 나타나는 가장 큰 원인이 됩니다. 데몬이 시작되더라도 로그인에 실패하면 종료되기 때문입니다. 화면에는 아무런 오류 메시지가 표시되지 않으며, 오직 로그에서만 확인할 수 있습니다.

6단계, Nginx를 프론트엔드에 연결하기

zabbix-nginx-conf 패키지는 /etc/zabbix/nginx.conf에 서버 블록을 설치하고 /etc/nginx/conf.d/zabbix.conf에서 Nginx로 링크를 생성하지만, listenserver_name 줄이 주석 처리된 상태로 배포됩니다. 따라서 이를 수정하기 전까지 Nginx는 Zabbix를 위한 어떤 콘텐츠도 제공하지 않습니다.

server {
    listen          80;
    server_name     zabbix.example.com;
    ...
}

도메인을 사용하거나, 아직 DNS가 없다면 서버의 공인 IP를 사용하십시오. 주의할 점이 두 가지 있습니다. Ubuntu의 기본 Nginx 환영 페이지 사이트도 80번 포트에서 대기하며 기본 서버로 설정되어 있으므로, 일치하는 이름이 없는 모든 요청을 가로챕니다. 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 명령으로 직접 링크를 생성하십시오. 그 후 설정을 테스트하고 다시 불러옵니다.

sudo nginx -t
sudo systemctl reload nginx

nginx -t 명령은 test is successful를 출력해야 합니다. 만약 nginx: [emerg] a duplicate default server for 0.0.0.0:80이 출력된다면 기본 사이트와 Zabbix 블록이 모두 default_server을 점유하고 있는 것이므로, 기본 사이트를 삭제하고 다시 테스트하십시오. 테스트가 conflicting server name 경고와 함께 통과하더라도 브라우저에 여전히 기본 환영 페이지가 표시되는 경우가 더 많습니다. 이는 일치하지 않는 이름에 대해 기본 사이트가 우선권을 갖기 때문이며, 이를 삭제하면 해결됩니다.

7단계, 서비스 시작 및 활성화

서버, 에이전트, PHP-FPM 및 nginx를 실행하고 재부팅 후에도 자동으로 시작되도록 활성화합니다.

sudo systemctl restart zabbix-server zabbix-agent2 nginx php8.3-fpm
sudo systemctl enable  zabbix-server zabbix-agent2 nginx php8.3-fpm

Ubuntu 24.04는 PHP 8.3을 기본으로 제공하므로 FPM 서비스는 php8.3-fpm입니다. zabbix-nginx-conf 패키지는 동일한 마스터 프로세스 하에서 프론트엔드를 실행합니다. 서버가 시작되어 정상적으로 유지되는지 확인합니다.

sudo systemctl status zabbix-server --no-pager
sudo tail -n 20 /var/log/zabbix/zabbix_server.log

정상적인 로그는 서버가 시작되고 housekeeper, pollertrapper 프로세스가 실행 중이라는 메시지로 끝납니다. [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost'이 표시된다면 5단계에서 설정한 DBPassword가 일치하지 않는 것이므로, 이를 수정하고 재시작하십시오. [Z3005] query failed: [1146] Table 'zabbix.dbversion' doesn't exist 줄이 나타난다면 4단계에서 스키마 가져오기를 건너뛴 것이며, 이 경우 서버가 읽을 데이터가 없는 상태입니다.

8단계, 웹 설정 마법사 완료

http://your-domain-or-ip로 접속합니다. Zabbix 설정 마법사가 열립니다. 다음 절차를 진행하십시오.

  1. Welcome, 언어를 선택합니다.
  2. Check of pre-requisites, 모든 항목이 OK로 표시되어야 합니다. 패키지로 제공된 /etc/zabbix/php-fpm.conf 풀은 이미 Zabbix에 필요한 PHP 제한을 충족합니다.
  3. Configure DB connection, 데이터베이스 유형은 MySQL, 호스트는 localhost, 포트는 0(기본 포트 또는 소켓 사용을 의미), 데이터베이스 이름은 zabbix, 사용자는 zabbix, 그리고 3단계에서 설정한 비밀번호를 입력합니다. 자격 증명이 잘못되었거나 스키마가 누락된 경우 이 단계에서 오류가 발생합니다.
  4. Settings, Zabbix 서버 호스트 localhost, 포트 10051을 그대로 두고 설치 이름을 지정합니다.
  5. Pre-installation summary를 확인한 뒤 Install을 클릭하면 마법사가 /etc/zabbix/web/zabbix.conf.php를 생성합니다.
  6. Finish, Admin(대문자 A) 계정과 zabbix 비밀번호로 로그인한 뒤, 즉시 Users 메뉴에서 비밀번호를 변경하십시오.

마법사에서 Cannot create the configuration file 오류가 발생하면 웹 사용자가 /etc/zabbix/web/에 쓰기 권한이 없는 것입니다. 제공되는 zabbix.conf.php를 다운로드하여 sudo를 사용해 수동으로 해당 위치에 배치한 후 Finish를 클릭하십시오.

9단계, 로컬 호스트 추가 및 템플릿 연결

Zabbix는 스스로를 자동으로 모니터링하지 않습니다. Data collection → Hosts → Create host로 이동하여 호스트 이름을 zabbix-server으로 설정하고, Linux servers 그룹에 추가한 뒤 IP 127.0.0.1, 포트 10050를 사용하는 Agent 인터페이스를 추가하십시오. Templates 항목에서 Linux by Zabbix agent(passive-poll 방식; Linux by Zabbix agent active은 에이전트가 데이터를 밀어넣는 방식입니다)을 연결한 후 저장합니다.

1분 이내에 호스트 행에 녹색 ZBX 레이블이 표시되며 Monitoring → Latest data에서 메트릭을 확인할 수 있습니다. 빨간색 ZBX 레이블은 서버가 에이전트에 도달할 수 없음을 의미하며, 이는 이 단계의 실수가 아니라 아래에서 다룰 실패 유형입니다.

10단계: 유용한 트리거 하나와 이메일 알림 설정

Linux by Zabbix agent 템플릿은 이미 높은 CPU 사용량, 낮은 메모리, 디스크 가득 참에 대한 트리거를 포함하고 있으므로, 템플릿을 연결하는 즉시 알림을 받을 수 있습니다. 트리거가 어떻게 구성되는지 확인하기 위해 직접 하나를 추가해 보겠습니다. 호스트를 열고 Triggers → Create trigger로 이동하여 이름을 Root filesystem over 90% full on {HOST.NAME}으로 지정하고, 심각도(Severity)를 High로 설정한 뒤 다음 표현식을 사용하십시오.

last(/zabbix-server/vfs.fs.dependent.size[/,pused])>90

vfs.fs.dependent.size[/,pused]는 템플릿의 파일 시스템 탐색 기능이 루트 파일 시스템에 대해 생성하는 사용률 항목입니다(7.0 버전의 Linux 템플릿은 vfs.fs.get를 한 번 수집한 뒤 마운트별 종속 항목을 파생합니다). 따라서 추가적인 데이터 수집 없이도 트리거가 작동합니다. 저장하십시오.

트리거는 Action을 통해 누군가에게 알림을 보내기 전까지는 대시보드의 행 색상만 변경합니다. Alerts → Media types → Email에서 SMTP 서버, 포트, 발신자 주소, 연결 보안(보통 STARTTLS) 및 릴레이 자격 증명을 설정하십시오. 그 후 Test 기능을 사용하십시오. 여기서 실패한다면 실제 알림이 발생하기 전에 SMTP 경로가 잘못된 것입니다. Users → Users → Admin → Media → Add에서 Admin 사용자에게 이메일 주소를 부여하고 알림을 받을 심각도 수준을 선택하십시오. 그런 다음 Alerts → Actions → Trigger actions → Create action에서 연결하십시오. Trigger severity >= Warning과 같은 조건을 추가하고, Operations에서 Email을 통해 Admin에게 전송하도록 설정하십시오. 저장 후 활성화하십시오. 채팅 알림을 선호하십니까? Zabbix 7.0은 Slack, Discord, Telegram을 위한 웹훅 미디어 타입을 제공합니다. 이메일과 동일한 방식으로 구성하고 사용자에게 할당하십시오.

에이전트로 두 번째 서버 모니터링하기

다른 서버를 모니터링하려면 해당 서버에도 Zabbix 저장소를 추가해야 합니다. Ubuntu 24.04는 자체적으로 Zabbix 패키지를 제공하지 않으므로, 에이전트만 설치하십시오:

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을 편집하여 Server에 Zabbix 서버의 IP를 설정합니다(수동 폴링용). 활성 체크를 사용하려면 ServerActive와 함께 프론트엔드에서 생성할 호스트와 일치하는 고유한 Hostname을 설정하십시오:

Server=10.0.0.10
ServerActive=10.0.0.10
Hostname=web-01

sudo systemctl enable --now zabbix-agent2을 실행하고 Zabbix 서버에서 이 장비로 향하는 TCP 10050 포트를 엽니다. 다시 프론트엔드로 돌아가서 에이전트 인터페이스가 해당 장비의 IP를 가리키는 호스트를 생성하고, Linux 템플릿을 연결하면 1분 이내에 보고가 시작됩니다.

발생 가능한 오류 유형 및 메시지

프론트엔드에 Error connecting to database 또는 데이터베이스 오류가 표시되는 경우. 마법사의 DB 단계에서 Access denied for user 'zabbix'@'localhost' (using password: YES)이 나타난다면 비밀번호가 3단계에서 설정한 값과 일치하지 않거나 GRANT가 실행되지 않은 것입니다. 데이터베이스는 연결되지만 프론트엔드에서 The frontend does not match Zabbix database 또는 Table 'zabbix.users' doesn't exist을 보고한다면, 4단계의 스키마 가져오기가 생략되었거나 실패한 것입니다. 새로 생성한 데이터베이스에 스키마를 다시 가져오십시오.

주황색 배너: Zabbix server is not running: the information displayed may not be current. 프론트엔드는 실행 중이지만 라이브 서버에 연결할 수 없는 상태입니다. 가능성이 높은 순서대로 세 가지 원인이 있습니다. 첫째, 서비스가 중단된 경우로 systemctl status zabbix-server을 확인하고 서비스를 시작하십시오. 둘째, 서비스는 실행 중이나 데이터베이스에 연결하지 못하는 경우로, 로그에 [Z3001] connection to database 'zabbix' failed: [1045] Access denied가 표시된다면 DBPassword이 잘못되었거나 비어 있는 것입니다. 셋째, 프론트엔드가 잘못된 서버를 가리키고 있는 경우로, /etc/zabbix/web/zabbix.conf.php 파일 내 host localhost, port 10051 설정을 확인하십시오. Ubuntu는 기본적으로 SELinux를 사용하지 않으므로 RHEL 가이드에서 언급하는 SELinux 소켓 관련 문제는 적용되지 않습니다. 이 경우 대부분 데이터베이스 비밀번호 문제이거나 서비스가 중단된 상태입니다.

호스트에 빨간색 ZBX 라벨이 표시되고 항목 오류 Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused가 발생하는 경우. 에이전트가 실행 중이지 않거나 대기 상태가 아닙니다. systemctl status zabbix-agent2을 확인하고 ListenPort=10050이 정상인지 확인하십시오. "connection refused" 대신 타임아웃이 발생한다면 방화벽이 10050 포트를 차단하고 있는 것입니다. 관련 오류인 Received empty response from Zabbix Agent. Assuming that agent dropped connection because of access permissions.은 에이전트에 연결은 가능하지만 에이전트의 Server= 설정에 Zabbix 서버의 IP가 누락되었음을 의미합니다. IP를 추가한 후 에이전트를 재시작하십시오.

일반 nginx 환영 페이지가 표시되거나 502 Bad Gateway이 발생하는 경우. 환영 페이지가 보인다면 기본 사이트 설정이 활성화되어 있거나 Zabbix 블록이 연결되지 않은 상태입니다. /etc/nginx/sites-enabled/default을 제거하고 6단계와 같이 /etc/nginx/conf.d/zabbix.conf가 존재하는지 확인하십시오. 502은 nginx가 PHP에 도달했으나 PHP-FPM이 중단되었거나 다른 소켓에서 대기 중임을 의미합니다. php8.3-fpm를 시작하고 Zabbix 블록의 fastcgi_pass 소켓이 실행 중인 풀과 일치하는지 확인하십시오.

백업, 업그레이드 및 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가 서버를 가리키게 되면 Ubuntu 24.04의 nginx에서 Certbot 및 Let's Encrypt 사용하기를 참고하여 인증서를 적용하십시오. 이 과정에서 서버 블록이 443 포트에서 수신하도록 재작성되고 80 포트 요청은 리다이렉트됩니다. 다른 모든 서버를 관리하기 위해 접속하는 서버를 강화하는 과정에서, fail2ban을 이용한 SSH 무차별 대입 공격 차단을 통해 SSH 접근도 제한하십시오. 모니터링용 로그인 정보가 평문으로 전송되어서는 안 되며, 서버의 출입문이 비밀번호 추측 공격에 노출되어서도 안 됩니다.

FAQ

Do I need the Zabbix agent, or can I monitor without it?

Both work. The agent (agent2) gives rich per-host metrics, CPU, memory, disks, processes, services, log files, and is the normal choice for servers you control. Agentless monitoring covers devices where you cannot install software: SNMP for switches and printers, ICMP ping for reachability, HTTP checks for endpoints, IPMI for hardware health. Most real deployments mix the two.

Why does the frontend say the Zabbix server is not running?

The frontend works but cannot reach a live zabbix-server process. Usually the server started, failed to log in because DBPassword in zabbix_server.conf is wrong or blank, and dropped straight back out. Run systemctl status zabbix-server and read /var/log/zabbix/zabbix_server.log; a [Z3001] connection to database ... failed line confirms it. Fix the password and restart, and the banner clears within a minute.

Do I have to use MySQL, or can I use PostgreSQL?

Either is fully supported: zabbix-server-mysql with MariaDB or MySQL as this guide does, or zabbix-server-pgsql with PostgreSQL. For small installs the choice barely matters. For large ones, PostgreSQL with the TimescaleDB extension partitions the history tables and makes housekeeping far cheaper, which is why big sites lean toward it. Pick one and stay with it, migrating later means a full export and re-import, not a config switch.

How much RAM does a Zabbix all-in-one server need?

For one box monitoring a handful of hosts, 2 GB is a realistic floor and 4 GB is comfortable past a few dozen hosts; the memory goes mostly to the database cache and the server's pollers. A 1 GB VPS runs but starves the database as history grows. Beyond a hundred hosts, split the database onto its own server and tune its buffer pool rather than piling more RAM into one machine.

Is Zabbix overkill for a couple of servers?

It can be. If all you need is "is it up?" and a page you can share, a lighter tool like Uptime Kuma for uptime and status monitoring is faster to stand up and easier to read at a glance. Choose Zabbix when you want per-metric thresholds, historical graphs, templated hosts and escalation rules, the things a simple pinger cannot give you across a fleet.