SSD Nodes Learn Hosting plans →
Przewodniki Matt ConnorAutor: Matt Connor

Zabbix 7.0 LTS na Ubuntu 24.04: instalacja i konfiguracja

Instrukcja instalacji Zabbix 7.0 LTS na Ubuntu 24.04. Dowiedz się, jak dodać repozytorium, zaimportować schemat MariaDB, skonfigurować nginx oraz poprawnie uruchomić agent2.

Co budujesz

Pojedynczy serwer VPS z systemem Ubuntu 24.04, na którym działa pełny stos Zabbix 7.0 LTS: demon zabbix-server, który odpytuje urządzenia i generuje alerty, baza danych MariaDB/MySQL przechowująca wszystkie metryki, frontend PHP obsługiwany przez nginx oraz zabbix-agent2 zbierający metryki z samego serwera. Po uruchomieniu wskazujesz drugi serwer, przypisujesz szablon i otrzymujesz wiadomość e-mail w momencie zapełnienia dysku lub awarii usługi.

Zabbix to rozwiązanie bardziej rozbudowane niż narzędzia typu status-page: to system szeregów czasowych z szablonami, wyzwalaczami, eskalacją i retencją historii. Większość problemów wynika z pominięcia trzech kroków: importu schematu bazy danych, ustawienia hasła do bazy danych, które serwer faktycznie odczytuje, oraz odkomentowania dwóch linii w konfiguracji nginx. Jeśli wykonasz je poprawnie, reszta konfiguracji przebiegnie bezproblemowo. Jeśli potrzebujesz jedynie sprawdzania dostępności usług i udostępnianej strony statusu, lekkie narzędzie do monitoringu statusu Uptime Kuma zrealizuje to w jednym kontenerze; Zabbix zyskuje na znaczeniu, gdy wymagane są progi dla poszczególnych metryk i eskalacja dla wielu hostów.

Korzystaj z linii 7.0 LTS: serwer, frontend, agent2 i schemat mają zsynchronizowane wersje, a całość otrzymuje poprawki bezpieczeństwa przez lata. Przed skopiowaniem nazwy pliku repozytorium poniżej, sprawdź oficjalną stronę pobierania Zabbix. Pakiet wydania latest konfiguruje jedynie repozytorium 7.0, nie wybiera konkretnego wydania punktowego: apt instaluje pakiety 7.0.x dostępne w repozytorium, co zapewnia korzystanie z najnowszej wersji. Strona może również wymieniać numerowane pakiety wydania 7.0-N, ale numer ten odnosi się do wersji konfiguracji repozytorium, a nie do kompilacji Zabbix. Każde inne polecenie w tym przewodniku jest stabilne dla całej linii 7.0.

Wymagania sprzętowe, porty i założenia wstępne

Przyjmij świeżą instalację Ubuntu 24.04 na VPS typu KVM z dostępem root lub sudo. Bądź realistą w kwestii zasobów: 2 GB pamięci RAM i dwa vCPU to realne minimum dla serwera, bazy danych, nginx oraz PHP działających na jednej maszynie monitorującej kilka hostów. Maszyna z 1 GB pamięci uruchomi się, ale wraz ze wzrostem historii baza danych zacznie odczuwać niedobory; zaplanuj 4 GB przy kilkudziesięciu hostach, a powyżej setki przenieś bazę danych na osobny serwer. Zużycie dysku rośnie wraz z liczbą zbieranych elementów i długością przechowywania historii; na początek zarezerwuj kilka gigabajtów, a proces housekeeper usunie stare dane zgodnie z ustawionymi oknami retencji.

Porty: 80 i 443 dla interfejsu frontendowego, publicznie dostępne lub ograniczone do własnego adresu IP. Serwer nasłuchuje na porcie TCP 10051 w celu odbierania danych przesyłanych przez aktywne agenty, a każdy agent nasłuchuje na porcie TCP 10050, gdy serwer odpytuje go o dane. Otwórz tylko te porty, które udostępniasz, jeśli przed serwerem znajduje się firewall. Warto posiadać rekord DNS A dla frontendu, ponieważ będziesz potrzebować dla niego poprawnego certyfikatu. Serwer Zabbix monitoruje wszystkie inne uruchomione usługi, więc powinien stanowić element szerszego stosu usług self-hosted, które warto uruchomić w 2026 roku, a nie być dodawany jako przypadkowy komponent.

Krok 1, Dodanie oficjalnego repozytorium Zabbix 7.0

Pakiet zabbix-release wykonuje jedną operację: umieszcza listę źródeł apt oraz klucz podpisu w systemie. Należy go zainstalować, a następnie odświeżyć indeks pakietów.

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

Jeśli wget zwróci 404 Not Found, oznacza to, że nazwa pliku uległa zmianie. Należy otworzyć stronę pobierania Zabbix, wybrać Ubuntu 24.04 i skopiować dokładny adres URL zabbix-release, który zostanie wyświetlony. Poprawne wykonanie apt update skutkuje wyświetleniem linii repo.zabbix.com bez ostrzeżeń dotyczących klucza. Błąd The following signatures couldn't be verified because the public key is not available oznacza, że pakiet wydania nie zainstalował klucza, dlatego należy ponownie uruchomić dpkg -i i wykonać aktualizację.

Krok 2, Instalacja serwera, interfejsu frontend oraz agenta

Zainstaluj serwer skompilowany z obsługą MySQL, interfejs frontend PHP, konfigurację nginx, pliki schematu SQL oraz agent2 w jednej operacji.

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

zabbix-server-mysql to serwer skompilowany dla MySQL/MariaDB; w przypadku PostgreSQL zainstaluj zamiast niego zabbix-server-pgsql i odpowiednio dostosuj poniższe kroki dotyczące bazy danych. zabbix-sql-scripts zawiera schemat, który zaimportujesz w następnym kroku; w wersji 7.0 jest to osobny pakiet, a jego pominięcie jest bezpośrednią przyczyną późniejszego błędu o braku ścieżki importu. Żaden z tych pakietów nie pobiera silnika bazy danych, więc zainstaluj MariaDB teraz, jeśli serwer jeszcze go nie posiada.

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

Krok 3, Utworzenie bazy danych z odpowiednim zestawem znaków

Zabbix wymaga ścisłego przestrzegania kodowania: obsługuje tylko utf8mb4 z utf8mb4_bin lub starsze utf8 (znane jako utf8mb3) z utf8_bin, a dokumentacja zdecydowanie zaleca utf8mb4 z utf8mb4_bin, co jest stosowane w tym przewodniku. Otwórz powłokę root za pomocą sudo mysql i wykonaj:

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;

Linia SET GLOBAL stanowi zabezpieczenie procesu importu. Schemat Zabbix tworzy wyzwalacze deterministyczne podczas importu, a konto inne niż SUPER, takie jak zabbix, nie może ich utworzyć, gdy włączone jest logowanie binarne. MySQL 8 włącza logowanie binarne domyślnie, podobnie jak niektóre zarządzane instancje MariaDB (standardowa instalacja MariaDB tego nie robi). Pominiecie tej flagi na serwerze z włączonym logowaniem binarnym spowoduje przerwanie importu z błędem ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled. Ustawienie jej jako root rozwiązuje problem; po zakończeniu importu można ją wyłączyć. Zapisz dokładnie hasło, ponieważ konfiguracja serwera wymaga identycznego ciągu znaków, bajt po bajcie.

Krok 4, Import schematu (krok często pomijany)

Jest to najczęstsza przyczyna, dla której nowy frontend nie chce się załadować: utworzona baza danych jest pusta. Należy załadować do niej schemat dostarczony w zabbix-sql-scripts.

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

Polecenie poprosi o hasło zabbix, będzie działać od trzydziestu do sześćdziesięciu sekund na małym VPS i nie wyświetli żadnego komunikatu w przypadku powodzenia; brak informacji oznacza poprawne wykonanie. zcat: /usr/share/zabbix-sql-scripts/mysql/server.sql.gz: No such file or directory oznacza, że pakiet zabbix-sql-scripts nie jest zainstalowany (należy wrócić do kroku 2). ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' oznacza, że hasło lub uprawnienia nadane w kroku 3 są nieprawidłowe. Po zakończeniu operacji należy wyłączyć flagę bezpieczeństwa:

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

Poprawność załadowania można potwierdzić za pomocą sudo mysql -e "SELECT COUNT(*) FROM zabbix.users;"; wyświetlenie liczby, a nie błędu doesn't exist, oznacza, że schemat został poprawnie zaimportowany.

Krok 5, ustawienie hasła bazy danych w zabbix_server.conf

Serwer odczytuje dane uwierzytelniające bazy danych z pliku /etc/zabbix/zabbix_server.conf. Należy ustawić wyłącznie hasło, ponieważ DBName oraz DBUser mają już domyślną wartość zabbix. Odkomentuj linię # DBPassword= i ustaw ją w następujący sposób:

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

Hasło musi być identyczne co do bajta z hasłem z kroku 3. Puste lub błędne DBPassword jest najczęstszą przyczyną komunikatu "Zabbix server is not running", który pojawia się później: demon uruchamia się, nie może zalogować się do bazy i kończy działanie. Informacja o tym nie pojawia się na ekranie, jest dostępna wyłącznie w dzienniku zdarzeń.

Krok 6, Skierowanie nginx na frontend

Pakiet zabbix-nginx-conf instaluje blok serwera w /etc/zabbix/nginx.conf i tworzy dowiązanie w nginx z /etc/nginx/conf.d/zabbix.conf, jednak jest on dostarczany z zakomentowanymi liniami listen oraz server_name, przez co nginx nie serwuje treści dla Zabbix, dopóki nie zostaną one edytowane:

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

Należy użyć własnej domeny lub publicznego adresu IP serwera, jeśli DNS nie jest jeszcze skonfigurowany. Należy zwrócić uwagę na dwie kwestie. Domyślna strona powitalna nginx w systemie Ubuntu również nasłuchuje na porcie 80 i jest oznaczona jako domyślny serwer, więc przejmuje każde żądanie, którego nazwa nie pasuje do innych konfiguracji; należy ją usunąć, w przeciwnym razie załaduje się niewłaściwa strona: sudo rm -f /etc/nginx/sites-enabled/default. Jeśli /etc/nginx/conf.d/zabbix.conf w jakiś sposób brakuje (znana przypadłość pakietów), należy utworzyć dowiązanie ręcznie za pomocą sudo ln -s /etc/zabbix/nginx.conf /etc/nginx/conf.d/zabbix.conf. Następnie należy przetestować konfigurację i przeładować usługę:

sudo nginx -t
sudo systemctl reload nginx

nginx -t powinno zwrócić test is successful. Jeśli zamiast tego wyświetli nginx: [emerg] a duplicate default server for 0.0.0.0:80, oznacza to, że zarówno domyślna strona, jak i blok Zabbix zgłaszają roszczenie do default_server; należy usunąć domyślną stronę i przeprowadzić test ponownie. Częściej test kończy się powodzeniem z jedynie ostrzeżeniem conflicting server name, a mimo to przeglądarka nadal wyświetla zwykłą stronę powitalną: jest to efekt przejmowania żądań przez domyślną stronę z powodu niedopasowania nazwy, a jej usunięcie rozwiązuje problem.

Krok 7, Uruchomienie i włączenie usług

Uruchom serwer, agenta, PHP-FPM oraz nginx i włącz je, aby uruchamiały się automatycznie po restarcie systemu.

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 dostarcza PHP 8.3, więc usługą FPM jest php8.3-fpm; pakiet zabbix-nginx-conf obsługuje frontend w ramach tego samego procesu nadrzędnego. Potwierdź, że serwer został uruchomiony i działa:

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

Poprawny dziennik kończy się informacją o uruchomieniu serwera oraz działaniu procesów housekeeper, poller i trapper. Jeśli pojawi się [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost', oznacza to, że DBPassword z kroku 5 jest niezgodny; popraw go i zrestartuj usługę. Wiersz [Z3005] query failed: [1146] Table 'zabbix.dbversion' doesn't exist oznacza pominięcie importu schematu w kroku 4, przez co serwer nie ma danych do odczytu.

Krok 8, zakończenie kreatora konfiguracji WWW

Przejdź pod adres http://your-domain-or-ip. Otworzy się kreator konfiguracji Zabbix. Wykonaj następujące kroki:

  1. Welcome, wybierz język.
  2. Check of pre-requisites, każdy wiersz powinien domyślnie wskazywać OK; spakowana pula /etc/zabbix/php-fpm.conf zwiększa już limity PHP wymagane przez Zabbix.
  3. Configure DB connection, typ bazy danych MySQL, host localhost, port 0 (co oznacza port domyślny lub gniazdo), nazwa bazy danych zabbix, użytkownik zabbix oraz hasło z kroku 3. Błędne dane uwierzytelniające lub brak schematu zostaną zasygnalizowane w tym miejscu.
  4. Settings, pozostaw host serwera Zabbix localhost, port 10051 i nadaj nazwę instalacji.
  5. Pre-installation summary, a następnie Install; kreator utworzy plik /etc/zabbix/web/zabbix.conf.php.
  6. Finish, zaloguj się jako Admin (wielka litera A) hasłem zabbix, a następnie niezwłocznie zmień to hasło w sekcji Users.

Jeśli kreator zgłosi Cannot create the configuration file, oznacza to, że użytkownik WWW nie ma uprawnień do zapisu w /etc/zabbix/web/. Pobierz plik zabbix.conf.php oferowany przez kreator, umieść go ręcznie w odpowiednim miejscu za pomocą sudo i kliknij Finish.

Krok 9, Dodawanie lokalnego hosta i przypisywanie szablonu

Zabbix nie monitoruje się automatycznie. Przejdź do Data collection → Hosts → Create host, ustaw nazwę hosta na zabbix-server, dodaj go do grupy Linux servers i dodaj interfejs Agent z adresem IP 127.0.0.1 oraz portem 10050. W sekcji Templates podepnij Linux by Zabbix agent (wariant pasywnego odpytywania; Linux by Zabbix agent active wykorzystuje mechanizm wypychania danych przez agenta). Zapisz zmiany.

W ciągu minuty w wierszu hosta pojawi się zielona etykieta ZBX, a metryki zaczną napływać do sekcji Monitoring → Latest data. Czerwona etykieta ZBX oznacza, że serwer nie może nawiązać połączenia z agentem. Jest to tryb awaryjny opisany poniżej, a nie błąd w tym kroku.

Krok 10, Przydatny wyzwalacz i alert e-mail

Szablon Linux by Zabbix agent zawiera gotowe wyzwalacze dla wysokiego obciążenia CPU, niskiej ilości pamięci i zapełnionych dysków, więc alerty są dostępne natychmiast po przypisaniu szablonu. Aby zobaczyć, jak tworzy się własny wyzwalacz, otwórz hosta, przejdź do Triggers → Create trigger, nazwij go Root filesystem over 90% full on {HOST.NAME}, ustaw ważność na High i użyj następującego wyrażenia:

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

vfs.fs.dependent.size[/,pused] to element procentowego wykorzystania, który mechanizm wykrywania systemów plików szablonu tworzy dla głównego systemu plików (szablon Linux w wersji 7.0 zbiera vfs.fs.get raz i wyprowadza elementy zależne dla każdego punktu montowania), więc wyzwalacz zadziała bez konieczności dodatkowego zbierania danych. Zapisz go.

Wyzwalacz jedynie zmienia kolor wiersza na pulpicie nawigacyjnym, dopóki akcja nie powiadomi użytkownika. W sekcji Alerts → Media types → Email ustaw serwer SMTP, port, adres nadawcy, zabezpieczenie połączenia (zazwyczaj STARTTLS) oraz dane uwierzytelniające przekaźnika, a następnie użyj Test; błąd na tym etapie oznacza, że ścieżka SMTP jest nieprawidłowa, zanim jeszcze jakiekolwiek realne alerty będą od niej zależeć. Przypisz użytkownikowi Admin adres e-mail w sekcji Users → Users → Admin → Media → Add i wybierz poziomy ważności, dla których mają być wysyłane powiadomienia. Następnie skonfiguruj akcję w Alerts → Actions → Trigger actions → Create action: dodaj warunek, taki jak Trigger severity >= Warning, a w sekcji Operations wybierz wysyłkę do użytkownika Admin przez Email. Zapisz i włącz akcję. Wolisz powiadomienia na komunikator? Zabbix 7.0 zawiera typy mediów webhook dla Slack, Discord i Telegram, ale każdy z nich wymaga własnej konfiguracji usługi zamiast ustawień SMTP: Telegram na przykład wymaga bota utworzonego przez BotFather, jego tokena w parametrze api_token typu medium oraz ID czatu odbiorcy w polu Send to użytkownika. Postępuj zgodnie z plikiem README integracji, włącz typ medium, przypisz go do użytkownika i użyj w akcji w taki sam sposób jak e-mail.

Monitorowanie drugiego serwera za pomocą agenta

Aby monitorować kolejny serwer, należy dodać na nim repozytorium Zabbix, ponieważ Ubuntu 24.04 nie zawiera pakietów Zabbix w swoich oficjalnych źródłach, a następnie zainstalować wyłącznie agenta:

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

Edytuj plik /etc/zabbix/zabbix_agent2.conf, ustaw Server na adres IP serwera Zabbix (dla odpytywania pasywnego), a dla kontroli aktywnych skonfiguruj ServerActive oraz unikalną wartość Hostname, która musi być zgodna z nazwą hosta utworzoną w interfejsie WWW:

Server=10.0.0.10
ServerActive=10.0.0.10
Hostname=web-01

Wykonaj sudo systemctl restart zabbix-agent2 i otwórz port TCP 10050 dla ruchu przychodzącego z serwera Zabbix do tej maszyny. Restart jest istotny: pakiet uruchomił agenta natychmiast po instalacji z domyślnym plikiem Server=127.0.0.1, a agent wczytuje konfigurację tylko podczas startu. Polecenie enable --now wykryłoby, że usługa już działa i nie wprowadziłoby zmian, przez co agent nadal odrzucałby połączenia z serwera Zabbix. Automatyczny start przy uruchomieniu systemu jest już skonfigurowany, ponieważ pakiet automatycznie włączył jednostkę systemd. W interfejsie WWW utwórz hosta, którego interfejs agenta wskazuje na adres IP tej maszyny, przypisz szablon Linux, a dane zaczną być raportowane w ciągu minuty.

Tryby awarii i towarzyszące im komunikaty

Frontend wyświetla Error connecting to database lub błąd bazy danych. W kroku konfiguracji bazy danych w kreatorze, Access denied for user 'zabbix'@'localhost' (using password: YES) oznacza, że hasło nie zgadza się z tym z kroku 3 lub skrypt GRANT nigdy nie został uruchomiony. Jeśli połączenie z bazą danych jest nawiązane, ale frontend zgłasza The frontend does not match Zabbix database lub Table 'zabbix.users' doesn't exist, oznacza to, że import schematu w kroku 4 został pominięty lub zakończył się niepowodzeniem; należy go wykonać ponownie na świeżo utworzonej bazie danych.

Pomarańczowy baner: Zabbix server is not running: the information displayed may not be current. Frontend działa, ale nie może połączyć się z aktywnym serwerem. Istnieją trzy przyczyny, wymienione od najbardziej prawdopodobnej. Usługa nie działa, należy sprawdzić systemctl status zabbix-server i uruchomić ją. Usługa działa, ale nie może połączyć się z bazą danych; dziennik wskazuje [Z3001] connection to database 'zabbix' failed: [1045] Access denied, co oznacza błędne lub puste DBPassword. Ewentualnie frontend wskazuje niewłaściwy serwer, zapisany jako host localhost port 10051 w pliku /etc/zabbix/web/zabbix.conf.php. W systemie Ubuntu domyślnie nie ma SELinux, więc przyczyna związana z gniazdem SELinux, wymieniana w poradnikach dla RHEL, nie ma zastosowania; w tym przypadku niemal zawsze chodzi o hasło do bazy danych lub zatrzymaną usługę.

Host wyświetla czerwoną etykietę ZBX; błąd elementu Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused. Agent nie działa lub nie nasłuchuje. Należy sprawdzić systemctl status zabbix-agent2 i potwierdzić ListenPort=10050. Przekroczenie czasu oczekiwania (timeout) zamiast komunikatu "connection refused" oznacza, że firewall blokuje port 10050. Powiązany błąd Received empty response from Zabbix Agent. Assuming that agent dropped connection because of access permissions. oznacza, że agent jest osiągalny, ale jego linia Server= nie zawiera adresu IP serwera Zabbix; należy go dodać i zrestartować agenta.

Domyślna strona powitalna nginx lub 502 Bad Gateway. Strona powitalna oznacza, że domyślna witryna jest nadal włączona lub blok Zabbix nie jest podlinkowany; należy usunąć /etc/nginx/sites-enabled/default i potwierdzić, że /etc/nginx/conf.d/zabbix.conf istnieje, zgodnie z krokiem 6. Błąd 502 oznacza, że nginx połączył się z PHP, ale PHP-FPM nie działa lub nasłuchuje na innym gnieździe; należy uruchomić php8.3-fpm i sprawdzić, czy gniazdo fastcgi_pass w bloku Zabbix odpowiada działającej puli.

Kopie zapasowe, aktualizacje i TLS

Baza danych stanowi pełną historię serwisu, dlatego należy wykonywać jej kopie zapasowe za pomocą mysqldump zgodnie z harmonogramem i przechowywać zrzuty poza serwerem:

mysqldump --single-transaction zabbix | gzip > zabbix-$(date +%F).sql.gz

Pliki konfiguracyjne /etc/zabbix są niewielkie i również warto je archiwizować, jednak można je odtworzyć; danych nie. Przywracanie kopii polega na wykonaniu odwrotnych czynności: utworzeniu bazy danych, zaimportowaniu zrzutu i wskazaniu na niego w konfiguracji.

Aktualizacje w ramach linii 7.0 to standardowe operacje apt update && apt upgrade; serwer stosuje wszelkie migracje schematu przy kolejnym uruchomieniu, więc należy zaktualizować pakiety i zrestartować zabbix-server. Przejście na przyszłą główną linię wydawniczą jest świadomą decyzją; należy zapoznać się z notatkami dotyczącymi aktualizacji, najpierw wykonać zrzut bazy danych i liczyć się z jednostronną zmianą schematu. Ta nieodwracalna zmiana jest powodem, dla którego należy przypisywać się do linii LTS i pozostawać w jej ramach.

Nie należy pozostawiać interfejsu w trybie zwykłego HTTP. Gdy rekordy DNS będą wskazywać na serwer, należy zainstalować certyfikat zgodnie z instrukcją Certbot i Let's Encrypt na nginx w systemie Ubuntu 24.04, która modyfikuje blok serwera tak, aby nasłuchiwał na porcie 443 i przekierowywał ruch z portu 80. Podczas zabezpieczania serwera, który służy do monitorowania wszystkich innych uruchomionych maszyn, należy również ograniczyć dostęp SSH, korzystając z fail2ban blokujący ataki brute-force na SSH. Dane logowania do panelu monitoringu nie powinny być przesyłane otwartym tekstem, a główne wejście do systemu nie powinno być dostępne dla automatów zgadujących hasła.

FAQ

Czy wymagany jest Zabbix agent, czy można monitorować bez niego?

Oba rozwiązania są poprawne. Agent (agent2) dostarcza szczegółowe metryki hosta, takie jak użycie CPU, pamięci, dysków, procesów, usług oraz logów, i jest standardowym wyborem dla serwerów pod kontrolą administratora. Monitorowanie bezagentowe obejmuje urządzenia, na których nie można zainstalować oprogramowania: SNMP dla przełączników i drukarek, ICMP ping dla sprawdzania dostępności, testy HTTP dla endpointów oraz IPMI dla stanu sprzętu. Większość rzeczywistych wdrożeń łączy obie metody.

Dlaczego frontend informuje, że Zabbix server nie działa?

Frontend działa, ale nie może połączyć się z aktywnym procesem zabbix-server. Zazwyczaj serwer uruchomił się, nie zdołał zalogować się do bazy, ponieważ DBPassword w pliku zabbix_server.conf jest błędne lub puste, po czym natychmiast zakończył działanie. Uruchom systemctl status zabbix-server i sprawdź /var/log/zabbix/zabbix_server.log; linia [Z3001] connection to database ... failed potwierdzi przyczynę. Popraw hasło i zrestartuj usługę, a komunikat zniknie w ciągu minuty.

Czy muszę używać MySQL, czy mogę wybrać PostgreSQL?

Obie bazy są w pełni wspierane: zabbix-server-mysql z MariaDB lub MySQL, jak w tym przewodniku, albo zabbix-server-pgsql z PostgreSQL. W przypadku małych instalacji wybór ma niewielkie znaczenie. Przy dużych wdrożeniach PostgreSQL z rozszerzeniem TimescaleDB partycjonuje tabele historii i znacząco obniża koszty operacji porządkowych, dlatego duże serwisy skłaniają się ku tej opcji. Wybierz jedną bazę i pozostań przy niej; migracja w późniejszym terminie wymaga pełnego eksportu i importu danych, a nie tylko zmiany konfiguracji.

Ile pamięci RAM potrzebuje serwer Zabbix typu all-in-one?

Dla jednej maszyny monitorującej kilka hostów, 2 GB to realistyczne minimum, a 4 GB zapewnia komfort przy kilkudziesięciu hostach; pamięć jest zużywana głównie przez cache bazy danych oraz procesy pollera serwera. VPS z 1 GB RAM zadziała, ale wraz ze wzrostem historii baza danych zacznie odczuwać braki zasobów. Powyżej stu hostów należy przenieść bazę danych na osobny serwer i dostroić jej buffer pool, zamiast zwiększać ilość pamięci RAM w jednej maszynie.

Czy Zabbix to nie przesada dla kilku serwerów?

Może tak być. Jeśli potrzebujesz jedynie informacji "czy usługa działa?" oraz strony, którą można udostępnić, lżejsze narzędzie, takie jak Uptime Kuma do monitorowania dostępności i statusu, jest szybsze we wdrożeniu i bardziej czytelne. Wybierz Zabbix, gdy potrzebujesz progów dla poszczególnych metryk, wykresów historycznych, szablonów dla hostów oraz reguł eskalacji – czyli funkcji, których prosty pinger nie zapewni w skali całej infrastruktury.