Настройка zabbix proxy centos 7

Обновлено: 04.07.2024

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

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

Перед установкой Zabbix выполняем подготовительные процедуры.

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

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

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

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

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

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

yum install chrony

systemctl enable chronyd

systemctl start chronyd

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

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

3. SELinux

В данной инструкции выполняется установка Zabbix на сервере с отключенным SELinux. Если есть желание его настроить, читаем статью Настройка SELinux в CentOS.

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

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

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

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

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

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

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

yum install mariadb mariadb-server

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

systemctl enable mariadb

systemctl start mariadb

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

mysqladmin -u root password

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

Веб-сервер

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

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

yum install epel-release

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

yum install nginx

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

systemctl enable nginx

systemctl start nginx

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

* в вашем случае, данная страница может иметь другой вид.

PHP и PHP-FPM

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

Для CentOS 7 максимально возможная версия для установки Zabbix с веб-интерфейсом — 4.2. Обратите на это внимание.

Для Zabbix версии 4.2, требуется PHP версии 5. Данная версия устанавливается в CentOS 7 из коробки.

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

yum install php php-fpm php-mysql php-pear php-cgi php-common php-ldap php-mbstring php-snmp php-gd php-xml php-gettext php-bcmath

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

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

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

systemctl enable php-fpm

systemctl start php-fpm

NGINX + PHP

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

И приводим его к виду:

server listen 80 default_server;
server_name _;
set $root_path /usr/share/nginx/html;

location / index index.php;
>

\.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:

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

systemctl restart nginx

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

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

Сводная информация по PHP

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

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

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

Установка

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

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

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

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

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

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

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

* мы создали базу zabbix.

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

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

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

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

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

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

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

mysql -u root -p zabbix < create.sql

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

Настройка zabbix

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

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

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

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

Запуск zabbix-server

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

systemctl enable zabbix-server

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

systemctl start zabbix-server

Настройка nginx

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

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

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

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

systemctl restart nginx

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

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

В следующем окне внимательно смотрим на результаты проверки нашего веб-сервера — справа мы должны увидеть все OK. Если это не так, проверяем настройки и исправляем предупреждения и ошибки, после перезапускаем страницу F5 для повторной проверки настроек.

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

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

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

Вводим пароль для пользователя Zabbix

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

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

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

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

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

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

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

Сводная информация по мониторингу Zabbix

Zabbix Agent

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

yum install zabbix-agent

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

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

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

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

systemctl enable zabbix-agent

systemctl start zabbix-agent

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

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

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

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

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

\.php$ .
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
.
.

Для чего же нужен Zabbix Proxy? Его можно использовать в нескольких случаях - если у вас разные сети, которые не знают друг о друге и у них есть доступ в интернет, тогда можно получить данные через прокси, отправив их на сервер, или чтобы разгрузить основной сервер - мониторя разными проксями разные сегменты сети. Серверу гораздо сложнее получить данные от 200 узлов сети самостоятельно, опросив каждый узел, чем получить уже готовые данные от прокси, которые он соберет за него.

Если у вас еще нет операционной системы centos, ты вы можете прочитать, как установить и настроить CentOS 7.

Так же Вы можете прочитать статьи по настройке системы мониторинга zabbix: Установка Zabbix 3.2 на Ubuntu Server 16.04 и Установка zabbix 3.2 на freebsd 10

Для чего же нужен Zabbix Proxy? Его можно использовать в нескольких случаях - если у вас разные сети, которые не знают друг о друге и у них есть доступ в интернет, тогда можно получить данные через прокси, отправив их на сервер, или чтобы разгрузить основной сервер - мониторя разными проксями разные сегменты сети. Серверу гораздо сложнее получить данные от 200 узлов сети самостоятельно, опросив каждый узел, чем получить уже готовые данные от прокси, которые он соберет за него.

Если у вас еще нет операционной системы centos, ты вы можете прочитать, как установить и настроить CentOS 7.

Так же Вы можете прочитать статьи по настройке системы мониторинга zabbix: Установка Zabbix 3.2 на Ubuntu Server 16.04 и Установка zabbix 3.2 на freebsd 10

Установка Zabbix Proxy на CentOS 7


Для начала нам необходимо подключить репозиторий в нашу систему. Для Zabbix Proxy нужна своя база данных, которая не такая, как на основном сервере. Для этого можно использовать и MySQL, но обычно при мониторинге до 1000VPS (значений в секунду) хватает и SQLite3, который мы и будем использовать: Далее установим zabbix proxy и zabbix agent. Агент будет не лишним для мониторинга нашего прокси:
Теперь там необходимо распаковать файл с базой данных для заббикс прокси:
ОБРАТИТЕ ВНИМАНИЕ НА ПУТЬ К АРХИВУ С БАЗОЙ, У ВАС ОН МОЖЕТ ОТЛИЧАТЬСЯ ОТ ВЕРСИИ, КОТОРУЮ ВЫ СКАЧАЕТЕ

Осталось создать папку для базы данных и саму базу:
Установим владельцем базы данных zabbix:
Вот и все! Установка zabbix proxy была выполнена. Как видите это совсем не сложно. Нам осталось настроить его и начать собирать им данные. Рассмотрим это в следующем пункте.

Настройка Zabbix Proxy на CentOS 7

Переходим к настройке только что установленного нами прокси. Открываем файл конфигурации zabbix proxy для настройки:

Изменим самые важные параметры:
Добавляем proxy в автозагрузку и запускаем:

Прокси запустился, но он еще ничего не выполняет и не мониторит. Для того, чтобы он начала работать, нам необходимо зайти в основной сервер и настроить там Proxy. Для этого идем в web панель zabbix, переходим в раздел Administration -> Proxies (Администрирование -> Прокси) и справа нажимаем на кнопку Create proxy (Создать прокси):

zabbix proxy

Заполняете необходимые поля. В данном случае обязательное только одно поле Proxy name.

Имя прокси - Имя прокси сервера, должно соответствовать параметру hostname в файле конфигурации прокси Режим прокси - Режим работы: Активный — прокси всегда сам обращается к основному серверу и отправляет данные, Пассивный — команды на получение данных каждый раз инициирует основной сервер Узлы сети - Хосты, которые будут мониториться через этот прокси. Если у Вас есть хосты, которые Вы уже готовы мониторить через прокси, переносим их в левый столбец Описание - Произвольное описание сервера


Ниже приведу пример того, как у меня работает Proxy:

Как видите, у меня мониторится 258 узлов и VPS 561, справляется на базе SQLite3 без проблем

Теперь давайте добавим в мониторинг сам же Zabbix Proxy.

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

Не забывайте указывать именно Ваши IP и Hostname

Теперь сохраняем файл и запускаем Агента:

Теперь добавим его в панель Zabbix. Для этого создаем новый узел сети Настройка -> Узлы сети -> Создать узел сети

Вводим локальный IP вашего zabbix proxy и выбираем "Наблюдение через прокси" Ваше имя хоста zabbix proxy (в моем случае он называется "zproxy3-pro")


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

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

Zabbix может быть развернут для мониторинга на основе агентов и без агентов. Zabbix агент имеет небольшую площадь и может работать на различных платформах, включая Linux, UNIX, macOS и Windows.

Вы должны войти в систему как пользователь с доступом sudo, чтобы иметь возможность устанавливать пакеты.

Создание базы данных MySQL

Zabbix поддерживает MySQL / MariaDB и PostgreSQL в качестве серверов баз данных. В этом уроке мы будем использовать MariaDB в качестве базы данных.

Если на вашем сервере CentOS не установлена ​​MariaDB, вы можете выполнить установку, следуя этим инструкциям .

Войдите в оболочку MySQL, введя следующую команду:

В оболочке MySQL выполните следующую команду SQL, чтобы создать новую базу данных :

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

Убедитесь, что вы изменили change-with-strong-password с надежным паролем.

Когда закончите, выйдите из консоли mysql, набрав:

Установка Zabbix на CentOS

На момент написания этой статьи последняя стабильная версия Zabbix была версией 4.0. Пакеты Zabbix, доступные в репозиториях CentOS, устарели, поэтому мы будем использовать официальный репозиторий Zabbix .

1. Установка Zabbix

Загрузите последний пакет rpm для репозитория Zabbix с помощью следующей команды wget :

После загрузки файла добавьте репозиторий Zabbix в систему CentOS 7, введя:

Установите сервер Zabbix, веб-интерфейс с поддержкой баз данных MySQL и пакеты агентов Zabbix:

Если Apache и PHP еще не установлены на вашем сервере, команда выше установит их.

2. Настройка PHP для веб-интерфейса Zabbix

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

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

После этого сохраните файл конфигурации и перезапустите службу Apache, чтобы изменения вступили в силу:

3. Настройка базы данных MySQL для Zabbix сервера

Установочный пакет Zabbix предоставляет файл дампа, который содержит исходную схему и данные для Zabbix-сервера с MySQL.

При появлении запроса введите пароль пользователя, который вы создали ранее. В случае успеха не выводится.

Затем откройте файл конфигурации Zabbix в вашем редакторе:

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

Сохраните и закройте файл.

Перезапустите Zabbix сервер и службы агента и включите их при загрузке системы:

Проверьте состояние Zabbix сервера:

Вывод должен показать active (running) :

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

Веб-интерфейс Zabbix написан на PHP и позволяет нам настраивать сервер, просматривать собранные данные и добавлять хосты, которые мы хотим отслеживать.

Прежде чем начать использовать веб-интерфейс, нам нужно его установить.

Откройте ваш любимый браузер и введите доменное имя вашего сервера или публичный IP-адрес, а затем /zabbix :


Далее вы увидите следующую информационную страницу, где перечислены все предварительные условия PHP, необходимые для запуска веб-интерфейса Zabbix. Все значения в этой таблице следует прокрутить вниз, чтобы убедиться, что все настроено правильно. После подтверждения нажмите, Next step чтобы продолжить.



На следующем экране мастер установки попросит вас ввести данные для подключения к вашей базе данных. Введите данные о пользователе и базе данных MySQL, которые вы ранее создали.



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

Нажмите, Next step чтобы продолжить.



На следующем экране вам будет показана сводная информация перед установкой.



Нажмите Next step и после завершения установки вы попадете на страницу, сообщающую, что веб-интерфейс Zabbix установлен. Для доступа к странице входа в Zabbix нажмите на Finish кнопку.



Пользователь по умолчанию - «Администратор», а пароль - «Zabbix». Введите имя пользователя и пароль и нажмите на Log in кнопку.



После входа вы будете перенаправлены на панель администрирования Zabbix.

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

Добавление нового хоста на Zabbix сервер

Процедура добавления нового хоста для мониторинга на Zabbix сервере включает в себя два этапа.

Сначала вам нужно установить Zabbix агент на удаленном хосте, а затем добавить хост на Zabbix сервер через веб-интерфейс.

Установка агента Zabbix

В этом руководстве предполагается, что хост-машина также использует CentOS 7.

То же, что и при установке Zabbix-сервера, выполните следующие команды для включения репозитория Zabbix:

Установите пакет агента Zabbix:

Zabbix поддерживает два метода шифрования связи сервер-клиент: общий ключ (PSK) и шифрование на основе сертификатов. В этом руководстве мы будем использовать метод предварительных общих ключей (PSK) для защиты соединения между сервером и агентом.

Используйте следующую команду, чтобы сгенерировать предварительный общий ключ и сохранить его в файл:

Ключ PSK будет выглядеть примерно так:

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

Найдите Server IP-адрес и измените его со значения по умолчанию на IP-адрес вашего Zabbix сервера:

Затем найдите TSLConnect параметр, раскомментируйте его и установите для него psk :

Найдите TLSAccept опцию, раскомментируйте ее и установите psk :

Затем найдите TLSPSKIdentity параметр, раскомментируйте его и установите для него PSK 001 значение должно быть уникальной строкой:

Наконец, найдите TLSPSKFile параметр, раскомментируйте его и установите так, чтобы он указывал на ранее созданный предварительный общий ключ:

После этого сохраните и закройте файл.

Запустите службу агента Zabbix и настройте ее запуск во время загрузки с помощью:

Затем вам нужно добавить правило брандмауэра, которое разрешает трафик с вашего Zabbix сервера через порт TCP 10050 .

Предполагая, что вы используете FirewallD для управления брандмауэром и хотите разрешить доступ с 192.168.121.70 IP-адреса, вы выполните следующую команду:

Создать новый хост

Теперь, когда агент на удаленном хосте, который вы хотите отслеживать, установлен и настроен, следующим шагом будет регистрация хоста на Zabbix сервере.

Войдите в веб-интерфейс Zabbix Server как пользователь с правами администратора:

Оказавшись внутри, в верхней панели навигации нажмите на Configuration , а затем Hosts

Затем нажмите синюю Create host кнопку в верхнем правом углу экрана, и откроется страница конфигурации хоста:



Введите имя хоста и IP-адрес удаленного хост-компьютера, который вы хотите отслеживать. Добавьте хост в одну или несколько групп, выбрав группу из списка, или введите несуществующее имя группы, чтобы создать новую. Linux Servers Группа является хорошим выбором.



После этого нажмите на Templates вкладку. Выберите Template OS Linux и нажмите на Add ссылку, чтобы добавить шаблон на хост.

Далее нажмите на Encryption вкладку. Выберите PSK для обоих Connections to host и Connections from host .

Задайте PSK identity значение PSK 001 , значение TLSPSKIdentity параметра агента Zabbix, который вы настроили на предыдущем шаге.

В поле PSK value добавьте ключ, сгенерированный вами для агента Zabbix, который хранится в /etc/zabbix/zabbix_agentd.psk файле.



Наконец, чтобы добавить хост, нажмите на синий Добавить button .

Вывод

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

Теперь вы должны проверить документацию Zabbix и узнать больше о том, как настроить и использовать Zabbix.

Доступны пакеты с базами данных MySQL и PostgreSQL и поддержкой веб-серверов Apache и Nginx.

Пакеты агента и прокси доступны также и для RHEL 6 и RHEL 5.

Официальный репозиторий Zabbix предоставляет также fping, iksemel, libssh2 пакеты. Эти пакеты находятся в папке non-supported.

Сведения об установке

Если вы хотите использовать Zabbix как root, смотрите Запуск агента как root.

Импорт данных с Timescale DB

С TimescaleDB,​ в дополнение к импорту данных из PostgreSQL, используйте также:

​TimescaleDB поддерживается только для Zabbix сервера

Предварительные условия установки веб-интерфейса

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

К сведению: Nginx для RHEL доступен в Red Hat Software Collections и в EPEL. Если вы пользуетесь Red Hat Software Collections, достаточно установить пакет zabbix-nginx-conf-scl

PHP 7.2

Начиная с Zabbix 5.0 для веб-интерфейса требуется PHP версии 7.2 или выше.

К сведению: RHEL/CentOS 7 предоставляют только PHP 5.4, поэтому для установки веб-интерфейса Zabbix на Red Hat Enterprise Linux/​CentOS 7 потребуются дополнительные шаги.

Настройка SELinux

При включенном статусе SELinux в принудительном режиме, выполните следующие команды, чтобы предоставить веб-интерфейсу Zabbix разрешение на соединение с сервером:

RHEL до версии 7:

После настройки веб-интерфейса и SELinux, перезапустите веб-сервер Apache:

Установка прокси

После добавления нужного репозитория, вы можете установить Zabbix прокси, выполнив:

Создание базы данных

Создайте отдельную базу данных для Zabbix прокси.

Zabbix сервер и Zabbix прокси не могут использовать одну и ту же базу данных. Если они установлены на одном хосте, имя базы данных для прокси должно отличаться.

Импорт данных

Импортируйте изначальную схему:

Для прокси с PostgreSQL (или SQLite):

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

В DBName для Zabbix proxy используйте базу данных, отличающуюся от базы данных Zabbix сервера.

В DBPassword используйте пароль базы данных Zabbix для MySQL; в случае PostgreSQL - пароль пользователь для PostgreSQL.

Используйте DBHost= с PostgreSQL. Возможно, вы захотите сохранить значение по умолчанию DBHost=localhost (или IP адрес), но в этом случае PostgreSQL будет использовать сетевой сокет при подключении к Zabbix. Смотрите раздел Настройка SELinux для получения более подробных сведений.

Запуск процесса Zabbix прокси

Чтобы включить автоматический запуск прокси при старте системы:

Настройка веб-интерфейса

У Zabbix прокси отсутствует веб-интерфейс; он общается только с Zabbix сервером.

Установка Java gateway

Установка Java gateway необходима только, если планируется мониторить JMX приложения. Java gateway легковесный и не требует наличия базы данных.

После добавления нужного репозитория, установите Zabbix Java gateway, выполнив команду:

Перейдите к разделу настройка для получения дополнительной информации о настройке и запуске Java gateway.

Установка debuginfo пакетов

Пакеты debuginfo в настоящий момент доступны для RHEL/CentOS версий 7, 6 and 5.

Чтобы включить debuginfo репозиторий, измените /etc/yum.repos.d/zabbix.repo файл. Измените enabled=0 на enabled=1 у zabbix-debuginfo репозитория.

Это позволит вам установить zabbix-debuginfo пакеты.

Эти отдельные пакеты содержат отладочную информацию обо всех бинарных компонентах Zabbix.

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