Сервер Zabbix використовується для збору та аналізу інформації про стан мережевих вузлів. У цій статті буде розглянуто процес встановлення та розгортання веб-інтерфейсу для його управління. Ми будемо використовувати MariaDB/MySQL як сервер бази даних. Версія операційної системи, яка була використана для написання інструкцій, — 20.04 LTS (також протестована на 22.04), версія Zabbix, що встановлюється, — 6.
Підготовка сервера
- Час
- Брандмауер
Встановлення веб-сервера
- MariaDB
- nginx
- PHP + PHP-FPM
- NGINX + PHP
Встановлення сервера Zabbix
- Встановлення
- Налаштування бази даних
- Налаштування zabbix
- Запуск zabbix-server
- Налаштування nginx
- Встановлення служби управління
Налаштування агента Zabbix на сервері
Інші інструкції для Zabbix
Підготовка сервера
Перед встановленням Zabbix ми виконуємо підготовчі процедури.
Для початку зробимо наступне
1. Точний час
Для отримання актуальної інформації необхідно, щоб сервер мав точний час.
Для цього спочатку встановіть точний часовий пояс:
timedatectl set-timezone europe/berlin
* У цьому прикладі встановлено час Берліна.
Потім встановіть і запустіть службу синхронізації часу:
apt install chrony
systemctl enable chrony
systemctl start chrony
2. Налаштування брандмауера
Для доступу до сервера Zabbix відкрийте наступні порти:
iptables -I INPUT -p tcp –match multiport –dports 80,443 -j ACCEPT
iptables -I INPUT -p tcp –match multiport –dports 10050,10051 -j ACCEPT
iptables -I INPUT -p udp –match multiport –dports 10050,10051 -j ACCEPT
* де 80 — порт для http-запитів (веб-інтерфейс); 443 — для https-запитів (веб-інтерфейс); 10050 — порти для отримання інформації від агентів Zabbix.
Щоб зберегти правила, використовуйте
apt install iptables-persistent
netfilter persistent save
3. Оновіть список пакетів у репозиторії:
apt update
Якщо наша система чиста і на ній не працюють критичні служби, варто оновити встановлені пакети:
apt upgrade
Підготовка системи завершена.
Встановлення веб-сервера
Сервер Zabbix буде управлятися через веб-інтерфейс. Для цього потрібно встановити і налаштувати веб-сервер, БД і PHP.
MariaDB
У цьому підручнику ми будемо використовувати сервер баз даних MariaDB. Для Zabbix версії 6 потрібна MariaDB версії 10.05.00 і вище. Але занадто нова версія також може не підтримуватися сервером zabbix. Необхідно уточнити системні вимоги на офіційній сторінці.
Репозиторій Ubuntu може не містити необхідну версію MariaDB, тому ми підключимо репозиторій розробника. Для цього перейдіть за посиланням downloads.mariadb.org/mariadb/repositories і виберіть нашу версію операційної системи, останню стабільну і підтримувану версію MariaDB і географічне розташування репозиторію, наприклад:

Нижче ви побачите інструкції щодо додавання репозиторію та встановлення MariaDB
sudo apt-get install apt-transport-https curl
sudo curl -o /etc/apt/trusted.gpg.d/mariadb_release_signing_key.asc “https://mariadb.org/mariadb_release_signing_key.asc”
sudo sh -c «echo “deb https://mirror.creoline.net/mariadb/repo/10.10/ubuntu focal main” >>/etc/apt/sources.list»
Оновіть кеш пакетів:
apt update
Встановіть MariaDB:
apt install mariadb-server
Дозвольте автозапуск сервера бази даних і запустіть MariaDB:
systemctl enable mariadb
systemctl start mariadb
Встановіть пароль для суперкористувача БД:
mysqladmin -u root password
* після введення команди система вимагатиме ввести пароль двічі.
Веб-сервер
Ми будемо використовувати веб-сервер NGINX.
Щоб встановити його, введіть команду:
apt install nginx
Запустіть nginx і дозвольте йому автоматичний запуск:
systemctl enable nginx
systemctl start nginx
Відкриваємо веб-браузер і переходимо за посиланням http://<IP-адреса сервера>/ – ми повинні побачити вікно привітання:

VPS Linux
VPS-хостинг з віртуалізацією KVM
Віддалений доступ/керування
Готове рішення
Віртуалізація KVM
Підтримка 24 години на добу
PHP та PHP-FPM
Інтерфейс Zabbix розроблений на PHP. Наш веб-сервер повинен обробляти скрипти, написані на цій мові. Для Zabbix версії 6 потрібна версія PHP 7.2 або вище.
Встановіть php та необхідні компоненти:
apt install php php-fpm php-mysql php-pear php-cgi php-common php-ldap php-mbstring php-snmp php-gd php-xml php-bcmath
Щоб налаштувати php, відкрийте файл:
vi /etc/php/7.4/fpm/php.ini
* де 7.4 — версія PHP. У вашому випадку це може бути інша версія. Ви можете перевірити це за допомогою команди php -v.
Відредагуйте наступні параметри:
date.timezone = «Europe/Berlin»
max_execution_time = 300
post_max_size = 16M
max_input_time = 300
max_input_vars = 10000
* Де:
date.timezone – часовий пояс. У нашому прикладі встановлено московський час.
max_execution_time – дозволений час виконання скрипта. Якщо скрипт виконується довше, система його перерве.
post_max_size – максимальний обсяг передачі даних за допомогою методу POST.
max_input_time – час у секундах, який PHP повинен витратити на аналіз вхідних даних GET і POST.
max_input_vars – обмежена кількість вхідних змінних, які можуть бути передані серверу в одному запиті.
Дозвольте php-fpm працювати і перезапустіть його:
systemctl enable php7.4-fpm
systemctl restart php7.4-fpm
NGINX + PHP
Щоб NGINX міг обробляти PHP, відкрийте файл конфігурації:
vi /etc/nginx/sites-enabled/default
У розділі location додайте параметр index:
index index.php;
У розділі server додайте наступне:
location ~ \.php$ {
set $root_path /var/www/html;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
}
* де /var/www/html — кореневий шлях для зберігання скриптів; /run/php/php7.4-fpm.sock — шлях до файлу сокета php-fpm (точне розташування файлу можна знайти в файлі конфігурації /etc/php/7.4/fpm/pool.d/www.conf).
Перевірка налаштувань nginx:
nginx -t
І перезавантажте його:
systemctl restart nginx
Створіть index.php з таким вмістом:
vi /var/www/html/index.php
<?php phpinfo(); ?>
Відкрийте веб-браузер і перейдіть за посиланням http://<IP-адреса сервера>/ – тепер ми повинні побачити підсумок PHP та його налаштування.
Веб-сервер готовий до роботи з Zabbix Web.
Встановлення та налаштування сервера Zabbix
Перейдемо до встановлення самого сервера Zabbix.
Встановлення
Спочатку встановимо репозиторій останньої версії Zabbix. Для цього перейдіть на сторінку https://repo.zabbix.com/zabbix/ і перейдіть до розділу з останньою версією пакета – потім перейдіть до ubuntu/pool/main/z/zabbix-release/ – скопіюйте посилання на останню версію релізу:

Зверніть увагу, що вам потрібно скопіювати посилання на файл для вашої версії Ubuntu — у нашому прикладі це 20.04. Ви можете переглянути свою версію операційної системи за допомогою команди:
cat /etc/os-release | grep VERSION_ID
Завантажте файл репозиторію за допомогою команди:
wget https://repo.zabbix.com/zabbix/6.3/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.3-3%2Bubuntu18.04_all.deb
Встановіть його:
dpkg -i zabbix-release_*.deb
Оновіть списки пакетів:
apt update
Встановіть сервер, ввівши команду:
apt install zabbix-server-mysql zabbix-frontend-php zabbix-get zabbix-sql-scripts
Налаштування бази даних
Ми вводимо оболонку для введення команд sql:
mysql -uroot -p
Створюємо базу даних:
> CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;
* ми створили базу даних zabbix.
Створюємо користувача для підключення та роботи зі створеною базою даних:
> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY “zabbixpassword”;
* у цьому прикладі ми створили користувача zabbix з доступом до бази даних zabbix та паролем zabbixpassword.
Вийдіть з оболонки sql:
> \q
Як частина zabbix, існує готова схема для MySQL / MariaDB або postgreSQL DB. У нашому випадку нам потрібна MySQL.
Щоб застосувати схему, перейдіть до каталогу:
cd /usr/share/zabbix-sql-scripts/mysql
У попередніх версіях Zabbix шлях до дампа бази даних був /usr/share/doc/zabbix-sql-scripts/mysql. Якщо ми не змогли знайти потрібний каталог з дампом, можна спробувати виконати пошук за допомогою команди:
find / -type f -iname server.sql.gz
Розпакуйте архів з дампом бази даних:
gunzip server.sql.gz
Відновлення бази з їх дампа:
mysql -u root -p zabbix <server.sql
* після введення команди система запросить пароль. Ви повинні ввести пароль, який ми встановили після установки MariaDB.
Налаштування zabbix
Відкрийте файл конфігурації zabbix
vi /etc/zabbix/zabbix_server.conf
Додаємо рядок
DBPassword=zabbixpassword
* налаштовуємо сервер на підключення до бази даних з паролем zabbixpassword, який був встановлений при створенні бази даних для zabbix.
І перевіряємо наступні рядки:
DBName=zabbix
DBUser=zabbix
* база даних і ім’я користувача повинні бути zabbix (як ми створили в MariaDB).
Створюємо каталог для розміщення файлів конфігурації (з якихось причин він може не бути створений під час інсталяції):
mkdir /etc/zabbix/zabbix_server.conf.d
Запуск zabbix-server
Дозволяємо автозапуск сервера моніторингу
systemctl enable zabbix-server
Після цього запускаємо сам сервер zabbix
systemctl start zabbix-server
Налаштування nginx
Під час встановлення zabbix-web файли копіюються до каталогу /usr/share/zabbix. Наш веб-сервер працює з каталогом /var/www/html.
Щоб змінити це, відкрийте файл конфігурації nginx:
vi /etc/nginx/sites-enabled/default
Відредагуйте root і встановіть параметри $root_path:
root /usr/share/zabbix
location ~ \.php$ {
set $root_path /usr/share/zabbix;
}
Перезапустіть nginx
systemctl restart nginx
Завершення встановлення сервера Zabbix
Відкрийте браузер і перейдіть за адресою http://<IP-адреса сервера>/ – відкриється сторінка встановлення Zabbix Web.
Виберіть бажану мову встановлення та натисніть «Наступний крок»
Якщо список мов не містить потрібну нам, встановіть локалі:
dpkg-reconfigure locales
І перезапустіть обробник PHP, у нашому випадку:
systemctl restart php7.4-fpm
Перезавантажте сторінку встановлення та виберіть бажану мову.
У наступному вікні уважно перегляньте результати перевірки веб-сервера — праворуч має бути все в порядку. Якщо це не так, перевірте налаштування та виправте попередження та помилки, а потім перезапустіть сторінку F5, щоб перевірити налаштування ще раз.
Коли всі результати в порядку, натисніть «Наступний крок»
У наступному вікні ми залишаємо налаштування підключення до бази даних без змін — додатково вводимо пароль, який був встановлений під час створення користувача zabbix. Потім натискаємо «Наступний крок»:

Введіть пароль для користувача Zabbix
* у нашому випадку пароль був zabbixpassword;
У наступному вікні залиште все як є:

… і натисніть Наступний крок.
В останньому вікні перевіряємо налаштування і натискаємо Наступний крок.
Встановлення завершено — натисніть Готово
У вікні, що відкриється, введіть логін Admin і пароль zabbix (за замовчуванням).
Агент Zabbix
Як приклад, встановимо агент zabbix на наш сервер. Також налаштуємо зашифроване з’єднання між сервером і агентом.
Встановлення та підключення агента
Оскільки ми вже встановили репозиторій, агент встановлюється за допомогою команди:
apt install zabbix agent
Відкриємо файл конфігурації:
vi /etc/zabbix/zabbix_agentd.conf
Відредагуємо наступний параметр:
Server=127.0.0.1
* у цьому прикладі ми вказуємо агенту сервер Zabbix — можна вказати його ім’я або IP-адресу.
Дозволяємо автозапуск агента і перезапускаємо його:
systemctl enable zabbix-agent
systemctl restart zabbix-agent
Переходимо до панелі управління сервером. Відкриваємо Monitoring — Hosts. Ми повинні побачити один вузол Zabbix Server.
А праворуч повинен бути статус доступності ZBX:

Агент запущений і працює.
Увімкніть шифрування
Щоб забезпечити безпеку передачі даних між сервером і агентом, налаштуйте шифрування за допомогою ключа PSK.
На агенті відкрийте файл конфігурації:
vi /etc/zabbix/zabbix_agentd.conf
Змініть 4 параметри:
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=PSK 001
TLSPSKFile=/etc/zabbix/agent_key.psk
Створіть ключ:
openssl rand -hex 32 > /etc/zabbix/agent_key.psk
Переглянемо його вміст:
cat /etc/zabbix/agent_key.psk
Збережіть його, оскільки він нам знадобиться.
Перезапустіть агент:
systemctl restart zabbix-agent
Перейдіть до веб-панелі управління Zabbix. У списку Хости натисніть на наш сервер, на якому встановлено агент.

Перейдіть на вкладку «Шифрування». Виберіть з’єднання з PKS, встановіть прапорець «Тільки PSK», введіть ідентифікатор (який був встановлений під час налаштування агента в параметрі TLSPSKIdentity), введіть сам ключ, який був згенерований в консолі агента.
Натисніть «Оновити», щоб застосувати налаштування.
Через кілька хвилин стан нашого з’єднання з агентом повинен виглядати приблизно так:
Шифрування налаштоване.