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

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

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

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

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

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

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

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

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

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

1
2
3
sudo dnf install chrony
systemctl enable chronyd
systemctl start chronyd

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

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

1
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 вводим две команды:

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

Установка MySQL 8.4

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

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

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

1
sudo dnf module enable mysql:8.4

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

1
sudo dnf install mysql-server

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

1
2
sudo systemctl start mysqld
sudo systemctl enable mysqld

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

1
mysql

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

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

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

1
FLUSH PRIVILEGES;

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

1
quit;

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

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

1
sudo systemctl stop mysqld

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

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

1
skip-grant-tables

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

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

1
sudo systemctl start mysqld

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

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

1
mysql

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

1
use mysql;

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

1
FLUSH PRIVILEGES;

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

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

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

1
FLUSH PRIVILEGES;

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

1
sudo systemctl restart mysqld

Веб-сервер

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

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

1
sudo dnf install epel-release

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

1
sudo dnf install nginx

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

1
2
systemctl start nginx
systemctl enable nginx

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

PHP и PHP-FPM

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

1
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 и редактируем его

1
2
3
4
5
date.timezone = "Europe/Moscow"
max_execution_time = 300
post_max_size = 16M
max_input_time = 300
max_input_vars = 10000

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

1
2
systemctl enable php-fpm
systemctl start php-fpm

NGINX + PHP

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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:

1
nginx -t

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

1
systemctl restart nginx

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

1
cd /usr/share/nginx/html

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

1
<?php phpinfo(); ?>

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

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

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

1
sudo dnf config-manager --set-disabled epel

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

1
2
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

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

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

1
2
3
4
5
6
7
# 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

1
max_allowed_packet  = 500M

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

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

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

1
2
3
4
# mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;

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

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

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

1
systemctl enable zabbix-server

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

1
systemctl start zabbix-server

Настройка nginx

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

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

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

на

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

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

1
systemctl restart nginx

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

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

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

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

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

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

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

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

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

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

Micro
Author: Micro

///

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