Настройка сервера Zabbix 5 на CentOS 8

Обновлено и опубликовано Опубликовано:

Используемые термины: Zabbix, MariaDB, MySQL, PHP, NGINX.

В нашей статье мы рассмотрим процесс установки Zabbix версии 5 на CentOS 8 и развертывания веб-интерфейса для его управления. В качестве сервера баз данных мы будем использовать MariaDB/MySQL. Данная инструкция является обновлением инструкции по установке Zabbix 4 на CentOS 7.

Подготовка системы

Перед установкой Zabbix настрои корректное время, брандмауэр и отключим систему безопасности SELinux.

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

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

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

timedatectl set-timezone Europe/Moscow

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

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

dnf install chrony

systemctl enable chronyd --now

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 в CentOS.

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

setenforce 0

sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

* первая команда отключает SELinux для текущей загрузки сервера, вторая — перманентно.

Установка веб-сервера

Управление сервером Zabbix будет осуществляться посредством веб-интерфейса. Для этого необходимо установить и настроить веб-сервер, СУБД и PHP.

СУБД

В данному инструкции мы будем использовать сервер баз данных mariadb.

Для установки вводим:

dnf install mariadb-server

Разрешаем автозапуск сервера баз данных и запускаем mariadb:

systemctl enable mariadb --now

Задаем пароль для суперпользователя СУБД:

mysqladmin -u root password

* после ввода команды система потребует ввести пароль два раза.

Веб-сервер

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

dnf install nginx

Запускаем nginx и разрешаем его автозапуск:

systemctl enable nginx --now

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

Окно приветствия NGINX

PHP и PHP-FPM

Интерфейс zabbix разработан на PHP — наш веб-сервер должен обрабатывать скрипы, написанные на нем. На момент написания инструкции веб-интерфейс Zabbix Server работал под php версии 5.4. Если установить на CentOS PHP 7, при установке zabbix-web возникнут проблемы.

Устанавливаем php и необходимые компоненты:

dnf install php php-fpm php-mysqli

Для настройки php, открываем файл:

vi /etc/php.ini

Редактируем следующие параметры:

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

* где:

  • date.timezone — задаем временную зону для PHP.
  • max_execution_time — максимальное время работы скрипта. В данном примере, если он не успеет отработать за 300 секунд, PHP принудительно завершит его работу.
  • post_max_size — максимальный размер загружаемых данных на сервер средствами PHP.
  • max_input_time — время в секундах, за которое PHP должен разобрать входные данные GET и POST.

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

systemctl enable php-fpm --now

NGINX + PHP

Для того, чтобы NGINX обрабатывал PHP, открываем конфигурационный файл:

vi /etc/nginx/conf.d/default.conf

В разделах http - server добавляем настройку для обработки запросов php (location ~ \.php$):

http {
    ...
    server {
        listen       80 default_server;
        ...

        location ~ \.php$ {
            set $root_path /usr/share/nginx/html;
            fastcgi_pass unix:/run/php-fpm/www.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_param DOCUMENT_ROOT $root_path;
        }
    }
    ...
}

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

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

nginx -t

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

systemctl restart nginx

В домашнем каталоге NGINX создаем index.php со следующим содержимым:

vi /usr/share/nginx/html/index.php

<?php phpinfo(); ?>

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

Вывод функции phpinfo

Веб-сервер готов для работы с Zabbix Web.

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

Переходим к установке самого Zabbix сервера.

Установка

Сначала установим репозиторий последней версии Zabbix. Для этого переходим на страницу загрузки zabbix 5 для CentOS 8 и копируем ссылку на последнюю версию дистрибутива:

Копируем ссылку на последний релиз репозитория zabbix

* в моем случае это ссылка на версию 5.0-1.

Устанавливаем репозиторий командой:

dnf install https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm

Устанавливаем сервер, вводя команду:

dnf install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get

Настройка базы данных

Входим в оболочку ввода sql-команд:

mysql -uroot -p

Создаем базу данных:

> CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;

* мы создали базу zabbix. Принципиально важно, чтобы кодировка была utf8 и utf8_bin.

Создаем пользователя для подключения и работы с созданной базой:

> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'zabbixpassword';

* в данном примете мы создали пользователя zabbix с доступом к базе zabbix и паролем zabbixpassword.

Выходим из sql-оболочки:

> \q

В составе zabbix идет готовая схема для СУБД MySQL/MariaDB или postgreSQL. В нашем случае, нам нужен MySQL.

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

cd /usr/share/doc/zabbix-server-mysql

Распаковываем архив с дампом базы:

gunzip create.sql.gz

Восстанавливаем базу их дампа:

mysql -u root -p zabbix < create.sql

* после ввода команды система запросит пароль. Необходимо ввести пароль, который мы задали после установки mariadb.

Настройка zabbix

Открываем конфигурационный файл zabbix:

vi /etc/zabbix/zabbix_server.conf

Добавляем строку:

DBPassword=zabbixpassword

* мы настраиваем портал на подключение к базе с паролем zabbixpassword, который задали при создании базы для zabbix.

И проверяем следующие строки:

...
DBName=zabbix
...
DBUser=zabbix
...

* имя базы и пользователя должны быть zabbix (как мы и создали в mariadb).

Задаем владельца для каталога /etc/zabbix/web:

chown apache:apache /etc/zabbix/web

* в данном примере мы указали владельцем apache, так как именно от него по умолчанию работает php-fpm.

Запуск zabbix-server

Разрешаем автозапуск сервера мониторинга и стартуем его:

systemctl enable zabbix-server --now

Настройка nginx

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

Меняем это — открываем конфигурационный файл nginx:

vi /etc/nginx/nginx.conf

Редактируем параметры root и set $root_path:

    server {
        listen       80 default_server;
        ...
        root         /usr/share/zabbix;

        location ~ \.php$ {
            set $root_path /usr/share/zabbix;
            ...
        }

Перезапускаем nginx:

systemctl restart nginx

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

Установка через веб выполняется в несколько шагов.

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

Кликаем по ссылке Next Step для начала установки Zabbix

2. В следующем окне внимательно смотрим на результаты проверки нашего веб-сервера — справа мы должны увидеть все OK:

Результаты проверки веб-сервера для установки Zabbix Server 5

Если это не так, проверяем настройки и исправляем предупреждения и ошибки, после перезапускаем страницу F5 для повторной проверки настроек.

Когда все результаты будут OK, кликаем по Next Step:

Кликаем по Next Step для продолжения установки Zabbix

3. В следующем окне мы оставляем настройки подключения к базе как есть — дополнительно прописываем пароль, который задали при создании пользователя zabbix (в нашем примере, zabbixpassword). После нажимаем Next Step:

Настройка подключения Zabbix к базе данных mariadb

4. В следующем окне оставляем все как есть:

Вводим название сервера Zabbix

... и нажимаем Next Step.

5. В последнем окне мы проверяем настройки и кликаем Next Step.

6. Установка завершена — нажимаем Finish:

Установка Zabbix завершена

7. В открывшемся окне вводим логин Admin и пароль zabbix (по умолчанию) — откроется окно со сводной информацией по мониторингу:

Стартовая страница управления zabbix через веб

Zabbix Agent

В качестве примера установим и настроим zabbix agent на наш сервер. Так как мы уже устанавливали репозиторий, установка агента выполняется командой:

dnf install zabbix-agent

Откроем конфигурационный файл:

vi /etc/zabbix/zabbix_agentd.conf

Отредактируем следующую опцию:

Server=localhost

* в данном примере мы указываем агенту сервер Zabbix — мы может указать его имя или IP-адрес.

Разрешаем автозапуск агента и запускаем его:

systemctl enable zabbix-agent --now

Возможные проблемы

1. upstream sent too big header while reading response header from upstream

Ошибка появляется во время установки zabbix в веб-интерфейсе.

Причина: zabbix отправляет размер заголовка больше, чем Nginx может прочитать.

Решение: увеличить размер заголовка в конфигурационном файле nginx:

vi /etc/nginx/nginx.conf

    ...
    location ~ \.php$ {
        ...
        fastcgi_buffer_size 32k;
        fastcgi_buffers 4 32k;
        ...
    ...

Перезапускаем nginx:

systemctl restart nginx

2. Zabbix server is not running

Данную ошибку можно увидеть в веб-консоли управления:

Zabbix server is not running

Причина: как правило, не запущена служба сервера.

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

systemctl enable zabbix-server

Запускаем службу:

systemctl start zabbix-server

Корректность запуска можно проверить командой:

systemctl status zabbix-server

Читайте также

1. Установка и настройка Zabbix-агента на CentOS

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

3. Мониторинг репликации PostgreSQL в Zabbix

# Серверы # CentOS # Мониторинг
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет