Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

1 Сервер

Обзор

Zabbix сервер - центральный процесс программного обеспечения Zabbix.

Сервер выполняет опрос и отлов данных, вычисляет триггеры, отправляет оповещения пользователям. Он является центральным компонентом, которому Zabbix агенты и прокси сообщают данные о доступности и целостности систем. Сервер может самостоятельно удаленно проверять сетевые службы (такие как веб-сервера и почтовые сервера), используя простые проверки сервисов.

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

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

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

Запуск сервера

Если установлен из пакета

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

shell> service zabbix-server start

Эта команда будет работать на большинстве GNU/Linux системах. На других системах вам, возможно, потребуется выполнить:

shell> /etc/init.d/zabbix-server start

Аналогично, для остановки/перезапуска/просмотра состояния, используйте следующие команды:

shell> service zabbix-server stop
       shell> service zabbix-server restart
       shell> service zabbix-server status
Запуск вручную

Если приведенные ранее команды не работают, вам необходимо запустить сервер вручную. Найдите путь к бинарному файлу zabbix_server и выполните:

shell> zabbix_server

С Zabbix сервером можно использовать следующие параметры командной строки:

-c --config <файл>              путь к файлу конфигурации (по умолчанию /usr/local/etc/zabbix_server.conf)
       -f --foreground                 запуск Zabbix сервера в фоновом режиме
       -R --runtime-control <опция>   выполнение административных функций
       -h --help                       вывод этого сообщения помощи
       -V --version                    вывод номера версии

Примеры запуска Zabbix сервера с параметрами командой строки:

shell> zabbix_server -c /usr/local/etc/zabbix_server.conf
       shell> zabbix_server --help
       shell> zabbix_server -V
Управление работой

Опции управления работой:

Опция Описание Цель
config_cache_reload Перезагрузка кэша конфигурации. Игнорируется, если кэш уже загружается в текущий момент времени.
diaginfo[=<цель>] Сбор диагностической информации в файл журнала сервера. historycache - статистика кэша истории
valuecache - статистика кэша значений
preprocessing - статистика менеджера предобработки
alerting - статистика менеджера оповещений
lld - статистика LLD менеджера
locks - список мьютексов (на **BSD* системах список будет пустой)
ha_status Вывод состояния кластера высокой доступности (HA).
ha_remove_node=цель Удаление ноды кластера высокой доступности (HA) по имени ноды или ID.
Обратите внимание, что активные / резервные ноды нельзя удалять.
цель - имя или ID ноды из списка (можно получить при выполнении ha_status)
ha_set_failover_delay=задержка Задержка аварийного переключения нод в кластере высокой доступности (HA).
Поддерживаются суффиксы времени, например, 10s, 1m.
secrets_reload Перезагрузка секретов из Хранилища.
service_cache_reload Перезагрузка кэша менеджера услуг.
snmp_cache_reload Перезагрузка кэша SNMP, очистка свойств SNMP (engine time, engine boots, engine id, учетных данных) по всем узлам сети.
housekeeper_execute Запуск процедуры очистки базы данных. Игнорируется, если процедура очистки выполняется в данный момент.
trigger_housekeeper_execute Выполнение процедуры очистки базы данных от триггеров. Игнорируется, если процедура очистки от триггеров выполняется в данный момент.
log_level_increase[=<цель>] Увеличение уровня журналирования, действует на все процессы, если цель не указана.
Не поддерживается на **BSD* системах.
тип процесса - Все процессы указанного типа (например, poller)
Смотрите все типы процессов сервера.
тип процесса,N - Тип процесса и его номер (например, poller,3)
pid - Идентификатор процесса (1 до 65535). В случае значений PID больше 65535 укажите цель в виде 'тип процесса,N'.
log_level_decrease[=<цель>] Уменьшение уровня журналирования, действует на все процессы, если цель не указана.
Не поддерживается на **BSD* системах.

Пример использования административных функций для перезагрузки кэша конфигурации сервера:

shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R config_cache_reload

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

Сбор всей доступной диагностической информации в файл журнала сервера:
       shell> zabbix_server -R diaginfo
       
       Сбор статистики кэша истории в файл журнала сервера:
       shell> zabbix_server -R diaginfo=historycache

Пример использования административных функций для перезагрузки SNMP кэша:

shell> zabbix_server -R snmp_cache_reload  

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

shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R housekeeper_execute

Примеры использования административных функций по изменению уровня журналирования:

Увеличение уровня журналирования по всем процессам:
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase
       
       Увеличение уровня журналирования у второго процесса поллера:
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=poller,2
       
       Увеличение уровня журналирования у процесса с PID 1234:
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=1234
       
       Уменьшение уровня журналирования по всем http поллер процессам:
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_decrease="http poller"

Пример изменения настройки задержки аварийного переключения для HA в минимальное значение в 10 секунд:

shell> zabbix_server -R ha_set_failover_delay=10s
Пользователь процесса

Zabbix сервер спроектирован для запуска от непривилегированного пользователя (non-root). Он будет работать от любого непривилегированного пользователя от которого был запущен. Таким образом, вы можете запускать сервер от имени любого непривилегированного пользователя, без каких либо последствий.

Если вы попытаетесь запустить сервер от имени 'root', сервер сразу переключится на пользователя 'zabbix', который должен присутствовать в вашей системе. Единственный способ запустить сервер от пользователя 'root' - соответствующим образом отредактировать параметр 'AllowRoot' в файле конфигурации сервера.

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

Файл конфигурации

Смотрите опции файла конфигурации для получения подробной информации по настройке zabbix_server.

Скрипты запуска

Скрипты используются для автоматического запуска/остановки процессов Zabbix при включении/выключении системы. Скрипты располагаются в директории misc/init.d.

Типы процессов сервера

  • alert manager - менеджер задач оповещений
  • alert syncer - процесс записи оповещений в БД
  • alerter - процесс отправки оповещений
  • availability manager - процесс для обновления доступности узлов сети
  • configuration syncer - процесс управления кэшем данных конфигурации в оперативной памяти
  • discoverer - процесс обнаружения устройств
  • escalator - процесс эскалации действий
  • history poller - процесс обработки вычисляемых, агрегированных и внутренних проверок, требующих подключения к базе данных
  • history syncer - процесс, который записывает историю в БД
  • housekeeper - процесс удаления устаревших данных истории
  • http poller - поллер веб-мониторинга
  • icmp pinger - поллер проверок icmpping
  • ipmi manager - менеджер IPMI поллеров
  • ipmi poller - поллер для проверок через IPMI
  • java poller - поллер для Java проверок
  • lld manager - процесс менеджера задач низкоуровневого обнаружения
  • lld worker - "worker" процесс для задач низкоуровневого обнаружения
  • odbc poller - поллер для ODBC проверок
  • poller - обычный поллер для пассивных проверок
  • preprocessing manager - менеджер задач предобработки
  • preprocessing worker - процесс преобработки данных
  • problem housekeeper - процесс удаления проблем по удаленных триггерам
  • proxy poller - поллер для пассивных прокси
  • report manager- процесс менеджера задач генерации отчетов по расписанию
  • report writer - процесс генерации отчетов по расписанию
  • self-monitoring - процесс сбора внутренней статистики сервера
  • snmp trapper - траппер сбора/обработки SNMP трапов
  • task manager - процесс для удаленного выполнения задач, которые запрашиваются другими компонентами (например, функционал закрытия проблемы, подтверждения проблемы, принудительной проверки значения элемента данных, удаленной команды)
  • timer - процесс обработки обслуживаний
  • trapper - процесс-улавливатель для активных проверок, трапов, и прокси
  • unreachable poller - поллер недоступных устройств
  • vmware collector - коллектор данных VMware, ответственный за сбор данных со служб Vmware

Можно воспользоваться файлом журнала сервера для выявления этих типов процессов.

Различные типы процессов Zabbix сервера можно мониторить используя внутренний элемент данных zabbix[процесс,<тип>,<режим>,<состояние>].

Поддерживаемые платформы

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

Zabbix сервер протестирован на следующих платформах:

  • Linux
  • Solaris
  • AIX
  • HP-UX
  • Mac OS X
  • FreeBSD
  • OpenBSD
  • NetBSD
  • SCO Open Server
  • Tru64/OSF1

Также Zabbix может работать и на других Unix-подобных операционных системах.

Региональные настройки (локаль)

Обратите внимание, что серверу требуется UTF-8 локаль, чтобы некоторые текстовые элементы данных интерпретировались корректно. Большинство современных Unix-подобных систем уже имеют локаль UTF-8 по умолчанию, тем не менее, есть некоторые системы где это необходимо указывать вручную.