 Autor: [Tomasz Nowosielski](/autorzy/tomasz-nowosielski) Redaktor naczelny, analityk hostingu · Zweryfikowano Kwiecień 2026

1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  Zabbix — monitoring serwera

# Zabbix — instalacja serwera, agenta, szablony, triggery i alerty Discord/Telegram

Opublikowano: 9 kwietnia 2026 · Kategoria: VPS / Monitoring

Nie wiesz że serwer jest przeciążony dopóki nie dostaniesz zgłoszenia od klienta — to najgorszy scenariusz. Zabbix to open-source platforma monitoringu zbierająca setki metryk z serwerów, baz danych i urządzeń sieciowych, wysyłająca alerty zanim problem stanie się przestojem. W tym przewodniku zainstalujemy serwer Zabbix 7.x, skonfigurujemy agentów, szablony i powiadomienia przez Discord i Telegram.

## Instalacja serwera Zabbix 7.x na Ubuntu 22.04

Zabbix wymaga serwera bazy danych (MySQL lub PostgreSQL) i serwera WWW (Nginx lub Apache) dla interfejsu webowego. Użyjemy MySQL + Nginx:

\# Dodaj repozytorium Zabbix 7.0 LTS
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release\_7.0-1+ubuntu22.04\_all.deb
sudo dpkg -i zabbix-release\_7.0-1+ubuntu22.04\_all.deb
sudo apt update

# Zainstaluj serwer, frontend i agenta
sudo apt install -y zabbix-server-mysql zabbix-frontend-php \\
  zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2 \\
  mysql-server

# Sprawdź wersję
zabbix\_server --version

Skonfiguruj bazę danych MySQL dla Zabbix:

\# Zaloguj się do MySQL jako root
sudo mysql -uroot

# W MySQL shell:
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4\_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'BezpieczneHaslo123!';
GRANT ALL PRIVILEGES ON zabbix.\* TO 'zabbix'@'localhost';
SET GLOBAL log\_bin\_trust\_function\_creators = 1;
EXIT;

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

# Wyłącz log\_bin\_trust\_function\_creators
sudo mysql -uroot -e "SET GLOBAL log\_bin\_trust\_function\_creators = 0;"

Skonfiguruj serwer Zabbix — podaj hasło do bazy:

\# Edytuj /etc/zabbix/zabbix\_server.conf
sudo nano /etc/zabbix/zabbix\_server.conf

# Zmień:
DBPassword=BezpieczneHaslo123!

# Skonfiguruj Nginx dla Zabbix frontend
sudo nano /etc/zabbix/nginx.conf
# Odkomentuj i ustaw:
# listen 80;
# server\_name zabbix.mojafirma.pl;

# Uruchom usługi
sudo systemctl restart zabbix-server zabbix-agent2 nginx php8.1-fpm
sudo systemctl enable zabbix-server zabbix-agent2 nginx

Otwórz przeglądarkę: `http://IP-SERWERA/zabbix` — kreator web skonfiguruje połączenie z bazą. Domyślne dane logowania: **Admin / zabbix** (zmień natychmiast!).

## Instalacja agenta Zabbix na monitorowanym hoście

Na każdym serwerze który chcesz monitorować zainstaluj Zabbix Agent 2 (nowszy, obsługuje goroutines):

\# Na monitorowanym hoście (nie serwerze Zabbix)
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release\_7.0-1+ubuntu22.04\_all.deb
sudo dpkg -i zabbix-release\_7.0-1+ubuntu22.04\_all.deb
sudo apt update
sudo apt install -y zabbix-agent2

# Edytuj konfigurację agenta
sudo nano /etc/zabbix/zabbix\_agent2.conf

\# /etc/zabbix/zabbix\_agent2.conf — kluczowe ustawienia

# IP serwera Zabbix
Server=1.2.3.4
ServerActive=1.2.3.4

# Nazwa hosta (musi pasować do nazwy w konfiguracji hosta w UI)
Hostname=moj-serwer-produkcyjny

# Port (domyślny 10050)
ListenPort=10050

# Logi
LogFile=/var/log/zabbix/zabbix\_agent2.log
LogFileSize=10

sudo systemctl restart zabbix-agent2
sudo systemctl enable zabbix-agent2

# Przetestuj połączenie z serwera Zabbix
zabbix\_get -s IP-HOSTA -p 10050 -k "system.hostname"

## Dodawanie hosta i szablonu w UI

W interfejsie webowym Zabbix: **Configuration → Hosts → Create host**. Kluczowe pola:

Pole

Wartość

Uwaga

Host name

moj-serwer-produkcyjny

Musi pasować do Hostname w agent2.conf

Groups

Linux servers

Logiczne grupowanie hostów

Interfaces

Agent, IP: 1.2.3.4, Port: 10050

IP monitorowanego hosta

Templates

Linux by Zabbix agent

Gotowy szablon z ~60 metrykami i triggerami

Szablon **Linux by Zabbix agent** automatycznie zbiera: CPU (system/user/iowait/steal), RAM, swap, dyski (read/write IOPS, latencja), sieć (in/out bytes), procesy, czas systemowy i wiele innych. Ma też predefiniowane triggery: np. alarm gdy dysk przekroczy 85% pojemności.

## Konfiguracja triggerów i akcji alertów

Własny trigger: **Configuration → Hosts → \[host\] → Triggers → Create trigger**:

\# Wyrażenia triggerów — przykłady

# CPU > 90% przez 5 minut
{moj-serwer-produkcyjny:system.cpu.util.avg(5m)}>90

# RAM wolna < 200 MB
{moj-serwer-produkcyjny:vm.memory.size\[available\].last()}<209715200

# Dysk /var/log > 90% zajęty
{moj-serwer-produkcyjny:vfs.fs.size\[/var/log,pused\].last()}>90

# Serwis nginx nie działa
{moj-serwer-produkcyjny:proc.num\[nginx\].last()}=0

# Restart hosta (uptime < 10 minut)
{moj-serwer-produkcyjny:system.uptime.change()}<0

## Integracja z Discord i Telegram

Zabbix obsługuje webhook — idealne dla Discord i Telegram. Idź do **Administration → Media types → Create media type**:

\# Media type: Discord Webhook
# Type: Webhook
# Parameters:
#   discord\_webhook\_url = https://discord.com/api/webhooks/ID/TOKEN
#   message = {ALERT.MESSAGE}
#   subject = {ALERT.SUBJECT}

# Script (JavaScript w Zabbix):
var params = JSON.parse(value);
var request = new HttpRequest();
request.addHeader('Content-Type: application/json');

var payload = JSON.stringify({
  "embeds": \[{
    "title": params.subject,
    "description": params.message,
    "color": 15158332
  }\]
});

var response = request.post(params.discord\_webhook\_url, payload);
return response;

\# Telegram Media Type
# Parameters:
#   telegram\_token = BOT\_TOKEN
#   chat\_id = -1001234567890
#   message = {ALERT.SUBJECT}: {ALERT.MESSAGE}

# Script:
var params = JSON.parse(value);
var request = new HttpRequest();
request.addHeader('Content-Type: application/json');

var url = 'https://api.telegram.org/bot' + params.telegram\_token + '/sendMessage';
var payload = JSON.stringify({
  "chat\_id": params.chat\_id,
  "text": params.message,
  "parse\_mode": "HTML"
});

var response = request.post(url, payload);
return response;

Po skonfigurowaniu Media type: **Configuration → Actions → Trigger actions → Create action** — dodaj warunek (np. Trigger severity >= High) i operację (wyślij wiadomość przez Discord/Telegram do grupy użytkowników).

## Najczęstsze pytania

Czym różni się Zabbix od Prometheusa? +

Zabbix to kompletne rozwiązanie all-in-one: serwer, agenci, baza danych (MySQL/PostgreSQL), web UI — instalujesz jeden produkt i masz wszystko. Prometheus to system pull-based z osobnymi eksporterami, Grafaną do wizualizacji i Alertmanagerem do alertów — wymaga złożenia kilku narzędzi. Zabbix lepiej sprawdza się w środowiskach enterprise z klasyczną infrastrukturą (serwery, sieci). Prometheus dominuje w Kubernetes i cloud-native.

Jak Zabbix pobiera dane z monitorowanych hostów? +

Zabbix obsługuje kilka trybów: (1) Active agent — agent sam wysyła dane do serwera co X sekund (preferowany za firewallami). (2) Passive agent — serwer odpytuje agenta (wymaga dostępu do portu 10050 na hoście). (3) SNMP — dla urządzeń sieciowych, routerów, przełączników. (4) ICMP ping — sprawdzanie dostępności. (5) HTTP agent — odpytuje URL i sprawdza odpowiedź (monitoring usług webowych bez agenta).

Co to jest trigger w Zabbix i jak go skonfigurować? +

Trigger to warunek alarmu oparty na zebranych danych. Przykład: &#123;linux-server:system.cpu.util.avg(5m)&#125; &gt; 90 — jeśli średnie użycie CPU z ostatnich 5 minut przekroczy 90%, trigger się aktywuje i wysyła alert. Triggery mają poziomy ważności: Not classified, Information, Warning, Average, High, Disaster. Do triggerów podpinasz akcje (Actions) — co zrobić gdy trigger się aktywuje: wyślij email, uruchom skrypt, wyślij webhook.

Czy Zabbix ma gotowe szablony dla popularnych usług? +

Tak — Zabbix dostarcza setki gotowych szablonów w zakładce Configuration &gt; Templates. Są szablony dla: Linux OS (CPU, RAM, dysk, sieć, procesy), Nginx, Apache, MySQL, PostgreSQL, Docker, Kubernetes, Cisco, VMware ESXi, Windows Server i wielu innych. Po dodaniu hosta wystarczy przypisać odpowiedni szablon — Zabbix automatycznie zacznie zbierać dziesiątki metryk i ma predefiniowane triggery. Dodatkowe szablony znajdziesz w Zabbix Share (share.zabbix.com).

## Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.

Contabo

VPS z dużą ilością RAM — Zabbix server + baza MySQL wymagają min. 2 GB RAM

VPS

[Aktywuj rabat →](/out/contabo)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo)

Mikrus

Tani VPS jako monitorowany host — zainstaluj tylko agenta Zabbix

Monitorowany host

[Aktywuj rabat →](/out/mikrus)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/mikrus)

LH.pl

Hosting współdzielony z monitoringiem uptime — sprawdź dostępność HTTP przez Zabbix

Monitoring HTTP

[Aktywuj rabat →](/out/lh-pl)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/lh-pl)

## Powiązane strony

-   [Monitorowanie strony z UptimeRobot](/baza-wiedzy/monitorowanie-strony-uptime-robot)
-   [Bezpieczeństwo VPS — checklist](/baza-wiedzy/bezpieczenstwo-vps-checklist)
-   [Testowanie wydajności serwera — k6 i ApacheBench](/baza-wiedzy/load-testing-k6-ab)
-   [Wszystkie artykuły](/baza-wiedzy/)