Установка сервера мониторинга Zabbix 7.2 на CentOS 9

Сервер Zabbix является средством сбора и анализа информации о состоянии оборудования в сети. В данной статье мы рассмотрим процесс его установки и развертывания веб-интерфейса для его управления. В качестве сервера баз данных мы будем использовать MySQL 8.4.

Подготовка сервера

Будем считать что у вас уже есть готовый сервер с установленной на него OS Linux CentOS 9 Stream. Перед установкой Zabbix выполняем некоторые подготовительные процедуры.

1. Правильное время

Для получения актуальной информации необходимо, чтобы на сервере было правильное время.

Для этого сначала задаем правильную временную зону:

\cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

* в данном примере задается московское время.

Затем устанавливаем и запускаем сервис синхронизации времени:

sudo dnf install chrony
systemctl enable chronyd
systemctl start chronyd

2. Настройка брандмауэра

Для работы сервера, открываем следующие порты:

firewall-cmd --permanent --add-port={80/tcp,443/tcp,10051/tcp,10050/tcp,10050/udp,10051/udp}
firewall-cmd --reload

* где 80 — порт для http запросов (веб-интерфейс); 443 — для https запросов (веб-интерфейс); 10050 — порты для получения информации от zabbix агентов.

3. SELinux

В данной инструкции выполняется установка Zabbix на сервере с отключенным SELinux.

Для отключения SELinux вводим две команды:

setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

Установка MySQL 8.4

Вам необходимо загрузить пакет репозитория MySQL из официального репозитория MySQL. Используйте следующие команды для загрузки и установки пакета репозитория:

sudo dnf install -y http://repo.mysql.com/mysql84-community-release-el9-1.noarch.rpm

После установки пакета репозитория включите репозиторий MySQL 8.4 с помощью следующей команды:

sudo dnf module enable mysql:8.4

Теперь вы можете установить MySQL 8.4 с помощью следующей команды:

sudo dnf install mysql-server

Запустите службу MySQL

sudo systemctl start mysqld
sudo systemctl enable mysqld

Задаем root пароль

mysql

Выполните следующий запрос, заменив слово «пароль» на нужное вам значение:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'пароль';

Примените изменения:

FLUSH PRIVILEGES;

Выйдите из консоли MySQL командой:

quit;

Восстановление пароля

Всякое бывает и поэтому тоже напишу это здесь, может кому и понадобится, останавливаем MySQL следующей командой:

sudo systemctl stop mysqld

Отредактируйте файл /etc/my.cnf, чтобы запустить службу без проверки прав доступа.

В секцию [mysqld] добавьте следующую строку:

skip-grant-tables

Должно получиться примерно так:

Сохраните изменения и запустите MySQL сервер

sudo systemctl start mysqld

Снова откройте файл /etc/my.cnf и удалите добавленную строку. Сохраните изменения.

Подключитесь к MySQL как root без пароля:

mysql

Выберите активную БД:

use mysql;

Перезагрузите таблицы привилегий:

FLUSH PRIVILEGES;

Обновите пароль:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ваш_новый_пароль';

Примените изменения:

FLUSH PRIVILEGES;

Выйдите из MySQL и перезагрузите службу в обычном режиме:

sudo systemctl restart mysqld

Веб-сервер

Для наших целей будем использовать веб-сервер NGINX.

Для его установки необходимо добавить новый репозиторий:

sudo dnf install epel-release

Теперь вводим команду:

sudo dnf install nginx

Запускаем nginx и добавляем его автозапуск:

systemctl start nginx
systemctl enable nginx

Открываем веб-браузер и переходим по ссылке http://<IP-адрес сервера>/ — мы должны увидеть окно приветствия:

PHP и PHP-FPM

Интерфейс zabbix разработан на PHP — наш веб-сервер должен обрабатывать скрипы, написанные на нем. Очень важно установить подходящую версию PHP. Мы будем устанавливать PHP 8.0

sudo dnf install php php-fpm php-mysqlnd php-pear php-cgi php-common php-ldap php-mbstring php-snmp php-gd php-xml php-gettext php-bcmath

Для настройки php, открываем файл /etc/php.ini и редактируем его

date.timezone = "Europe/Moscow"
max_execution_time = 300
post_max_size = 16M
max_input_time = 300
max_input_vars = 10000

Запустим php-fpm:

systemctl enable php-fpm
systemctl start php-fpm

NGINX + PHP

Для того, чтобы NGINX обрабатывал PHP, открываем конфигурационный файл /etc/nginx/nginx.conf и приводим блок server его к виду

server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        set $root_path /usr/share/nginx/html;
        root $root_path;

        location / {
                index index.php;
        }

        location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_buffer_size 32k;
                fastcgi_buffers 4 32k;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
                include fastcgi_params;
                fastcgi_param DOCUMENT_ROOT $root_path;
                fastcgi_read_timeout 300;
        }
}

где /usr/share/nginx/html — корневой путь хранения скриптов; 9000 — порт php-fpm.

Проверяем настройки nginx:

nginx -t

И перезагружаем его:

systemctl restart nginx

Заходим в каталог хранения настроенного сайта:

cd /usr/share/nginx/html

Создаем файл index.php со следующим содержимым:

<?php phpinfo(); ?>

Открываем веб-браузер и переходим по ссылке http://<IP-адрес сервера>/ — теперь мы должны увидеть сводную информацию по PHP и его настройкам:

Установка и настройка сервера Zabbix

Временно отключаем репозиторий EPEL

sudo dnf config-manager --set-disabled epel

Подключаем репозиторий Zabbix

rpm -Uvh https://repo.zabbix.com/zabbix/7.2/release/centos/9/noarch/zabbix-release-latest-7.2.el9.noarch.rpm
sudo dnf clean all

Устанавливаем Zabbix server, frontend и agent

sudo dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent

Заходим в MySQL и создаем базу данных и пользователя zabbix

# mysql -uroot -p
password
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'ваш_пароль';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;

Перед импортом данных необходимо добавить некоторые значения в файл /etc/my.cnf в секцию [mysqld] это необходимо для того, чтобы на следующем шаге не возникало ошибок. Значение подбирается опытным путем, можете начать со 100M

max_allowed_packet	= 500M

Далее импортируем структуру базы данных, вам будет предложено ввести пароль для пользователя zabbix который вы создали ранее

zcat /usr/share/zabbix/sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

Далее необходимо отключить опцию log_bin_trust_function_creators после импорта

# mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;

Откройте и отредактируйте файл /etc/zabbix/zabbix_server.conf

DBPassword=ваш_пароль

Разрешаем автозапуск сервера

systemctl enable zabbix-server

После запускаем сам сервер zabbix:

systemctl start zabbix-server

Настройка nginx

При установке zabbix-web файлы портала копируются в каталог /usr/share/zabbix/ui. Наш веб-сервер работает с каталогом /usr/share/nginx/html. Необходимо изменить.

Снова открываем конфигурационный файл /etc/nginx/nginx.conf и меняем

set $root_path /usr/share/nginx/html;

на

set $root_path /usr/share/zabbix/ui;

Перезапускаем NGINX

systemctl restart nginx

Установка портала для управления Zabbix

Открываем браузер и переходим по адресу http://<IP-адрес сервера>/ — откроется страница установки Zabbix Web.

Обратите внимание, что установка английского языка 
(en_US) также включит формат времени/даты США во внешнем интерфейсе.

Убедитесь, что выполнены все обязательные предварительные условия Zabbix.

Введите данные для подключения к базе данных. База данных Zabbix должна быть уже создана.

Ввод имени сервера Zabbix необязателен, однако если вы его введете, оно будет отображаться в строке меню и заголовках страниц. Установите часовой пояс и тему по умолчанию для интерфейса.

Просмотрите список настроек

Завершите установку.

Авторизоваться

Интерфейс Zabbix готов! Имя пользователя по умолчанию Admin , пароль zabbix .

Micro
Author: Micro

///

Поделиться в социальных сетях
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии