8.2.6 Встановлення та налаштування 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
Це дозволяє уникнути конфліктів під час подальшої установки і забезпечує актуальні версії пакетів.
Додавання репозиторію 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
Встановлення компонентів 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
Налаштування бази даних 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
Налаштування веб-інтерфейсу через 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
Доступ до веб-інтерфейсу
Відкрийте браузер і перейдіть за адресою:
http://<ip-сервера>:8080
У браузері має запуститись налаштування Zabbix, оберіть мову інтерфейсу:
Перевірте чи відповідає сервер технічним вимогам:
Введіть данні створеної бази даних:
Оберіть часовий пояс:
Перевірте, чи все вказано вірно:
Готово, тепер авторизуйтесь у системі з даними за замовчуванням:
Username: Admin
Password: zabbix
Важливо: після успішної авторизації змініть пароль адміністратора.
Основна частина встановлення та налаштування завершена:
Встановлення та налаштування 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
Порада: Переконайтеся, що імена хостів у конфігурації агента та веб-інтерфейсі збігаються. Це спростить моніторинг і усунення помилок.
Моніторинг
Додавання нового хоста через веб-інтерфейс
- Перейдіть до Data collection → Hosts ;
- Натисніть Create host ;
- Заповніть:
- 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:
-
Відкрийте Data collection → Hosts та натисніть 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 він не використовується безпосередньо, але інтерфейс потрібен.
Натисніть Add.
- Перевірка даних моніторингу:
Перейдіть у Monitoring → Latest data. В полі Hosts введіть назву вашого хоста та натисніть Apply. Ви побачите елементи даних, пов’язані з Ping, такі як:
ICMP ping
— (доступність: 1 — доступний, 0 — недоступний);ICMP loss
— (втрата пакетів у %);ICMP response time
— (час відповіді у секундах).
Відслідковування HTTP/HTTPS
Моніторинг HTTP(S)-сайтів у Zabbix здійснюється за допомогою Web scenarios. Вони дозволяють регулярно перевіряти доступність сайту, коректність відповідей і наявність потрібного контенту.
Перейдіть до Data collection →Hosts → [Ваш хост] → Web → Create scenario
Створіть сценарій для http\https:
- Name: Моніторинг example.com
- Application: (можна створити нову) Web checks
- Update interval: 1m
- Retries: 2
- Agent: Mozilla/5.0 (Zabbix Web Monitor)
Відкрийте вкладку Steps і створіть два кроки для http та https:
- Name: Моніторинг example.com
- URL: [https://example.com/]
- Follow redirects: так
- Required status: 200
- Timeout: 15s
Після виконаних дій у моніторингу з’являться такі показники для кожного зі створених сценаріїв:
- 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” — швидкість завантаження контенту (у байтах/сек). Показує, наскільки швидко передаються дані.
Щоб побачити ці показники, перейдіть у Monitoring → Latest data. В полі Hosts введіть назву вашого хоста та натисніть Apply.
Офіційна документація: