*Cube-Host — повний спектр хмарних послуг!!

Встановлення та початкове налаштування сервера моніторингу Zabbix на Ubuntu Server

Server monitoring and alerting concept

Підготовка Ubuntu до надійного моніторингу

Zabbix — це повнофункціональна платформа моніторингу, яка може відстежувати сервери, мережеві пристрої, додатки, журнали та бізнес-показники, а потім сповіщати вас, коли щось не так (до того, як це помітять користувачі). У цьому посібнику ви розгорнете готовий до використання стек Zabbix на Ubuntu Server із веб-інтерфейсом бази даних, а потім виконаєте «перші 30 хвилин» зміцнення безпеки та початкового налаштування.

У цьому посібнику розглядаються такі теми: встановлення найновіших пакетів Zabbix на Ubuntu Server (рекомендовано: Ubuntu 24.04 LTS), налаштування MariaDB, налаштування NGINX/PHP-FPM для інтерфейсу, запуск служб, відкриття потрібних портів та підключення першого хосту з шифрованим трафіком агента. Якщо ви розгортаєте систему на новому VPS під Linux, цей процес пройде особливо гладко, оскільки ви повністю контролюєте брандмауер, версію PHP та ресурси сервера.

Перш ніж почати: версії, розміри та короткий контрольний список

  • ОС: Ubuntu Server 24.04 LTS — найзручніша базова платформа для поточних версій Zabbix.
  • Процесор/оперативна пам’ять: для невеликого середовища (до ~50 хостів) почніть з 2 vCPU / 2–4 ГБ оперативної пам’яті; збільшуйте обсяги у міру додавання елементів, історії та інформаційних панелей.
  • Диск: настійно рекомендується SSD. Бази даних моніторингу швидко зростають; заплануйте мінімум 20–50 ГБ і перегляньте обсяг через тиждень роботи з реальними даними.
  • Мережа: стабільне підключення до хостів, що моніторяться; вирішіть, чи будуть перевірки пасивними (сервер → агент) чи активними (агент → сервер).
  • Доступ: привілеї sudo та (в ідеалі) ім’я DNS на кшталт monitor.your-domain.com для HTTPS пізніше.
ПортХто слухаєНавіщо це потрібноТипове правило брандмауера
80/tcpNGINXВеб-інтерфейс (HTTP)Дозволити з ваших IP-адрес (або всім, якщо публічний)
443/tcpNGINXВеб-інтерфейс (HTTPS)Дозволити з ваших IP-адрес (рекомендовано)
10051/tcpСервер ZabbixТрапери, проксі-сервери, активні агентиДозволити з проксі-серверів/агентів, що використовують активні перевірки
10050/tcpАгент Zabbix (на моніторованих хостах)Пасивні перевірки (сервер опитує агента)Дозволити на моніторованих хостах, не обов’язково на сервері Zabbix

Крок 1: підготовка базового сервера

Почніть з оновлень, правильного часу та чистої базової лінії. Точний час має значення, оскільки Zabbix корелює події, тенденції та сповіщення за часовими мітками.

sudo apt update
sudo apt -y upgrade

# Set timezone (example: Europe/Berlin)
sudo timedatectl set-timezone Europe/Berlin

# Time sync (Chrony is a solid default on servers)
sudo apt -y install chrony
sudo systemctl enable --now chrony

# Optional but recommended: basic tools
sudo apt -y install curl wget gnupg lsb-release unzip

Порада для VPS: якщо ви використовуєте Zabbix на VPS-хостингу, використовуйте також моніторинг з боку провайдера (графіки CPU/RAM/диска в панелі управління). Це допоможе вам зрозуміти, чи спричинені сповіщення Zabbix самим хостом, чи додатком всередині VPS.

Крок 2: встановлення та захист бази даних (MariaDB)

Zabbix зберігає метрики конфігурації в базі даних. MariaDB — популярний вибір для стеків моніторингу Linux. Для малих та середніх установок вона є швидкою, передбачуваною та простою в обслуговуванні.

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

# Basic hardening wizard (set root password, remove test DB, etc.)
sudo mysql_secure_installation

Створіть базу даних Zabbix та виділеного користувача. Використовуйте надійний пароль (ставтеся до нього як до виробничої таємниці).

sudo mysql -uroot -p

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'REPLACE_WITH_STRONG_PASSWORD';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Крок 3: встановіть NGINX та PHP-FPM для веб-інтерфейсу

Інтерфейс Zabbix — це PHP-додаток. Найпростіший підхід на Ubuntu — це NGINX та PHP-FPM. Пізніше ми також встановимо Certbot (опціонально) для увімкнення HTTPS.

sudo apt -y install nginx php-fpm
sudo systemctl enable --now nginx

Тепер налаштуйте кілька параметрів PHP, які часто викликають попередження «вимоги не виконані» в інсталяторі Zabbix (часовий пояс та обмеження введення). Ваша версія PHP може відрізнятися (Ubuntu 24.04 зазвичай використовує PHP 8.3).

# Find your installed PHP-FPM version directory
ls /etc/php/

# Example for PHP 8.3:
sudo nano /etc/php/8.3/fpm/php.ini

# Set/verify:
# date.timezone = Europe/Berlin
# max_execution_time = 300
# max_input_time = 300
# post_max_size = 16M
# max_input_vars = 10000

sudo systemctl restart php8.3-fpm

Крок 4: встановіть найновіші пакети сервера Zabbix

Zabbix надає офіційні репозиторії для Ubuntu. Стандартна схема така: встановіть zabbix-release пакет, оновлення APT, а потім встановлення сервера, інтерфейсу, скриптів SQL та агента.

Примітка: якщо ваша компанія віддає перевагу довгостроковій стабільності, виберіть останню гілку LTS. Якщо ви віддаєте перевагу новітнім функціям та вдосконаленням, виберіть останню стабільну гілку. Процес інсталяції є однаковим — змінюється лише посилання на репозиторій.

# Example: Zabbix 7.4 repository for Ubuntu 24.04 (adjust version if needed)
cd /tmp
wget https://repo.zabbix.com/zabbix/7.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.4-1 ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_7.4-1 ubuntu24.04_all.deb

sudo apt update

# Install Zabbix server   frontend   NGINX config   SQL scripts   Agent 2
sudo apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

Крок 5: імпортуйте початкову схему в базу даних Zabbix

Цей крок створює таблиці та базові дані, необхідні Zabbix. Це може зайняти кілька хвилин залежно від швидкості диска.

# Import schema (recommended: use zcat to avoid manual unpacking)
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix

Якщо імпорт не вдається, перевірте повідомлення про помилку. Типові причини: неправильний пароль, недостатньо місця на диску або налаштування MySQL/MariaDB, які є занадто суворими для вашого середовища.

Крок 6: налаштування з’єднання сервера Zabbix з базою даних

Відкрийте конфігурацію сервера та вкажіть пароль до БД, який ви створили раніше.

sudo nano /etc/zabbix/zabbix_server.conf

# Set:
# DBPassword=REPLACE_WITH_STRONG_PASSWORD

Порада щодо продуктивності: коли ви будете моніторити більше хостів, вам, ймовірно, доведеться налаштувати такі параметри, як CacheSize та StartPollers. Не варто сліпо оптимізувати з першого дня — спочатку виміряйте показники (навантаження на процесор, базу даних, розмір черги), а потім коригуйте.

Крок 7: налаштуйте NGINX для інтерфейсу Zabbix

У zabbix-nginx-confZabbix постачається з шаблоном сайту для NGINX. Оновіть ім’я сервера (ваш домен) та переконайтеся, що сокет/версія PHP-FPM відповідають вашій системі.

sudo nano /etc/zabbix/nginx.conf

# Common edits:
# listen 80;
# server_name monitor.your-domain.com;
# (and verify the PHP-FPM socket path if your distro differs)

Потім перезапустіть NGINX:

sudo systemctl restart nginx

Крок 8: запустіть служби та перевірте стек

sudo systemctl enable --now zabbix-server zabbix-agent2
sudo systemctl status zabbix-server --no-pager
sudo systemctl status zabbix-agent2 --no-pager

Якщо сервер Zabbix не запускається, негайно перевірте журнали:

sudo tail -n 200 /var/log/zabbix/zabbix_server.log

Крок 9: безпечно відкрийте порти брандмауера

У Ubuntu найпростішим варіантом часто є UFW. В ідеалі обмежте доступ до веб-інтерфейсу IP-адресами вашого офісу/VPN та обмежте порт 10051 відомими проксі-серверами/агентами.

sudo apt -y install ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Zabbix server port (only if you use proxies/active agents from outside)
sudo ufw allow 10051/tcp

sudo ufw enable
sudo ufw status

Крок 10: завершіть налаштування у веб-інсталяторі та захистіть обліковий запис адміністратора

Відкрийте в браузері:

http://SERVER_IP/
# or
http://monitor.your-domain.com/

Дотримуйтесь інструкцій інсталятора Zabbix, вкажіть базу даних MariaDB, а потім увійдіть у систему. Негайно змініть стандартний пароль адміністратора, створіть для себе окремий обліковий запис адміністратора, а оригінальний обліковий запис «Admin» залиште як аварійний (або вимкніть його, якщо цього вимагає ваша політика).

Крок 11: підключіть свій перший хост (Agent 2) із шифруванням

Zabbix Agent 2 — це сучасний агент із підтримкою плагінів та кращою розширюваністю. На тому самому сервері ви можете увімкнути шифрування PSK, щоб метрики не надсилалися у вигляді звичайного тексту.

На агенті (цьому сервері): створіть файл PSK та оновіть налаштування агента.

sudo openssl rand -hex 32 | sudo tee /etc/zabbix/agent2.psk > /dev/null
sudo chmod 600 /etc/zabbix/agent2.psk

sudo nano /etc/zabbix/zabbix_agent2.conf

# Set/verify:
# Server=127.0.0.1
# ServerActive=127.0.0.1
# TLSConnect=psk
# TLSAccept=psk
# TLSPSKIdentity=PSK-LOCAL-001
# TLSPSKFile=/etc/zabbix/agent2.psk

sudo systemctl restart zabbix-agent2

В інтерфейсі Zabbix: перейдіть до Збір даних → Хости, відкрийте свій хост, потім встановіть інтерфейс на Агент і налаштуйте Шифрування з тим самим ідентифікатором PSK та значенням PSK (вміст файлу /etc/zabbix/agent2.psk). Приєднайте шаблон Linux (наприклад, «Linux by Zabbix agent») і переконайтеся, що дані почали надходити.

Опціонально: увімкніть HTTPS із безкоштовним SSL-сертифікатом

Навіть для внутрішнього моніторингу HTTPS вартий уваги (облікові дані та інформаційні панелі не повинні передаватися у незашифрованому вигляді). Якщо до вашого інтерфейсу Zabbix можна отримати доступ через доменне ім’я, ви можете оформити сертифікат за допомогою Let’s Encrypt.

sudo apt -y install certbot python3-certbot-nginx
sudo certbot --nginx -d monitor.your-domain.com

Якщо ви все ще обираєте серверне програмне забезпечення для вашого стеку моніторингу, також прочитайте про варіанти VPS на базі Linux і зважте, чи потребує ваше середовище інструментів, специфічних для Windows (у такому випадку VPS на базі Windows може бути кращим варіантом).

Перелік дій для усунення несправностей (швидкі рішення для типових збоїв)

  • Сервер Zabbix не запускається: перевірте пароль до БД у /etc/zabbix/zabbix_server.conf, перевірте, чи завершено імпорт схеми, перевірте /var/log/zabbix/zabbix_server.log.
  • Веб-інтерфейс показує 502 Bad Gateway: невідповідність між конфігурацією NGINX та сокетом/версією PHP-FPM. Переконайтеся, що служба працює (systemctl status php8.3-fpm) та оновлюйте шлях до сокета.
  • Інсталятор повідомляє про помилки налаштувань PHP: встановіть часовий пояс та збільште обмеження у php.ini, а потім перезапустіть PHP-FPM.
  • Відсутні дані від агента: перевірте напрямок брандмауера (пасивні проти активних перевірок), переконайтеся, що агент працює, перевірте IP/DNS інтерфейсу хосту в інтерфейсі Zabbix.
  • Диск швидко заповнюється: налаштуйте час зберігання історії/трендів, увімкніть стратегію очищення, розгляньте можливість розділення або переміщення БД на окремий диск.

Що робити далі, щоб зробити моніторинг справді «продуктивним»

  • Налаштуйте резервне копіювання бази даних (щодня) та протестуйте відновлення.
  • Обмежте доступ до інтерфейсу користувача за допомогою правил брандмауера або VPN.
  • Увімкніть канали сповіщень (електронна пошта/Telegram тощо) та протестуйте повний потік інцидентів.
  • Додайте Zabbix Proxy для віддалених сайтів, щоб зменшити залежність від WAN.
  • Моніторинг моніторингу: CPU/RAM/IO на самому VPS Zabbix.
Prev
Menu