4. Прокси
Обзор
Прокси Zabbix — это процесс, который может собирать данные мониторинга с одного или нескольких контролируемых устройств и отправлять информацию на сервер Zabbix, фактически работая от имени сервера. Все собранные данные буферизуются локально, а затем передаются на сервер Zabbix, к которому относится прокси.
Развертывание прокси необязательно, но может быть очень полезным для распределения нагрузки одного сервера Zabbix. Если данные собирают только прокси, обработка на сервере требует меньше ресурсов CPU и операций ввода-вывода диска.
Прокси Zabbix — это идеальное решение для централизованного мониторинга удаленных площадок, филиалов и сетей без локальных администраторов.
Для прокси Zabbix требуется отдельная база данных.
Обратите внимание, что поддерживаемые для прокси Zabbix базы данных — SQLite, MySQL и PostgreSQL.
См. также: Использование прокси в распределенной среде
Запущенный прокси
Если установлен из пакета
Zabbix прокси работает как демон. Его можно запустить, выполнив:
systemctl start zabbix-proxy
Эта команда будет работать на большинстве систем GNU/Linux. На других системах вам, возможно, потребуется выполнить:
/etc/init.d/zabbix-proxy start
Аналогично, для остановки/перезапуска/просмотра состояния Zabbix прокси, используйте следующие команды:
systemctl stop zabbix-proxy
systemctl restart zabbix-proxy
systemctl status zabbix-proxy
Запуск вручную
Если вышеописанное не сработало, необходимо запустить его вручную.
Найдите путь к бинарному файлу zabbix_proxy и выполните:
zabbix_proxy
С Zabbix proxy можно использовать следующие параметры командной строки:
-c --config <file> Путь к файлу конфигурации
-f --foreground Запустить Zabbix proxy в переднем плане
-R --runtime-control <option> Выполнить административные функции
-T --test-config Проверить файл конфигурации и выйти
-h --help Показать эту справку
-V --version Показать номер версии
Примеры запуска Zabbix proxy с параметрами командной строки:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf
zabbix_proxy --help
zabbix_proxy -V
Управление во время выполнения
Параметры управления во время выполнения:
| Option | Description | Target |
|---|---|---|
config_cache_reload |
Перезагрузить кэш конфигурации. Игнорируется, если кэш в данный момент загружается. Активный прокси Zabbix подключится к серверу Zabbix и запросит данные конфигурации. Пассивный прокси Zabbix запросит данные конфигурации у сервера Zabbix при следующем подключении сервера к прокси. |
|
history_cache_clear=target |
Очистить кэш истории для элемента данных, указанного по его ID. Затрагивает все значения элемента данных, кроме первого и последнего значения. |
target - ID элемента данных. |
diaginfo[=<section>] |
Собрать диагностическую информацию в файле журнала прокси. | historycache - статистика кэша истории;preprocessing - статистика менеджера предварительной обработки;locks - список мьютексов (пусто в системах BSD). |
snmp_cache_reload |
Перезагрузить кэш SNMP - очистить свойства SNMP engine (engine time, engine boots, engine id, credentials) для всех узлов сети. Используйте для принудительной глобальной очистки кэша при устранении проблем SNMP. | |
housekeeper_execute |
Запустить процедуру housekeeping. Игнорируется, если процедура housekeeping уже выполняется. | |
log_level_increase[=<target>] |
Увеличить уровень журналирования, влияет на все процессы, если target не указан. Не поддерживается в системах BSD. |
process type - все процессы указанного типа (например, poller).См. все типы процессов прокси. process type,N - тип процесса и номер (например, poller,3).pid - идентификатор процесса ( 1 to 65535). Для больших значений укажите target как 'process type,N'. |
log_level_decrease[=<target>] |
Уменьшить уровень журналирования, влияет на все процессы, если target не указан. Не поддерживается в системах BSD. |
|
prof_enable[=<target>] |
Включить профилирование. Влияет на все процессы, если target не указан. Включенное профилирование предоставляет сведения обо всех rwlocks/mutexes по имени функции. |
process type - все процессы указанного типа (например, history syncer).См. все типы процессов прокси. process type,N - тип процесса и номер (например, history syncer,1)pid - идентификатор процесса ( 1 to 65535). Для больших значений укажите target как 'process type,N'.scope - rwlock, mutex, processing можно использовать с типом процесса и номером (например, history syncer,1,processing) или со всеми процессами типа (например, history syncer,rwlock). |
prof_disable[=<target>] |
Отключить профилирование. Влияет на все процессы, если target не указан. |
process type - все процессы указанного типа (например, history syncer).См. все типы процессов прокси. process type,N - тип процесса и номер (например, history syncer,1).pid - идентификатор процесса ( 1 to 65535). Для больших значений укажите target как 'process type,N'. |
Пример использования управления во время выполнения для перезагрузки кэша конфигурации прокси:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R config_cache_reload
Пример использования управления во время выполнения для очистки кэша истории для элемента данных:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R history_cache_clear=42243
Примеры использования управления во время выполнения для сбора диагностической информации:
# Собрать всю доступную диагностическую информацию в файле журнала прокси:
zabbix_proxy -R diaginfo
# Собрать статистику кэша истории в файле журнала прокси:
zabbix_proxy -R diaginfo=historycache
Пример использования управления во время выполнения для перезагрузки кэша SNMP:
zabbix_proxy -R snmp_cache_reload
Когда интерфейс SNMPv3 обновляется через веб-интерфейс Zabbix, Zabbix в большинстве случаев автоматически перезагружает новые учетные данные SNMPv3 для этого интерфейса; используйте -R snmp_cache_reload только если опрос по-прежнему не выполняется после изменения учетных данных (например, из-за несоответствий engineBoots/engineID или устройств, не соответствующих RFC), либо когда требуется принудительно очистить глобальный кэш SNMP для устранения неполадок.
Пример использования управления во время выполнения для запуска housekeeper:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R housekeeper_execute
Примеры использования управления во время выполнения для изменения уровня журналирования:
# Увеличить уровень журналирования всех процессов:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase
# Увеличить уровень журналирования второго процесса poller:
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 poller:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_decrease="http poller"
Пользователь процесса
Прокси Zabbix предназначен для запуска от имени пользователя, не являющегося root. Он будет работать от имени того пользователя, не являющегося root, под которым был запущен. Таким образом, вы можете запускать прокси от имени любого пользователя, не являющегося root, без каких-либо проблем.
Если вы попытаетесь запустить его от имени root, он переключится на жестко заданного пользователя zabbix, который должен присутствовать в вашей системе.
Вы можете запускать прокси от имени root только в том случае, если соответствующим образом измените параметр AllowRoot в файле конфигурации прокси.
Файл конфигурации
См. параметры файла конфигурации для получения подробной информации о настройке zabbix_proxy.
Типы процессов и потоки прокси
agent poller- асинхронный процесс опроса для пассивных проверок с рабочим потоком;availability manager- процесс для обновления доступности узлов сети;browser poller- опросчик для проверок элементов данных браузера;configuration syncer- процесс для управления кэшем конфигурационных данных в памяти;data sender- отправитель данных прокси;discovery manager- процесс-менеджер для обнаружения устройств;discovery worker- процесс для обработки задач обнаружения от discovery manager;history syncer- запись истории в БД;housekeeper- процесс для удаления устаревшей истории элементов данных;http agent poller- асинхронный процесс опроса для HTTP-проверок с рабочим потоком;http poller- опросчик для мониторинга веба;icmp pinger- опросчик для проверок icmpping;internal poller- опросчик для внутренних проверок;ipmi manager- менеджер опросчиков IPMI;ipmi poller- опросчик для проверок IPMI;java poller- опросчик для проверок Java;odbc poller- опросчик для проверок ODBC;poller- обычный опросчик для пассивных проверок;preprocessing manager- менеджер задач предварительной обработки с потоками рабочих предварительной обработки;preprocessing worker- поток для предварительной обработки данных;self-monitoring- процесс для сбора внутренней статистики сервера;snmp poller- асинхронный процесс опроса для проверок SNMP с рабочим потоком (только элементы данныхwalk[OID]иget[OID]);snmp trapper- trapper для SNMP traps;task manager- процесс для удаленного выполнения задач, запрошенных другими компонентами (например, закрытие проблемы, подтверждение проблемы, проверка значения элемента данных сейчас, функциональность удаленной команды);trapper- trapper для активных проверок, traps и связи с прокси;unreachable poller- опросчик для недоступных устройств;vmware collector- сборщик данных VMware, отвечающий за сбор данных из служб VMware.
Файл журнала прокси можно использовать для наблюдения за этими типами процессов.
Начиная с Zabbix 7.4.6, файл журнала прокси создается с правами на чтение и запись только для владельца файла. Кроме того, файл доступен для чтения группе владельца. Все остальные права запрещены.
Различные типы процессов прокси Zabbix можно отслеживать с помощью внутреннего zabbix[process,<type>,<mode>,<state>] элемента данных.
Статистика транзакций history syncer
Заголовок процесса history syncer отображает подробную статистику по транзакциям history syncer.
205276 ? S 0:00 zabbix_proxy: history syncer #1 [processed 1 values in 0.001179 (0.001167,0.000000) sec, idle 1 sec]
205277 ? S 0:00 zabbix_proxy: history syncer #2 [processed 0 values in 0.000022 (0.000000,0.000000) sec, idle 1 sec]
Временные значения в processed...in N (<timings>) sec означают:
- Время, затраченное на запись значений элементов данных в базу данных.
- Время, затраченное на обновление данных элемента данных (состояние, ошибки).
Поддерживаемые платформы
Прокси Zabbix работает на том же списке поддерживаемых платформ, что и сервер Zabbix.
Буфер памяти
Буфер памяти позволяет сохранять новые данные (значения элементов данных, сетевое обнаружение, авторегистрацию узлов сети) в буфере и загружать их на сервер Zabbix без обращения к базе данных. Буфер памяти был введен для прокси в Zabbix 7.0.
В установках до Zabbix 7.0 собранные данные сохранялись в базе данных перед загрузкой на сервер Zabbix. Для таких установок это остается поведением по умолчанию после обновления до Zabbix 7.0.
Для оптимальной производительности рекомендуется настроить использование буфера памяти на прокси.
Это можно сделать, изменив значение ProxyBufferMode с disk (жестко заданное значение по умолчанию для существующих установок) на hybrid (рекомендуется) или memory.
Также необходимо задать размер буфера памяти (параметр ProxyMemoryBufferSize).
В гибридном режиме буфер защищен от потери данных: несохраненные данные записываются в базу данных, если прокси остановлен, буфер переполнен или данные слишком старые. Когда все значения будут записаны в базу данных, прокси снова начнет использовать буфер памяти.
В режиме памяти буфер памяти будет использоваться, однако защиты от потери данных нет. Если прокси остановлен или память переполнится, несохраненные данные будут отброшены.
Гибридный режим (ProxyBufferMode=hybrid) применяется ко всем новым установкам начиная с Zabbix 7.0.
Дополнительные параметры, такие как ProxyMemoryBufferSize и ProxyMemoryBufferAge, определяют размер буфера памяти и максимальный возраст данных в буфере соответственно.
Обратите внимание, что при конфликтующей конфигурации прокси выведет ошибку и не запустится, например, если:
ProxyBufferModeустановлен вhybridилиmemory, аProxyMemoryBufferSizeравен0.ProxyBufferModeустановлен вhybridилиmemory, аProxyLocalBufferне равен0.
Региональные настройки (локаль)
Обратите внимание, что прокси серверу требуется локаль UTF-8, чтобы некоторые текстовые элементы данных интерпретировались корректно. Большинство современных Unix-подобных систем уже имеют локаль UTF-8 по умолчанию; тем не менее, есть некоторые системы, где это необходимо указывать вручную.
Расчет очередей во время обслуживания
Прокси Zabbix не учитывает периоды обслуживания; подробности см. в разделе Расчет очередей во время обслуживания.