2 Авторегистрация активных агентов
Обзор
Можно разрешить авторегистрацию активного Zabbix агент, после чего сервер сможет начать их мониторинг. Таким образом новые узлы сети можно добавлять для мониторинга без их ручной настройки на сервере.
Авторегистрация может происходить, когда ранее неизвестный активный агент запрашивает проверки.
Эта возможность может быть очень полезна для автоматического мониторинга новых узлов Cloud. Как только у вас появляется новый узел в Cloud, Zabbix автоматически начнет сбор данных о производительности и доступности узла сети.
Авторегистрация активного агент также поддерживает мониторинг добавленных узлов сети с пассивными проверками.
Когда активный агент запрашивает проверки, при условии, что в файле конфигурации определены параметры ListenIP или ListenPort, они также отправляются на сервер.
Если указано несколько IP-адресов, на сервер отправляется первый из них.
При добавлении нового авторегистрируемого узла сети сервер использует полученные IP-адрес и порт для настройки агент.
Если значение IP-адреса не получено, используется адрес, примененный для входящего соединения. Если значение порта не получено, используется 10050.
Можно указать, что узел сети должен авторегистрироваться с именем DNS в качестве интерфейса агент по умолчанию.
Авторегистрация выполняется повторно:
- если изменяется информация метаданных узла сети:
- из-за изменения HostMetadata и перезапуска агент
- из-за изменения значения, возвращаемого HostMetadataItem
- для созданных вручную узлов сети, у которых отсутствуют метаданные
- если узел сети вручную изменен так, чтобы мониториться другим Zabbix прокси
- если авторегистрация для того же узла сети поступает от нового Zabbix прокси
Интервал heartbeat авторегистрации активного агент для Zabbix сервер и Zabbix прокси составляет 120 секунд. Поэтому, если обнаруженный узел сети удален, авторегистрация будет выполнена повторно через 120 секунд.
Настройка
Укажите сервер
Убедитесь, что вы указали сервер Zabbix в файле конфигурации агента — zabbix_agentd.conf:
ServerActive=10.0.0.1
Если вы явно не определили Hostname в zabbix_agentd.conf, сервер будет использовать системное имя узла сети, на котором расположен агент, для именования узла сети.
Системное имя узла сети в Linux можно получить, выполнив команду hostname.
Если Hostname определен в конфигурации агента Zabbix как список узлов сети, разделенный запятыми, узлы сети будут созданы для всех перечисленных имен узлов сети.
После внесения любых изменений в файл конфигурации перезапустите агент.
Действие для авторегистрации активного агента
Когда сервер получает запрос на авторегистрацию от агента, он вызывает действие. Для авторегистрации агента должно быть настроено действие с источником событий "Autoregistration".
Настройка обнаружения сети не требуется для того, чтобы активные агенты проходили авторегистрацию.
В веб-интерфейсе Zabbix перейдите в Оповещения → Действия, выберите Действия авторегистрации и нажмите Создать действие:
- На вкладке Действие задайте имя вашему действию
- При необходимости укажите условия. В условиях можно использовать поиск по подстроке или сопоставление по регулярному выражению для имени узла сети/метаданных узла сети. Если вы собираетесь использовать условие "Метаданные узла сети", см. следующий раздел.
- На вкладке Операции добавьте соответствующие операции, например: 'Добавить узел сети', 'Добавить в группу узлов сети' (например, Discovered hosts), 'Привязать шаблоны' и т. д.
Если узлы сети, которые будут проходить авторегистрацию, скорее всего будут поддерживаться только для активного мониторинга (например, узлы сети, доступ к которым с вашего сервера Zabbix ограничен межсетевым экраном), то можно создать специальный шаблон, например Template_Linux-active, для привязки.
Созданные узлы сети добавляются в группу Discovered hosts (по умолчанию; настраивается в Администрирование > Общие > Прочее). Если вы хотите, чтобы узлы сети добавлялись в другую группу, добавьте операцию Удалить из группы узлов сети (указав "Discovered hosts"), а также операцию Добавить в группу узлов сети (указав другую группу узлов сети), поскольку узел сети должен принадлежать к группе узлов сети.
Безопасная авторегистрация
Безопасный способ авторегистрации возможен при настройке аутентификации на основе PSK с использованием зашифрованных соединений.
Уровень шифрования настраивается глобально в Administration > General > Autoregistration. Можно выбрать отсутствие шифрования, TLS-шифрование с аутентификацией PSK или оба варианта одновременно (чтобы одни узлы сети могли регистрироваться без шифрования, а другие — через шифрование).
Аутентификация по PSK проверяется сервером Zabbix перед добавлением узла сети. Если проверка успешна, узел сети добавляется, а в Connections from/to host устанавливается только значение 'PSK' с identity/pre-shared key, совпадающими с глобальной настройкой авторегистрации.
Чтобы обеспечить безопасность авторегистрации в установках, использующих прокси, следует включить шифрование между сервером Zabbix и прокси.
Использование DNS в качестве интерфейса по умолчанию
Параметры конфигурации HostInterface и HostInterfaceItem configuration parameters позволяют указать пользовательское значение для интерфейса узла сети во время авторегистрации.
В частности, они полезны, если узел сети должен быть авторегистрирован с DNS-именем в качестве интерфейса агента по умолчанию, а не с его IP-адресом. В этом случае DNS-имя должно быть указано или возвращено в качестве значения параметров HostInterface или HostInterfaceItem. Если значение одного из этих параметров изменится — например, с IP-адреса на DNS-имя или наоборот, — интерфейс по умолчанию авторегистрированного узла сети будет соответственно обновлен. Это обновление применяется к существующему узлу сети, а не путем создания нового. Чтобы отправить новое значение, агент необходимо перезапустить, чтобы он повторно инициировал процесс авторегистрации.
Если параметры HostInterface или HostInterfaceItem не настроены, вместо них используется параметр listen_dns. Это значение определяется путем выполнения обратного DNS-запроса для IP-адреса агента. Если обратный DNS не настроен должным образом или возвращает недопустимое имя, это может привести к некорректной или неудачной авторегистрации из-за недопустимого значения интерфейса.
Использование метаданных узла сети
Когда агент отправляет запрос авторегистрации на сервер, он передаёт своё имя узла сети. В некоторых случаях (например, для узлов в облаке Amazon) имени узла сети недостаточно, чтобы сервер Zabbix мог различать обнаруженные узлы сети. Метаданные узла сети можно при необходимости использовать для передачи другой информации от агента на сервер.
Метаданные узла сети настраиваются в файле конфигурации агента — zabbix_agentd.conf.
Существует 2 способа указать метаданные узла сети в файле конфигурации:
HostMetadata
HostMetadataItem
См. описание этих параметров по ссылке выше.
Параметр HostMetadataItem может возвращать до 65535 кодовых точек UTF-8. Более длинное значение будет усечено.
Обратите внимание, что в MySQL фактическая максимальная длина в символах будет меньше, если возвращаемое значение содержит многобайтовые символы. Например, значение, содержащее только 3-байтовые символы, будет ограничено в общей сложности 21844 символами, а значение, содержащее только 4-байтовые символы, будет ограничено 16383 символами.
Попытка авторегистрации выполняется каждый раз, когда активный агент отправляет на сервер запрос на обновление активных проверок. Задержка между запросами задаётся параметром RefreshActiveChecks агента. Первый запрос отправляется сразу после перезапуска агента.
Примеры
Авторегистрация по ОС с использованием HostMetadata
Предположим, вы хотите, чтобы узлы сети автоматически регистрировались на сервере Zabbix. В вашей сети используются активные агенты Zabbix (см. раздел "Configuration" выше). В вашей сети есть узлы сети Windows и Linux, и в вашем веб-интерфейсе Zabbix доступны шаблоны "Linux by Zabbix agent" и "Windows by Zabbix agent". Поэтому при регистрации узла сети вы хотите, чтобы к регистрируемому узлу сети применялся соответствующий шаблон Linux/Windows. По умолчанию при авторегистрации на сервер отправляется только имя узла сети, чего может быть недостаточно. Чтобы убедиться, что к узлу сети применяется правильный шаблон, следует использовать метаданные узла сети.
Настройка веб-интерфейса
Первое, что нужно сделать, — настроить веб-интерфейс. Создайте 2 действия. Первое действие:
- Имя: Авторегистрация Linux-узла сети
- Условия: Метаданные узла сети содержат Linux
- Операции: Привязать шаблоны: Linux by Zabbix агент
В этом случае можно пропустить операцию "Добавить узел сети". Привязка шаблона к узлу сети требует сначала добавить узел сети, поэтому сервер сделает это автоматически.
Второе действие:
- Имя: Авторегистрация Windows-узла сети
- Условия: Метаданные узла сети содержат Windows
- Операции: Привязать шаблоны: Windows by Zabbix агент
Настройка агента
Теперь необходимо настроить агенты. Добавьте следующую строку в файлы конфигурации агента:
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
Не забудьте перезапустить агент после внесения любых изменений в файл конфигурации.
Использование HostMetadata для управления авторегистрацией и шаблонами
Шаг 1 — Защитите регистрацию с помощью HostMetadata
Использование метаданных узла сети позволяет обеспечить базовую защиту от регистрации нежелательных узлов сети.
Настройка веб-интерфейса
Создайте действие в веб-интерфейсе, используя некоторый трудноугадываемый секретный код, чтобы запретить нежелательным узлам сети регистрацию:
- Имя: Действие авторегистрации Linux
- Условия:
- Тип вычисления: И
- Условие (A): Метаданные узла сети содержат //Linux//
- Условие (B): Метаданные узла сети содержат //21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae//
- Операции:
- Отправить сообщение пользователям: Admin через все способы оповещения
- Добавить в группы узлов сети: Linux servers
- Привязать шаблоны: Linux by Zabbix агент
Обратите внимание, что сам по себе этот метод не обеспечивает надежной защиты, поскольку данные передаются в открытом виде. Для немедленного применения изменений требуется перезагрузка кэша конфигурации.
Настройка агента
Добавьте следующую строку в файл конфигурации агента:
HostMetadata=Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
где "Linux" — это платформа, а остальная часть строки — секретный текст, который сложно угадать.
Не забудьте перезапустить агент после внесения любых изменений в файл конфигурации.
Шаг 2 — Добавление шаблона к зарегистрированному узлу сети
Можно добавить дополнительные шаблоны для уже зарегистрированного узла сети.
В этом случае шаблон MySQL by Zabbix agent будет привязан только к тем узлам сети, у которых HostMetadata содержит токен MySQL.
Настройка веб-интерфейса
Обновите действие в веб-интерфейсе:
- Имя: Действие авторегистрации Linux
- Условия:
- Тип вычисления: И
- Условие (A): Метаданные узла сети содержат Linux
- Условие (B): Метаданные узла сети содержат 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
- Условие (C): Метаданные узла сети содержат MySQL
- Операции:
- Отправить сообщение пользователям: Admin через все способы оповещения
- Добавить в группы узлов сети: Linux servers
- Привязать шаблоны: Linux by Zabbix агент
- Привязать шаблоны: MySQL by Zabbix Agent
Настройка агента
Обновите следующую строку в файле конфигурации агента:
HostMetadata=MySQL on Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
Не забудьте перезапустить агент после внесения любых изменений в файл конфигурации.