Автоматическая регистрация активного агента
Обзор
Можно разрешить автрегистрирование активного агента Zabbix, после чего сервер сможет начать его мониторинг. Таким образом, новые узлы сети можно добавлять для мониторинга без ручной настройки на сервере.
Автрегистрация может происходить, когда ранее неизвестный активный агент запрашивает проверки.
Эта функция может быть очень полезна для автоматического мониторинга новых облачных узлов. Как только у вас появляется новый узел в Zabbix Cloud, автоматически начинается сбор данных о производительности и доступности узла сети.
Автрегистрация активного агента также поддерживает мониторинг добавленных узлов с помощью пассивных проверок.
Когда активный агент запрашивает проверки, и в файле конфигурации заданы параметры 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
Если в zabbix_agentd.conf явно не задан параметр Hostname, сервер будет использовать системное имя узла сети, на котором работает агент, для присвоения имени узлу сети.
Системное имя узла сети в Linux можно получить, выполнив команду hostname.
Если в конфигурации агента Zabbix параметр Hostname задан в виде списка узлов сети, разделённых запятыми, узлы сети будут созданы для всех указанных имён узлов сети.
После внесения изменений в файл конфигурации перезапустите агент.
Действие для автоматической регистрации активного агента
Когда сервер получает запрос на автоматическую регистрацию от агента, он вызывает действие. Для автоматической регистрации агента необходимо настроить действие с источником события «Автоматическая регистрация».
Настраивать сетевое обнаружение для автоматической регистрации активных агентов не требуется.
В веб-интерфейсе Zabbix:
- Перейдите в раздел Оповещения > Действия.
- Выберите Действия автоматической регистрации.
- Нажмите Создать действие.
- На вкладке Действие укажите имя действия.
- При необходимости укажите условия. В условиях для имени узла сети или метаданных узла сети можно использовать поиск по подстроке или регулярному выражению. Если вы собираетесь использовать тип условия Метаданные узла сети, см. раздел Использование метаданных узла сети.
- На вкладке Операции добавьте необходимые операции, например Добавить узел сети, Добавить в группу узлов сети (например, Обнаруженные узлы сети), Связать шаблоны и т. д.
Если узлы сети, которые будут автоматически регистрироваться, вероятно, поддерживают только активный мониторинг (например, узлы сети, защищенные межсетевым экраном от вашего сервера Zabbix), можно создать специальный шаблон, например Template_Linux-active, и связать его с узлами сети.
Созданные узлы сети добавляются в группу Обнаруженные узлы сети (по умолчанию; этот параметр можно изменить в разделе Администрирование > Общие > Другие параметры). Если вы хотите добавлять узлы сети в другую группу, добавьте операцию Удалить из группы узлов сети (указав «Обнаруженные узлы сети»), а также операцию Добавить в группу узлов сети (указав другую группу узлов сети), поскольку узел сети должен входить в группу узлов сети.
Безопасная автоматическая регистрация
Безопасная автоматическая регистрация возможна при настройке аутентификации на основе PSK с использованием зашифрованных соединений.
Уровень шифрования настраивается глобально в разделе Администрирование > Общие > Автоматическая регистрация. Можно выбрать отсутствие шифрования, шифрование TLS с аутентификацией PSK или оба варианта (чтобы одни узлы сети могли регистрироваться без шифрования, а другие — с использованием шифрования).
Аутентификация с помощью PSK проверяется сервером Zabbix перед добавлением узла сети. Если проверка пройдена успешно, узел сети добавляется, а параметр Соединения с узлом сети и от узла сети устанавливается в значение «Только PSK» с идентификатором и предварительно заданным ключом, совпадающими с указанными в глобальной настройке автоматической регистрации.
Для обеспечения безопасности автоматической регистрации в установках, использующих прокси, следует включить шифрование между сервером Zabbix и прокси.
Использование DNS в качестве интерфейса по умолчанию
Параметры конфигурации HostInterface и HostInterfaceItem configuration parameters позволяют указать пользовательское значение интерфейса узла сети во время авторегистрации.
Если точнее, они полезны в том случае, когда узел сети должен быть авторегистрирован с DNS-именем в качестве интерфейса агента по умолчанию, а не с его IP-адресом. В этом случае в качестве значения параметров HostInterface или HostInterfaceItem должно быть указано или возвращено DNS-имя. Если значение одного из этих параметров изменится, например с IP-адреса на DNS-имя или наоборот, интерфейс по умолчанию у авторегистрированного узла сети будет обновлен соответствующим образом. Это обновление применяется к существующему узлу сети, а не путем создания нового. Чтобы передать новое значение, агент необходимо перезапустить, чтобы он заново инициировал процесс авторегистрации.
Если параметры HostInterface или HostInterfaceItem не настроены, вместо них используется параметр listen_dns. Это значение определяется путем выполнения обратного DNS-запроса для IP-адреса агента. Если обратный DNS настроен неправильно или возвращает недопустимое имя, это может привести к некорректной или неудачной авторегистрации из-за недопустимого значения интерфейса.
Использование метаданных узла сети
При отправке запроса на автоматическую регистрацию на сервер агент передает имя узла сети. В некоторых случаях (например, для узлов в облаке Amazon) имени узла сети недостаточно, чтобы сервер Zabbix мог различать обнаруженные узлы сети. Метаданные узла сети можно использовать дополнительно для передачи другой информации от агента на сервер.
Метаданные узла сети настраиваются в файле конфигурации агента (zabbix_agentd.conf).
В файле конфигурации метаданные узла сети можно указать двумя способами:
HostMetadata
HostMetadataItem
Описание параметров см. по ссылке выше.
Параметр HostMetadataItem может возвращать до 65535 кодовых точек UTF-8. Более длинное значение будет усечено.
Обратите внимание, что в MySQL фактическая максимальная длина в символах будет меньше, если возвращаемое значение содержит многобайтные символы. Например, значение, содержащее только 3-байтовые символы, будет ограничено 21844 символами, а значение, содержащее только 4-байтовые символы, — 16383 символами.
Попытка автоматической регистрации выполняется каждый раз, когда активный агент отправляет серверу запрос на обновление активных проверок. Задержка между запросами указывается в параметре RefreshActiveChecks агента. Первый запрос отправляется сразу после перезапуска агента.
Примеры
Авторегистрация по операционной системе с использованием HostMetadata
Допустим, вы хотите, чтобы узлы сети автоматически регистрировались сервером Zabbix. В вашей сети у вас есть активные агенты Zabbix (см. раздел «Настройка» выше). Также в вашей сети есть хосты Windows и хосты Linux, а в вашем веб-интерфейсе Zabbix вам доступны шаблоны «Linux by Zabbix agent» и «Windows by Zabbix agent». Поэтому вы хотите, чтобы при регистрации узла сети к регистрируемому узлу был применён соответствующий шаблон Linux/Windows. По умолчанию, на сервер при авторегистрации отправляется только имя узла сети, чего может быть недостаточно. Чтобы убедиться, что к узлу сети применяется правильный шаблон, вы должны использовать метаданные узла сети.
Настройка в веб-интерфейсе
Первое, что надо сделать, — это настроить веб-интерфейс. Создайте 2 действия. Первое действие:
- Имя: Авторегистрация узлов сети Linux
- Условия: Метаданные узлов сети содержит Linux
- Операции: Присоединить шаблоны: Linux by Zabbix agent
В данном случае можно опустить операцию «Добавить узел сети». Присоединение шаблона к узлу сети требует, чтобы узел сети уже был добавлен, поэтому сервер сделает это автоматически.
Второе действие:
- Имя: Авторегистрация узлов сети Windows
- Условия: Метаданные узлов сети содержит Windows
- Операции: Присоединить шаблоны: Windows by Zabbix agent
Настройка агента
Теперь вам нужно настроить агентов. В файлы конфигурации агентов добавьте следующую строку:
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
- Условия:
- Тип вычисления: И
- Условие (А): Метаданные узлов сети содержат //Linux//
- Условие (В): Метаданные узлов сети содержат //21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae//
- Операции:
- Отправить сообщение пользователям: Admin через все способы оповещения
- Добавить в группы узлов сети: Linux сервера
- Присоединить к шаблонам: Linux by Zabbix agent
Пожалуйста, обратите внимание, что использование этого метода в одиночку не предоставляет надёжную защиту, потому что данные передаются как простой текст. Для того, чтобы изменения вступили в силу немедленно, необходима перезагрузка кэша конфигурации.
Настройка агента
В файл конфигурации агента добавьте следующую строку:
HostMetadata=Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
где «Linux» — это платформа, а остаток строки — трудноугадываемый секретный текст.
Не забудьте перезапустить агента после внесения любых изменений в файл конфигурации.
Step 2 — Добавление шаблона к зарегистрированному узлу сети
К уже зарегистрированному узлу сети можно добавить дополнительные шаблоны.
В данном случае шаблон MySQL by Zabbix agent будет присоединён только к узлам сети, у которых HostMetadata содержит токен MySQL.
Настройка в веб-интерфейсе
В веб-интерфейсе обновите действие:
- Имя: Действие авторегистрации Linux
- Условия:
- Тип вычисления: И
- Условие (А): Метаданные узлов сети содержат Linux
- Условие (В): Метаданные узлов сети содержат 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
- Условие (C): Метаданные узлов сети содержат MySQL
- Операции:
- Отправить сообщение пользователям: Admin через все способы оповещения
- Добавить в группы узлов сети: Linux сервера
- Присоединить шаблоны: Linux by Zabbix agent
- Присоединить шаблоны: MySQL by Zabbix Agent
Настройка агента
Обновите следующую строчку в конфигурационном файле агента:
HostMetadata=MySQL on Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
Не забудьте перезапустить агента после внесения любых изменений в конфигурационный файл.