
Установка Zabbix 5.0 LTS на CentOS 8 и RHEL 8
Zabbix — это корпоративное решение с открытым исходным кодом для мониторинга производительности и доступности сетевых серверов , устройств, приложений и баз данных. В этом руководстве подробно описана настройка полнофункционального сервера Zabbix 5.0 LTS на CentOS 8 или RHEL 8 с использованием веб-сервера Apache, PHP и базы данных MariaDB.
Шаг 1: Проверка системного времени и синхронизации.
Системы мониторинга в значительной степени полагаются на точные временные метки. Если серверные часы неточны, в логах базы данных, оповещениях и графиках временных рядов будет отображаться неверная информация. Вам следует проверить текущее время на сервере и убедиться, что синхронизация времени по сети активна.
Команда для просмотра даты и времени:
date
Рекомендуется использовать сервис Chrony для синхронизации ваших часов с глобальными сетевыми серверами времени.

Шаг 2: Войдите в систему с правами root.
Для всех настроек на системном уровне, установки пакетов и изменения служб требуются права администратора. Перед продолжением переключитесь на учетную запись root.
Команда:
su -

Шаг 3: Работа с SELinux (Security-Enhanced Linux)
SELinux добавляет в операционную систему средства контроля доступа. Если вы решите позже вручную настроить пользовательские правила, вы можете оставить его активным. Однако, чтобы предотвратить проблемы с первоначальным подключением между веб-сервером, базой данных и демоном Zabbix, вы можете переключить SELinux в разрешающий режим.
Команды:
setenforce 0
sed -i 's/^SELINUX=/SELINUX=permissive/g' /etc/selinux/config
cat /etc/selinux/config | grep SELINUX=

Шаг 4: Обновите пакеты и установите веб-сервер Apache.
Убедитесь, что все существующие пакеты системного программного обеспечения обновлены до последних стабильных версий. После обновления установите веб-сервер Apache (httpd) вместе с утилитами, такими как vim и net-tools.
Команды:
yum update -y
yum install httpd httpd-tools vim net-tools -y

Шаг 5. Установите PHP и необходимые модули
Веб-интерфейс Zabbix написан на PHP. Необходимо установить интерпретатор PHP, а также необходимые пакеты для криптографических операций, взаимодействия с базами данных, анализа XML и обработки изображений.
Команда:
yum install php php-cli php-common php-devel php-pear php-mbstring php-gd php-bcmath php-ctype php-xml php-xmlreader php-xmlwriter php-session php-gettext php-ldap -y

Шаг 6: Запуск и включение служб веб-сервера
Активируйте службу Apache и PHP FastCGI Process Manager (PHP-FPM) для обработки веб-запросов. Настройте обе службы на автоматический запуск при загрузке сервера.
Команды:
systemctl start httpd php-fpm
systemctl enable httpd
systemctl enable php-fpm

Шаг 7: Установите сервер базы данных MariaDB
MariaDB будет служить хранилищем для значений конфигурации, исторических данных, трендов и событий, собираемых Zabbix. Установите пакет сервера базы данных.
Команда:
yum install mariadb-server mariadb -y

Шаг 8. Запустите и включите MariaDB.
Запустите демон базы данных и настройте его на инициализацию при запуске системы.
Команды:
systemctl start mariadb
systemctl enable mariadb

Шаг 9: Запустите скрипт обеспечения безопасности базы данных.
Стандартная установка MariaDB небезопасна. Запустите встроенный инструмент безопасности, чтобы установить пароль для корневого пользователя базы данных, удалить тестовые базы данных, отключить удаленный доступ с правами root и удалить анонимные учетные записи пользователей.
Команда:
mysql_secure_installation
Следуйте подсказкам, введите Y для подтверждения и укажите надежный пароль для пользователя root.

Шаг 10: Создайте базу данных Zabbix и пользователя.
Войдите на локальный сервер базы данных MariaDB, используя учетные данные пользователя root, которые вы только что установили.
Команда:
mysql -u root -p
Выполните следующие команды SQL, чтобы создать выделенную базу данных UTF-8 для Zabbix, зарегистрировать локального пользователя базы данных, назначить права доступа и обновить разрешения доступа.
Команды SQL:
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'YourStrongPassword';
grant all privileges on zabbix.* to zabbix@localhost;
flush privileges;
quit;
Примечание: замените YourStrongPassword на выбранную вами надежную фразу.

Шаг 11: Добавьте официальный репозиторий Zabbix.
Пакеты Zabbix не включены в стандартные репозитории RHEL или CentOS. Установите официальный репозиторий Zabbix 5.0 LTS, чтобы загружать пакеты непосредственно от разработчиков.
Команды:
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
yum clean all

Шаг 12: Установите пакеты Zabbix Server, Agent и Web.
Загрузите и установите основной серверный демон Zabbix, настроенный для работы с MySQL/MariaDB, код веб-приложения, файлы интеграции с Apache и агент Zabbix.
Команда:
yum install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent -y

Шаг 13: Определение правил SELinux для Zabbix
Если вы решили оставить SELinux активным, установите инструменты, необходимые для создания пользовательских модулей политик безопасности.
Команда:
yum install policycoreutils checkpolicy setroubleshoot-server -y
Создайте каталог для компиляции пользовательских политик:
mkdir -p ~/zabbix-selinux
cd ~/zabbix-selinux
Создайте файл с именем zabbix_server_add.te с помощью текстового редактора и вставьте в него следующие правила :
module zabbix_server_add 1.1;
require {
type zabbix_var_run_t;
type tmp_t;
type zabbix_t;
class sock_file { create unlink write };
class unix_stream_socket connectto;
class process setrlimit;
class capability dac_override;
}
allow zabbix_t self:process setrlimit;
allow zabbix_t self:unix_stream_socket connectto;
allow zabbix_t tmp_t:sock_file { create unlink write };
allow zabbix_t zabbix_var_run_t:sock_file { create unlink write };
allow zabbix_t self:capability dac_override;
Скомпилируйте и загрузите модуль политик:
checkmodule -M -m -o zabbix_server_add.mod zabbix_server_add.te
semodule_package -m zabbix_server_add.mod -o zabbix_server_add.pp
semodule -i zabbix_server_add.pp
Предоставьте Apache и Zabbix права на установление сетевых соединений:
setsebool -P httpd_can_network_connect 1
setsebool -P httpd_can_connect_zabbix 1
setsebool -P zabbix_can_network on

Шаг 14: Заполнение схемы базы данных Zabbix.
База данных, созданная на шаге 10, пуста. Импортируйте исходную структуру, таблицы и схему данных по умолчанию, предоставленные пакетом Zabbix, в базу данных Zabbix.
Команда:
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Вам будет предложено ввести пароль к базе данных, который вы создали для пользователя Zabbix.

Шаг 15: Настройка подключения к базе данных на сервере Zabbix.
Отредактируйте конфигурационный файл сервера Zabbix, чтобы указать демону, как подключаться к MariaDB.
Команда:
vi /etc/zabbix/zabbix_server.conf
Найдите параметры базы данных в файле, раскомментируйте их при необходимости и настройте следующим образом:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=YourStrongPassword
Сохраните и закройте файл.

Шаг 16: Настройка часового пояса и параметров PHP
Настройте параметры часового пояса специально для сессий Zabbix PHP.
Команда для открытия конфигурации:
vi /etc/php-fpm.d/zabbix.conf
Найдите строку с указанием часового пояса, удалите точку с запятой в начале и введите ваше региональное местоположение:
php_value[date.timezone] = America/New_York
Далее, отрегулируйте ограничения в глобальном файле php.ini:
Команда:
vi /etc/php.ini
Проверьте или измените параметры в соответствии со значениями, указанными ниже:
date.timezone = America/New_York
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_execution_time = 300
max_input_time = 300
session.auto_start = 0
Сохраните и закройте файл, затем перезапустите httpd и php-fpm, чтобы применить новые настройки:
systemctl restart httpd php-fpm

Шаг 17: Запуск и включение служб Zabbix
Запустите сервер Zabbix и демоны агента, затем включите их автоматический запуск при загрузке системы.
Команды:
systemctl restart zabbix-server zabbix-agent
systemctl enable zabbix-server zabbix-agent

Шаг 18: Откройте порты в системном брандмауэре.
Откройте веб-порты (80 для HTTP и 443 для HTTPS), а также коммуникационные порты, используемые сервером Zabbix (10051) и агентом Zabbix (10050).
Команды:
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --permanent --zone=public --add-port=10051/tcp
firewall-cmd --permanent --zone=public --add-port=10050/tcp
firewall-cmd --reload

Шаг 19: Запуск мастера веб-интерфейса
Откройте веб-браузер на своем компьютере и перейдите по следующему адресу:
http://server_ip_address/zabbix
Замените server_ip_address на IP-адрес вашего сервера. Следуйте инструкциям на экране:
Убедитесь, что все необходимые компоненты отмечены как "ОК".
Введите параметры подключения к базе данных, включая пароль пользователя.
Укажите необязательное имя сервера.
Ознакомьтесь с сводкой конфигурации установки.
Нажмите «Готово».

Шаг 20: Откройте панель управления
Система перенаправит вас на экран входа в систему.

Учетные данные администратора по умолчанию:
Имя пользователя: Администратор
Пароль: Zabbix
После входа в систему сразу же перейдите в настройки пользователя и измените пароль администратора по умолчанию, чтобы защитить портал.

