8.2.6 Встановлення та налаштування Zabbix на сервері

The Host Banner Zabbix

Zabbix — це потужна система моніторингу з відкритим вихідним кодом. Вона дозволяє в режимі реального часу контролювати стан серверів, мереж, додатків, баз даних і навіть хмарних середовищ. Zabbix активно застосовується як у малому бізнесі, так і у великих корпоративних інфраструктурах.

Основні можливості Zabbix:

  • Виявлення проблем до того, як вони вплинуть на користувачів;
  • Автоматичні сповіщення по Email, Telegram, Slack або SMS;
  • Побудова візуалізацій: дашборди, графіки, карти;
  • Використання шаблонів для типових систем (Linux, MySQL, Docker тощо);
  • Масштабованість: підтримка Zabbix Proxy та кластерних конфігурацій.

Системні вимоги

Щоб успішно запустити Zabbix, вам знадобиться:

  • Віртуальний або Виділений сервер з Ubuntu Server 24.04 LTS;
  • Доступ root або через sudo;
  • Мінімум 2 ГБ оперативної пам’яті (рекомендується 4 ГБ+);
  • Вільне місце на SSD-диску — щонайменше 20 ГБ;
  • Стабільне інтернет-з’єднання для завантаження оновлень та пакетів.

Підготовка системи

Почнемо з оновлення системи та встановлення необхідних утиліт:

apt update && apt upgrade -y

update sys

Це дозволяє уникнути конфліктів під час подальшої установки і забезпечує актуальні версії пакетів.

Додавання репозиторію Zabbix

Zabbix не входить у стандартні репозиторії Ubuntu, тому необхідно вручну додати офіційний пакет:

wget https://repo.zabbix.com/zabbix/7.2/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.2+ubuntu24.04_all.deb
apt install ./zabbix-release_latest_7.2+ubuntu24.04_all.deb -y
apt update

Add repo1

Add repo2

Add repo3

Встановлення компонентів Zabbix, MySQL, Nginx, PHP

Інформація: Команда нижче встановлює одразу всі основні компоненти для роботи Zabbix: сервер, агент, веб-інтерфейс, веб-сервер, PHP і базу даних MySQL.

apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf \
  zabbix-sql-scripts zabbix-agent mysql-server nginx php8.3-fpm -y

apt install zabbix-server-mysql

zabbix-frontend-php

Налаштування бази даних MySQL

Встановлення Zabbix передбачає створення окремої бази даних та користувача:

mysql -u root -p
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'your_zabbix_password';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
SET GLOBAL log_bin_trust_function_creators = 1;
EXIT;

Імпортуємо схему бази даних:

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

mysql -u root -p
SET GLOBAL log_bin_trust_function_creators = 0;
EXIT;

Попередження: Не використовуйте обліковий запис root для з’єднання Zabbix із базою. Завжди створюйте окремого користувача з обмеженими правами.

Налаштування Zabbix Server

У файлі /etc/zabbix/zabbix_server.conf потрібно вказати пароль бази даних:

nano /etc/zabbix/zabbix_server.conf

Знайдіть рядок:

# DBPassword=

І замініть на:

DBPassword=your_zabbix_password

DB create

Налаштування веб-інтерфейсу через Nginx

nano /etc/zabbix/nginx.conf

Налаштуйте:

listen 8080;
server_name your_domain_or_ip;

Запуск сервісів

systemctl restart zabbix-server zabbix-agent nginx php8.3-fpm
systemctl enable zabbix-server zabbix-agent nginx php8.3-fpm

Test on linux

Доступ до веб-інтерфейсу

Відкрийте браузер і перейдіть за адресою:

http://<ip-сервера>:8080

У браузері має запуститись налаштування Zabbix, оберіть мову інтерфейсу: Interface languege

Перевірте чи відповідає сервер технічним вимогам:

Tech requires

Введіть данні створеної бази даних:

DB data

Оберіть часовий пояс: Time zone

Перевірте, чи все вказано вірно: Check

Готово, тепер авторизуйтесь у системі з даними за замовчуванням:

Username: Admin
Password: zabbix

Dashboard panel

Важливо: після успішної авторизації змініть пароль адміністратора.

Основна частина встановлення та налаштування завершена:

Install complete

Встановлення та налаштування Zabbix Agent

Щоб Zabbix міг збирати метрики з інших хостів, потрібно встановити агент:

apt install zabbix-agent -y
nano /etc/zabbix/zabbix_agentd.conf

Основні параметри:

Server=<IP_Zabbix_Server>
ServerActive=<IP_Zabbix_Server>
Hostname=my_monitored_host
systemctl restart zabbix-agent
systemctl enable zabbix-agent

Порада: Переконайтеся, що імена хостів у конфігурації агента та веб-інтерфейсі збігаються. Це спростить моніторинг і усунення помилок.

Моніторинг

Додавання нового хоста через веб-інтерфейс

  1. Перейдіть до Data collection → Hosts ;
  2. Натисніть Create host ;
  3. Заповніть:
    • Host name: те саме, що і в конфігурації агента;
    • Interfaces: IP хоста, тип — Agent, порт — 10050;
    • Templates: оберіть Template OS Linux by Zabbix agent.

Відслідковування ping

Для коректної роботи ICMP Ping у Zabbix потрібна утиліта fping. Встановіть її на Zabbix Server, який виконуватиме перевірки:

sudo apt install fping

Налаштуйте права для fping для коректного зчитування показників:

sudo chmod +s /usr/bin/fping
sudo chmod +s /usr/bin/fping6

Перейдіть у веб-інтерфейс Zabbix:

  1. Відкрийте Data collectionHosts та натисніть Create host для створення нового хоста або виберіть існуючий хост для редагування і заповніть такі поля:

    • Host name: введіть ім’я хоста (наприклад, My_Router або Public_Web_Server).
    • Visible name: (необов’язково) більш зрозуміле ім’я.
    • Templates: введіть ICMP Ping
    • Host groups: виберіть або створіть групу для хоста. Натисніть Add у розділі “Interfaces”.
      • Type: оберіть Agent (навіть якщо Zabbix Agent не встановлено на цільовому пристрої, цей інтерфейс використовується для визначення IP-адреси хоста для Zabbix server/proxy).
      • IP address: введіть IP-адресу цільового пристрою.
      • Port: залиште стандартний порт Zabbix Agent (10050) або будь-який інший, оскільки для ping він не використовується безпосередньо, але інтерфейс потрібен.

ICMP Ping

Натисніть Add.

  1. Перевірка даних моніторингу:

Перейдіть у MonitoringLatest data. В полі Hosts введіть назву вашого хоста та натисніть Apply. Ви побачите елементи даних, пов’язані з Ping, такі як:

  • ICMP ping — (доступність: 1 — доступний, 0 — недоступний);
  • ICMP loss — (втрата пакетів у %);
  • ICMP response time — (час відповіді у секундах).

monitoring ping

Відслідковування HTTP/HTTPS

Моніторинг HTTP(S)-сайтів у Zabbix здійснюється за допомогою Web scenarios. Вони дозволяють регулярно перевіряти доступність сайту, коректність відповідей і наявність потрібного контенту.

Перейдіть до Data collectionHosts → [Ваш хост] → WebCreate scenario

web scenario

Створіть сценарій для http\https:

  • Name: Моніторинг example.com
  • Application: (можна створити нову) Web checks
  • Update interval: 1m
  • Retries: 2
  • Agent: Mozilla/5.0 (Zabbix Web Monitor)

Create scenario

Відкрийте вкладку Steps і створіть два кроки для http та https:

  • Name: Моніторинг example.com
  • URL: [https://example.com/]
  • Follow redirects: так
  • Required status: 200
  • Timeout: 15s

Create step

Після виконаних дій у моніторингу з’являться такі показники для кожного зі створених сценаріїв:

  • Response time for step “HTTPS” of scenario “http” — час відповіді для одного кроку (у секундах). Відображає, скільки часу минуло від відправлення запиту до отримання відповіді.
  • Response code for step “HTTPS” of scenario “http” — HTTP статус-код (200, 404, 503 тощо), отриманий у відповідь на запит.
  • Failed step of scenario “http” — номер кроку, який не пройшов (наприклад, якщо був неочікуваний код, таймаут або відсутній рядок). Якщо всі кроки пройдено — значення буде 0.
  • Download speed for step “HTTPS” of scenario “http” — швидкість завантаження контенту (у байтах/сек). Показує, наскільки швидко передаються дані.

http_https

Щоб побачити ці показники, перейдіть у MonitoringLatest data. В полі Hosts введіть назву вашого хоста та натисніть Apply.