для чего нужен zabbix proxy
Zabbix Documentation 5.4
Sidebar
Table of Contents
1 Прокси
Обзор
Zabbix прокси может собирать данные о производительности и доступности от имени Zabbix сервера. Таким образом, прокси может взять на себя некоторую часть нагрузки по сбору данных и разгрузить Zabbix сервер.
Кроме того, использование прокси это самый простой способ осуществления централизованного и распределенного мониторинга, когда все агенты и прокси отчитываются перед одним Zabbix сервером и все данные собираются в централизованном порядке.
Zabbix прокси можно использовать для:
Прокси требует только одно TCP соединение к Zabbix серверу. Таким образом, будет проще настроить обход брандмауэра, вам потребуется настроить только одно правило в брандмауэре.
Zabbix прокси должен использовать отдельную базу данных. Если указать базу данных Zabbix сервера, то конфигурация будет испорчена.
Все данные собранные прокси, перед отправкой их серверу, хранятся локально. Таким образом, данные не теряются из-за временных проблем со связью с сервером. Параметры ProxyLocalBuffer и ProxyOfflineBuffer в файле конфигурации прокси управляют как долго данные будут храниться локально.
Может случиться, что прокси получающий изменения конфигурации из базы Zabbix сервера, будет иметь более свежую конфигурацию, чем сам Zabbix сервер, чья конфигурация может обновляться реже согласно значению параметра CacheUpdateFrequency. В результате, прокси начнет сбор данных и будет отправлять эти данные Zabbix серверу, который будет их игнорировать.
Функция | Поддержка прокси | |
---|---|---|
Элементы данных | ||
Проверки через Zabbix агент | Да | |
Проверки через Zabbix агент (активный) | Да 1 | |
Простые проверки | Да | |
Элементы данных траппера | Да | |
SNMP проверки | Да | |
SNMP трапы | Да | |
IPMI проверки | Да | |
JMX проверки | Да | |
Мониторинг файлов журналов | Да | |
Внутренние проверки | Да | |
Проверки через SSH | Да | |
Проверки через Telnet | Да | |
Внешние проверки | Да | |
Зависимые элементы данных | Да 2 | |
Встроенный веб-мониторинг | Да | |
Обнаружение сети | Да | |
Низкоуровневое обнаружение | Да | |
Удаленные команды | Да | |
Вычисление триггеров | Нет | |
Обработка событий | Нет | |
Корреляция событий | Нет | |
Отправка оповещений | Нет | |
Предобработка значений элементов данных | Нет |
[1] Чтобы убедиться, что агент запрашивает активные проверки у прокси (а не у сервера), IP адрес прокси должен быть указан в параметре ServerActive файла конфигурации агента.
[2] Предобработка значений элементов данных на стороне Zabbix сервера необходима для извлечения требуемого значения с данных мастер элемента данных.
Настройка
Если у вас есть установленный и настроенный прокси, то самое время настроить его в веб-интерфейсе Zabbix.
Добавление прокси
Для настройки прокси в веб-интерфейсе Zabbix:
Вкладка Шифрование позволяет вам требовать шифрованных соединений с прокси.
Настройка узлов сети
Вы можете указать какие конкретно узлы сети должны наблюдаться через прокси в диалоге настройки узла сети, используя поле Наблюдение через прокси.
Массовое обновление узлов сети является еще одним способом, указать, что узлы сети должны наблюдаться через прокси.
Zabbix Documentation 5.4
Sidebar
Table of Contents
3 Прокси
Обзор
Развертывание прокси не обязательно, но может быть очень полезно для распределения нагрузки одиночного Zabbix сервера. Если только прокси собирают данные, то обработка этих данных на сервере не так сильно нагружает CPU и I/O диска.
Для Zabbix прокси требуется отдельная база данных.
Zabbix прокси поддерживает следующие базы данных SQLite, MySQL и PostgreSQL. Вы можете использовать Oracle или IBM DB2 на свой собственный риск, при этом возможны определенные ограничения, например в значениях, возвращаемых правилами низкоуровневого обнаружения.
Процесс прокси
Если установлен из пакета
Zabbix прокси работает как демон. Для запуска прокси выполните:
Эта команда будет работать на большинстве GNU/Linux системах. На других системах вам, возможно, потребуется выполнить:
Аналогично, для остановки/перезапуска/просмотра состояния, используйте следующие команды:
Запуск вручную
Если выше приведенные команды не работают, вам необходимо запустить прокси вручную. Найдите путь к бинарному файлу zabbix_proxy и выполните:
Следующие параметры командной строки могут быть использованы с Zabbix прокси:
Выполнение административных функций не поддерживается в OpenBSD и NetBSD.
Примеры запуска Zabbix прокси с параметрами командой строки:
Управление работой
Опции управления работой:
Допустимый диапазон PID изменения уровня журналирования одного процесса с 1 до 65535. На системах с большими значениями PID опция может использоваться для изменения уровня журналирования отдельных процессов.
Пример использования административных функций для перезагрузки кэша конфигурации прокси:
Пример использования административных функций для вызова выполнения очистки базы данных:
Примеры использования административных функций по изменению уровня журналирования:
Пользователь процесса
Zabbix прокси спроектирован для запуска от не привилегированного пользователя (non-root). Он будет работать от любого не привилегированного пользователя от которого был запущен. Таким образом, вы можете запускать прокси от имени любого не привилегированного пользователя, без каких-либо последствий.
Файл конфигурации
Для получения подробной информации смотрите опции файла конфигурации по настройке zabbix_proxy.
Поддерживаемые платформы
Zabbix прокси запускается на тех же поддерживаемых платформах, что и Zabbix сервер.
Региональные настройки (локаль)
Обратите внимание что сервер требует UTF-8 локаль чтобы некоторые текстовые элементы данных могли быть интерпретированы корректно. Большинство современных Unix-подобных систем имеют локаль UTF-8 установленной по умолчанию, тем не менее, есть некоторые системы где это необходимо задать вручную.
Locale
Note that the proxy requires a UTF-8 locale so that some textual items can be interpreted correctly. Most modern Unix-like systems have a UTF-8 locale as default, however, there are some systems where that may need to be set specifically.
Установка и настройка zabbix прокси на CentOS 7
Для построения распределенной системы мониторинга zabbix рекомендует использовать proxy серверы. Это штатный функционал заббикса, который позволяет регулировать нагрузку и организовывать мониторинг распределенной сетевой инфраструктуры. Подробнее об установке и настройке zabbix proxy будет рассказано ниже.
Зачем нужен Zabbix proxy
Расскажу своими словами что такое zabbix proxy и зачем он нужен. Допустим у вас есть распределенная сеть, где отдельные сегменты никак не связаны друг с другом. То есть условно, у вас 5 разных сетей с адресацией 192.168.0.0/24. Вам нужно настроить мониторинг узлов в этих сетях. Сети ничего не знаю друг о друге, у них нет прямого IP, только доступ в интернет.
В таком случае вы устанавливаете zabbix сервер на внешний ip адрес, в каждом сегменте сети настраиваете прокси, который будет собирать данные с узлов в этом сегменте и отправлять их на основной сервер мониторинга. Все управление при этом происходит на основном сервере, достаточно только один раз подключить прокси к основному серверу. Схематично подобная схема изображена в документации с официального сайта:
Если у вас полностью связаная сеть, в которой каждый узел имеет прямой доступ к серверу мониторинга, proxy сервера имеет смысл устанавливать и использовать для распределения нагрузки. 100 узлов, отправляющиие данные напрямую на сервер мониторинга, нагружают его сильнее, чем прокси, который собирает данные с этих 100 узлов и отправляяет их на основной сервер.
Вроде понятно и доступно объяснил. Приступим теперь к установке zabbix proxy. Устанавливать будем на сервер под управлением CentOS 7. Если у вас его еще нет, то читайте об установке centos 7 и его первоначальной настройке. Требования к железу зависят от нагрузки на прокси, но в общем случае они будут не высоки. Для мониторинга 20-30 узлов я использовал виртуальную машину с 512 мб оперативной памяти и 10 гб диском. Сама прокси почти ничего не хранит, отправялет данные на сервер.
В качестве основного сервера мониторинга у нас будет выступать Zabbix 3. Если вы его еще не настроили, то рекомендую мою подробную статью с видео по установке и настройке zabbix. Дальше я буду считать, что у вас уже настроен сервер мониторинга, к которму мы будем подключать proxy и добавлять новые узлы из подключенного сегмента сети.
Установка Zabbix proxy
Перед установкой добавлю еще пару слов о работе proxy. Прокси серверу нужна отдельная локальная база данных, которая никак не связана с базой основного сервера мониторинга. Я для простоты в качестве такой базы использую sqlite. Для proxy этого вполне достаточно. Так что наша установка будет разделена на этапы:
Приступаем к установке. Подключаем репозиторий заббикса:
Устанавливаем прокси и агента. Агент, кстати, ставить не обязательно, но я обычно ставлю, чтобы мониторить сам сервер.
Распаковываем файл со схемой базы:
Создаем папку для базы данных и саму базу:
Устанавливаем владельцем базы заббикс:
На этом установка заббикс прокси закончена. Мы все подготовили, теперь ее надо правильно настроить и подключить к серверу. Займемся этим.
Настройка Zabbix proxy
Открываем файл конфигурации zabbix proxy для настройки:
Необходимо изменить несколько параметров, все остальное можно не трогать:
server | Адрес центрального сервера мониторинга |
hostname | Имя прокси сервера, которое мы будем использовать на основном сервере |
DBName | Путь к локальной базе данных |
Добавляем proxy в автозагрузку и запускаем:
Если сейчас посмотреть лог, то увидим там следующее:
Заполняете необходимые поля. В данном случае обязательное только одно поле Proxy name.
После добавление proxy на основной сервер, можно перезапустить сам прокси сервер и посмотреть лог:
Все в порядке, прокси подключился к основному серверу и забрал от него данные. При этом на основном сервере изменился статус прокси:
В качестве теста запустим на самом прокси сервере zabbix agent и подключим его к основному серверу мониторинга через proxy. Для этого открываем конфиг агента и устанавливаем следующие параметры:
Сохраняем файл, агента пока не запускаем. Идем в веб интерфейс и добавляем новый хост.
После того, как добавите новый хост на основном сервере, возвращаемся на proxy и перезапускаем его, чтобы сразу же получить настройки с основного сервера. Это делать не обязательно, через некоторое время (не знаю точно какое, любопытно было бы узнать) прокси сам заберет конфигурацию. Но мы форсируем процесс:
Теперь запускаем агент и добавляем его в автозагрузку:
Проверяем лог агента:
Все в порядке, ошибок нет. Через некоторое время данные начнут поступать на основной сервер мониторинга с помощью посредника zabbix proxy.
Заключение
Я планирую написать подробню статью на основе своего опыта построения распределенного мониторинга в очень разнородной среде. Но пока не сделал это, дам подсказку для тех, кто будет разворачивать много proxy серверов. Сделайте образ виртуальной машины и просто копируйте его на новых объектах. Достаточно будет изменить только сетевые настройки и hostname в конфигурации proxy.
Zabbix Documentation 3.0
Sidebar
Table of Contents
1 Прокси
Обзор
Zabbix прокси может собирать данные о производительности и доступности от имени Zabbix сервера. Таким образом, прокси может взять на себя некоторую часть нагрузки по сбору данных и разгрузить Zabbix сервер.
Кроме того, использование прокси это самый простой способ осуществления централизованного и распределенного мониторинга, когда все агенты и прокси отчитываются перед одним Zabbix сервером и все данные собираются в централизованном порядке.
Zabbix прокси можно использовать для:
Прокси требует только одно TCP соединение к Zabbix серверу. Таким образом, будет проще настроить обход брандмауэра, вам потребуется настроить только одно правило в брандмауэре.
Zabbix прокси должен использовать отдельную базу данных. Если указать базу данных Zabbix сервера, то конфигурация будет испорчена.
Все данные собранные прокси, перед отправкой их серверу, хранятся локально. Таким образом, данные не теряются из-за временных проблем со связью с сервером. Параметры ProxyLocalBuffer и ProxyOfflineBuffer в файле конфигурации прокси управляют как долго данные будут храниться локально.
Может случиться, что прокси получающий изменения конфигурации из базы Zabbix сервера, будет иметь более свежую конфигурацию, чем сам Zabbix сервер, чья конфигурация может обновляться реже согласно значению параметра CacheUpdateFrequency. В результате, прокси начнет сбор данных и будет отправлять эти данные Zabbix серверу, который будет их игнорировать.
Функция | Поддержка прокси | |
---|---|---|
Элементы данных | ||
Проверки через Zabbix агент | Да | |
Проверки через Zabbix агент (активный) | Да 1 | |
Простые проверки | Да | |
Элементы данных траппера | Да | |
SNMP проверки | Да | |
SNMP трапы | Да | |
IPMI проверки | Да | |
JMX проверки | Да | |
Мониторинг файлов журналов | Да | |
Внутренние проверки | Да | |
Проверки через SSH | Да | |
Проверки через Telnet | Да | |
Внешние проверки | Да | |
Встроенный веб-мониторинг | Да | |
Обнаружение сети | Да | |
Низкоуровневое обнаружение | Да | |
Вычисление триггеров | Нет | |
Обработка событий | Нет | |
Отправка оповещений | Нет | |
Удаленные команды | Нет |
[1] Чтобы убедиться, что агент запрашивает активные проверки у прокси (а не у сервера), IP адрес прокси должен быть указан в параметре ServerActive файла конфигурации агента.
Настройка
Если у вас есть установленный и настроенный прокси, то самое время настроить его в веб-интерфейсе Zabbix.
Добавление прокси
Для настройки прокси в веб-интерфейсе Zabbix:
Вкладка Шифрование позволяет вам требовать шифрованных соединений с прокси.
Настройка узлов сети
Вы можете указать какие конкретно узлы сети должны наблюдаться через прокси в диалоге настройки узла сети, используя поле Наблюдение через прокси.
Массовое обновление узлов сети является еще одним способом, указать, что узлы сети должны наблюдаться через прокси.
Установка и настройка Zabbix Proxy на CentOS 7
Если у вас еще нет операционной системы centos, ты вы можете прочитать, как установить и настроить CentOS 7.
Так же Вы можете прочитать статьи по настройке системы мониторинга zabbix: Установка Zabbix 3.2 на Ubuntu Server 16.04 и Установка zabbix 3.2 на freebsd 10
Если у вас еще нет операционной системы centos, ты вы можете прочитать, как установить и настроить CentOS 7.
Так же Вы можете прочитать статьи по настройке системы мониторинга zabbix: Установка Zabbix 3.2 на Ubuntu Server 16.04 и Установка zabbix 3.2 на freebsd 10
Установка Zabbix Proxy на CentOS 7
Осталось создать папку для базы данных и саму базу:
Установим владельцем базы данных zabbix:
Вот и все! Установка zabbix proxy была выполнена. Как видите это совсем не сложно. Нам осталось настроить его и начать собирать им данные. Рассмотрим это в следующем пункте.
Настройка Zabbix Proxy на CentOS 7
Переходим к настройке только что установленного нами прокси. Открываем файл конфигурации zabbix proxy для настройки:
Изменим самые важные параметры:
Добавляем proxy в автозагрузку и запускаем:
Заполняете необходимые поля. В данном случае обязательное только одно поле Proxy name.
Ниже приведу пример того, как у меня работает Proxy:
Как видите, у меня мониторится 258 узлов и VPS 561, справляется на базе SQLite3 без проблем
Теперь давайте добавим в мониторинг сам же Zabbix Proxy.
Для начала нам необходимо настроить и запустить агента на прокси. для этого идем в настройки агента и указываем ему IP, какой слушать и его имя хоста:
Не забывайте указывать именно Ваши IP и Hostname
Теперь сохраняем файл и запускаем Агента:
Вводим локальный IP вашего zabbix proxy и выбираем «Наблюдение через прокси» Ваше имя хоста zabbix proxy (в моем случае он называется «zproxy3-pro»)
После того, как добавите новый хост на основном сервере, он добавится к конфигурацию прокси через 60 секунд (по умолчанию, в настройках прокси можно изменить период получения конфигурации от основного сервера). Если Вы не хотите ждать, то можно перезапустить Zabbix Proxy для немедленного получения конфигурации: