*КУБ - повний комплекс хмарних послуг!

UK

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

Сервер 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), введіть сам ключ, який був згенерований в консолі агента.
Натисніть «Оновити», щоб застосувати налаштування.
Через кілька хвилин стан нашого з’єднання з агентом повинен виглядати приблизно так:
Шифрування налаштоване.