*КУБ — полный комплекс облачных услуг!

Установка и начальная настройка сервера мониторинга Zabbix 6 на Ubuntu Server

Ubuntu Server
Установка и начальная конфигурация сервера мониторинга 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 необходимо подготовить сервер и выполнить базовые системные настройки. Для развертывания системы мониторинга можно использовать Linux VPS с Ubuntu 20.04 или 22.04, достаточным объёмом оперативной памяти и доступом с правами root.

Для начала выполним следующее

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, а также географическое расположение репозитория, например:

Репозиторій Ubuntu

Ниже вы увидите инструкции по добавлению репозитория и установке 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:/// — вы должны увидеть окно приветствия:

Веб-сервер

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

Откройте веб-браузер и перейдите по ссылке http:/// — теперь мы должны увидеть сводку о 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+ubuntu18.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. В нашем случае нам нужна 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

* после ввода команды система запросит пароль. Вы должны ввести пароль, который мы установили после установки 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:/// — откроется страница установки Zabbix Web.

Выберите желаемый язык установки и нажмите «Следующий шаг»

Если в списке языков нет нужного нам, установите локали:

dpkg-reconfigure locales

И перезапустите обработчик PHP, в нашем случае:

systemctl restart php7.4-fpm

Обновите страницу установки и выберите нужный язык.

В следующем окне внимательно просмотрите результаты проверки веб-сервера — справа должно быть всё в порядке. Если это не так, проверьте настройки и исправьте предупреждения и ошибки, а затем обновите страницу (F5), чтобы проверить настройки ещё раз.

Когда все результаты в порядке, нажмите «Следующий шаг»

В следующем окне мы оставляем настройки подключения к базе данных без изменений — дополнительно вводим пароль, который был установлен при создании пользователя zabbix. Затем нажимаем «Следующий шаг»:

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

Menu