Zabbix прокси — это процесс, способный собирать данные мониторинга с одного или нескольких наблюдаемых устройств и отправлять эту информацию Zabbix серверу; по сути, прокси работает от имени сервера. Все собранные данные помещаются в локальный буфер и затем отправляются Zabbix серверу, которому принадлежит этот прокси.
Развёртывание прокси не обязательно, но может быть очень полезно для распределения нагрузки одиночного Zabbix сервера. Если только прокси собирают данные, то обработка данных на сервере не так сильно нагружает CPU и I/O диска.
Zabbix прокси — идеальное решение для централизованного мониторинга удалённых объектов, филиалов и сетей, где отсутствуют локальные администраторы.
Для Zabbix прокси требуется отдельная база данных.
Zabbix прокси поддерживает следующие базы данных: SQLite, MySQL и PostgreSQL. Вы можете использовать Oracle на свой собственный риск; при этом возможны определённые ограничения — например, в значениях, возвращаемых правилами низкоуровневого обнаружения.
Смотрите также: Использование прокси в распределённой среде
Zabbix прокси работает как демон. Его можно запустить, выполнив:
Эта команда будет работать на большинстве систем GNU/Linux. На других системах вам, возможно, потребуется выполнить:
Аналогично, для остановки/перезапуска/просмотра состояния Zabbix прокси, используйте следующие команды:
Если приведённые ранее команды не работают, вам необходимо запустить прокси вручную. Найдите путь к бинарному файлу zabbix_proxy и выполните:
С Zabbix прокси можно использовать следующие параметры командной строки:
-c --config <файл> путь к файлу конфигурации
-f --foreground запуск Zabbix прокси без перехода в фоновый режим
-R --runtime-control <опция> выполнение административных функций
-T --test-config проверка файла конфигурации и выход
-h --help вывод этого сообщения помощи
-V --version вывод номера версии
Примеры запуска Zabbix прокси с параметрами командой строки:
Опции управления работой:
Опция | Описание | Цель |
---|---|---|
config_cache_reload | Перезагрузка кэша конфигурации. Игнорируется, если кэш уже загружается в данный момент. Активный Zabbix прокси подключится к Zabbix серверу и запросит данные конфигурации. Пассивный Zabbix прокси запросит данные конфигурации от Zabbix сервера, когда в следующий раз сервер подключится к прокси. |
|
diaginfo[=<цель>] | Сбор диагностической информации в файл журнала прокси. | historycache — статистика кэша истории preprocessing — статистика менеджера предобработки locks — список мьютексов (пустой на системах BSD) |
snmp_cache_reload | Перезагрузка кэша SNMP, очистка свойств SNMP (engine time, engine boots, engine id, учётных данных) по всем узлам сети. | |
housekeeper_execute | Запуск процедуры очистки базы данных. Игнорируется, если процедура очистки выполняется в данный момент. | |
log_level_increase[=<цель>] | Увеличение уровня журналирования; действует на все процессы, если цель не указана. Не поддерживается на системах BSD. |
тип процесса — Все процессы указанного типа (например: poller) Смотрите все типы процессов прокси. тип процесса,N — Тип процесса и его номер (например: poller,3) pid — Идентификатор процесса (от 1 до 65535). В случае значений PID больше 65535 укажите цель в виде «тип процесса,N». |
log_level_decrease[=<цель>] | Уменьшение уровня журналирования; действует на все процессы, если цель не указана. Не поддерживается на системах BSD. |
|
prof_enable[=<цель>] | Активировать профилирование. Действует на все процессы, если цель не указана. Профилирование предоставляет подробности обо всех блокировках/мьютексах по имени функции. |
тип процесса — Все процессы указанного типа (например: history syncer) Смотрите все типы процессов прокси. тип процесса,N — Тип процесса и номер (например: history syncer,1) pid — Идентификатор процесса (от 1 to 65535). Для идентификаторов, превышающих значение 65535, указывайте цель как «тип процесса,N». scope — можно указать rwlock , mutex , processing вместе с типом процесса и номером (например: history syncer,1,processing) или со всеми процессами конкретного типа (например: history syncer,rwlock) |
prof_disable[=<цель>] | Деактивировать профилирование. Действует на все процессы, если цель не указана. |
тип процесса — Все процессы указанного типа (например: history syncer) Смотрите все типы процессов прокси. тип процесса,N — Тип процесса и номер (например: history syncer,1) pid — Идентификатор процесса (от 1 to 65535). Для идентификаторов, превышающих значение 65535, указывайте цель как «тип процесса,N». |
Пример использования опции управления работой для перезагрузки кэша конфигурации прокси:
Примеры использования опции управления работой для сбора диагностической информации:
# Сбор всей доступной диагностической информации в файл журнала прокси:
zabbix_proxy -R diaginfo
# Сбор статистики кэша истории в файл журнала прокси:
zabbix_proxy -R diaginfo=historycache
Пример использования опции управления работой для перезагрузки кэша SNMP:
Пример использования опции управления работой для вызова выполнения очистки базы данных:
Примеры использования опции управления работой для изменения уровня журналирования:
# Увеличение уровня журналирования у всех процессов:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase
# Увеличение уровня журналирования у процесса второго поллера:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase=poller,2
# Увеличение уровня журналирования у процесса с PID 1234:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase=1234
# Уменьшение уровня журналирования у всех процессов http поллер:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_decrease="http poller"
Zabbix прокси спроектирован для запуска от непривилегированного пользователя (non-root). Он будет работать от любого непривилегированного пользователя, от которого был запущен. Таким образом, вы можете запускать прокси от имени любого непривилегированного пользователя, без каких либо последствий.
Если вы попытаетесь запустить его от имени «root», прокси сразу переключится на пользователя «zabbix», который должен присутствовать в вашей системе. Единственный способ запустить прокси от пользователя «root» — соответствующим образом отредактировать параметр «AllowRoot» в файле конфигурации прокси.
Смотрите опции файла конфигурации для получения подробной информации по настройке zabbix_proxy.
agent poller
— асинхронный процесс поллера для пассивных проверок с рабочим потоком (with a worker thread)availability manager
— процесс для обновления доступности узлов сетиconfiguration syncer
— процесс управления кэшем данных конфигурации в оперативной памятиdata sender
— процесс отправки данных с проксиdiscovery manager
— процесс менеджера для обнаружения устройствdiscovery worker
— процесс для выполнения задач обнаружения от discovery manager-аhistory syncer
— процесс, который записывает историю в БДhousekeeper
— процесс удаления устаревших данных историиhttp agent poller
— процесс асинхронного поллера для проверок HTTP с рабочим потокомhttp poller
— поллер веб-мониторингаicmp pinger
— поллер проверок icmppingipmi manager
— менеджер IPMI поллеровipmi poller
— поллер для проверок через IPMIjava poller
— поллер для Java проверокodbc poller
— поллер для ODBC проверокpoller
— обычный поллер для пассивных проверокpreprocessing manager
— менеджер задач предобработки, выполняемых рабочими потокамиpreprocessing worker
— рабочий поток предобработки данныхself-monitoring
— процесс сбора внутренней статистики сервераsnmp poller
— процесс асинхронного поллера для проверок SNMP с рабочим потоком (только элементы данных walk[OID]
и get[OID]
)snmp trapper
— траппер сбора/обработки SNMP траповtask manager
— процесс для удалённого выполнения задач, которые запрашиваются другими компонентами (например, функционал закрытия проблемы, подтверждения проблемы, принудительной проверки значения элемента данных, удалённой команды)trapper
— процесс-траппер для активных проверок, трапов, и взаимодействия с проксиunreachable poller
— поллер недоступных устройствvmware collector
— сборщик данных VMware, ответственный за сбор данных от служб VMwareМожно воспользоваться файлом журнала прокси для выявления этих типов процессов.
Различные типы процессов Zabbix прокси можно контролировать, используя внутренний элемент данных zabbix[process,<тип>,<режим>,<состояние>].
Zabbix прокси запускается на тех же поддерживаемых платформах, что и Zabbix сервер.
Буфер памяти позволяет хранить новые данные (значения элементов данных, сетевое обнаружение, авторегистрацию узлов сети) в буфере и выгружать на сервер Zabbix без обращения к базе данных. Буфер памяти был введён для прокси, начиная с версии Zabbix 7.0.
В инсталляциях до версии Zabbix 7.0 собранные данные сохранялись в базе данных перед выгрузкой на сервер Zabbix. Для этих инсталляций такое поведение остаётся поведением по умолчанию после обновления до Zabbix версии 7.0.
Для оптимизации производительности рекомендуется настроить использование буфера памяти на прокси. Это возможно путём изменения значения ProxyBufferMode с «disk» (жёстко запрограммированное значение по умолчанию для существующих инсталляций) на «hybrid» (рекомендуется) или «memory». Также необходимо установить размер буфера памяти (параметр ProxyMemoryBufferSize).
В гибридном режиме (hybrid) буфер защищён от потери данных путём сброса неотправленных данных в базу данных в случаях, если прокси-сервер остановлен, буфер заполнен или данные слишком старые. Когда все значения были сброшены в базу данных, прокси возвращается к использованию буфера памяти.
В режиме «memory» будет использоваться буфер памяти, однако защита от потери данных отсутствует. Если прокси остановлен или память переполнится, неотправленные данные будут утеряны.
Гибридный режим (ProxyBufferMode=hybrid) применяется ко всем новым инсталляциям, начиная с версии Zabbix 7.0.
Дополнительные параметры, такие как ProxyMemoryBufferSize и ProxyMemoryBufferAge, определяют размер буфера памяти и максимальный возраст данных в буфере соответственно.
Обратите внимание, что при конфликтующих настройках прокси-сервер выдаст сообщение об ошибке и не запустится, например, если:
Обратите внимание, что серверу требуется локаль UTF-8, чтобы некоторые текстовые элементы данных интерпретировались корректно. Большинство современных Unix-подобных систем уже имеют локаль UTF-8 по умолчанию; тем не менее, есть некоторые системы, где это необходимо указывать вручную.