2 Авторегистрация активных агентов

Обзор

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

Авторегистрация может произойти, когда ранее неизвестный активный агент запрашивает проверки.

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

Авторегистрация активного агента также поддерживает мониторинг добавленных узлов сети с пассивными проверками. Когда активный агент запрашивает проверки, при условии, что параметры конфигурации «ListenIP» или «ListenPort» определенны в файле конфигурации, они отправляются на сервер. (если указано несколько IP-адресов, на сервер отправляется первый из них.)

Сервер при добавлении нового автоматически зарегистрированного узла сети использует полученные IP адрес и порт для настройки агента. Если значение IP-адреса не получено, используется тот, который использовался для входящего соединения. Если значение порта не получено, используется 10050.

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

Авторегистрация выполняется повторно:

  • если изменяется информация метаданных узла сети:
    • из-за изменения HostMetadata и перезапуска агента
    • из-за изменения значения, возвращаемого HostMetadataItem
  • для созданных вручную узлов сети с отсутствующими метаданными
  • если узел сети изменён вручную для мониторинга другим Zabbix прокси
  • если авторегистрация для того же узла сети приходит с нового Zabbix прокси

Настройка

Задайте сервер

Убедитесь, что у вас в файле конфигурации агента - zabbix_agentd.conf - указан Zabbix сервер:

 ServerActive=10.0.0.1

Если вы не указали параметр Hostname в zabbix_agentd.conf, то в качестве имени узла сети будет использоваться системное имя узла сети, на котором находится агент. Например, системное имя узла сети в Linux можно получить, выполнив команду 'hostname'.

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

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

Действие по авторегистрации активного агента

Когда сервер получает запрос на авторегистрацию от агента, он вызывает действие. Для авторегистрации агента должно быть настроено действие с источником события «Авторегистрация».

Настройка сетевого обнаружения для автоматической регистрации активных агентов не требуется.

Во веб-интерфейсе Zabbix перейдите к Настройка → Действия, выберите Авторегистрация в качестве источника события и нажмите Создать действие:

  • На вкладке «Действие» дайте название вашему действию.
  • По желанию укажите условия. В условиях вы можете выполнить сопоставление подстроки или регулярного выражения для имени узла сети/метаданных узла сети. Если вы собираетесь использовать условие «Метаданные узлов сети», см. следующий раздел.
  • На вкладке «Операции» добавьте соответствующие операции, такие как «Добавить узел сети», «Добавить в группу узлов сети» (например, Обнаруженные узлы сети), «Присоединить к шаблону» и т. д.

Если узлы сети, которые будут автоматически регистрироваться, вероятно, будут поддерживаться только для активного мониторинга (например, узлы сети, защищенные брандмауэром от вашего сервера Zabbix), то вы можете создать отдельный шаблон для присоединения наподобие Template_Linux-active.

Созданные узлы сети добавляются в группу Discovered hosts (по умолчанию, настраивается в АдминистрированиеОбщиеДругое). Если вы хотите, чтобы узлы сети были добавлены в другую группу, добавьте Удалить из группы узлов сети (с указанием «Discovered hosts»), а также добавьте Добавить в группу узлов сети (с указанием другой группы узлов сети), поскольку узел сети должен принадлежать к группе.

Безопасная авторегистрация

Безопасный вариант авторегистрации возможен путём настройки аутентификации на основе общего ключа (PSK-based) при использовании шифрованных соединений.

Уровень шифрования задаётся глобально в разделе АдминистрированиеОбщиеАвторегистрация*. Можно выбрать варианты без шифрования, шифрование TLS с использованием аутентификации PSK или оба варианта (так что какие-то узлы сети могут регистрироваться без шифрования, а какие-то - с шифрованием).

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

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

Использование DNS в качестве интерфейса по умолчанию

Параметры конфигурации HostInterface и HostInterfaceItem позволяют указать пользовательское значение для интерфейса узла сети во время авторегистрации.

Более конкретно, они полезны, если узел сети должен быть автоматически зарегистрирован с DNS-именем в качестве интерфейса агента по умолчанию, а не с его IP-адресом. В этом случае DNS-имя должно быть указано или возвращено как значение параметра HostInterface или HostInterfaceItem. Заметьте, что при изменении значения одного из двух параметров обновляется автоматически зарегистрированный интерфейс узла сети. Так можно обновить интерфейс по умолчанию на другое DNS-имя или использовать вместо него IP-адрес. Однако, чтобы изменения вступили в силу, агент необходимо перезапустить.

Если параметры HostInterface или HostInterfaceItem не настроены, параметр listen_dns будет раскрываться из IP адреса. Если такое раскрытие настроено некорректно, это может нарушить авторегистрацию из-за неправильного имени узла сети (hostname).

Использование метаданных узла сети

Когда агент отправляет запрос на авторегистрацию на сервер, он отправляет свое имя хоста (hostname). В некоторых случаях (например, облачные узлы Amazon) имени хоста недостаточно, чтобы сервер Zabbix различал обнаруженные узлы сети. Для отправки другой информации от агента на сервер могут быть дополнительно использованы метаданные узла сети.

Метаданные узла настраиваются в файле конфигурации агента - zabbix_agentd.conf. Существует 2 способа указать метаданные узла сети в файле конфигурации:

HostMetadata
       HostMetadataItem

Смотрите описание опций по ссылке выше.

Попытка авторегистрации происходит каждый раз, когда активный агент отправляет на сервер запрос на обновление активных проверок. Задержка между запросами указана в параметре агента RefreshActiveChecks. Первый запрос отправляется сразу после перезапуска агента.

Пример 1

Использование метаданных узла сети для различения хостов Linux и Windows.

Допустим, вы хотите, чтобы узлы сети автоматически регистрировались сервером Zabbix. В вашей сети у вас есть активные агенты Zabbix (см. раздел «Конфигурация» выше). Также в вашей сети есть хосты Windows и хосты Linux, а в вашем веб-интерфейсе Zabbix вам доступны шаблоны «Linux by Zabbix agent» и «Windows by Zabbix agent». Поэтому вы хотите, чтобы при регистрации узла сети к регистрируемому узлу был применён соответствующий шаблон Linux/Windows. По умолчанию, на сервер при авторегистрации отправляется только имя узла сети, чего может быть недостаточно. Чтобы убедиться, что к узлу сети применяется правильный шаблон, вы должны использовать метаданные узла сети.

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

Первое, что надо сделать, - это настроить веб-интерфейс. Создайте 2 действия. Первое действие:

  • Имя: Авторегистрация узлов сети Linux
  • Условия: Метаданные узлов сети содержит Linux
  • Операции: Присоединить к шаблонам: Linux

В данном случае можно опустить операцию «Добавить узел сети». Присоединение шаблона требует, чтобы узел сети уже был добавлен, поэтому сервер сделает это автоматически.

Второе действие:

  • Имя: Авторегистрация узлов сети Windows
  • Условия: Метаданные узлов сети содержит Windows
  • Операции: Присоединить к шаблонам: Windows

Настройка агента

Теперь вам нужно настроить агентов. В файлы конфигурации агентов добавьте следующую строку:

HostMetadataItem=system.uname

Таким способом вы обеспечите, что метаданные узлов сети будут содержать строку «Linux» или «Windows» в зависимости от хоста, на котором работает агент. Пример метаданных узла сети в этом случае:

Linux: Linux server3 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux
       Windows: Windows WIN-0PXGGSTYNHO 6.0.6001 Windows Server 2008 Service Pack 1 Intel IA-32

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

Пример 2

Шаг 1

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

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

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

  • Имя: Действие авторегистрации Linux хостов
  • Условия:
    • Тип вычисления: И
    • Условие (А): Метаданные узлов сети содержат //Linux//
    • Условие (В): Метаданные узлов сети содержат //21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae//
  • Операции:
    • Отправить сообщение пользователям: Admin через все способы оповещения
    • Добавить в группы узлов сети: Linux сервера
    • Присоединить к шаблонам: Linux

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

Настройка агента

В файл конфигурации агента добавьте следующую строку:

HostMetadata=Linux    21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

где «Linux» - это платформа, а остаток строки - трудноугадываемый секретный текст.

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

Шаг 2

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

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

В веб-интерфейсе обновите действие:

  • Имя: Действие авторегистрации Linux хостов
  • Условия:
    • Тип вычисления: И
    • Условие (А): Метаданные узлов сети содержат Linux
    • Условие (В): Метаданные узлов сети содержат 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
  • Операции:
    • Отправить сообщение пользователям: Admin через все способы оповещения
    • Добавить в группы узлов сети: Linux сервера
    • Присоединить к шаблонам: Linux
    • Присоединить к шаблонам: MySQL by Zabbix Agent

Настройка агента

Обновите следующую строчку в конфигурационном файле агента:

HostMetadata=MySQL on Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

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