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

RU

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