Zabbix авторегистрация и обнаружение

Лабораторные работы

Условия лабораторной работы

Для данной лабораторной работы потребуются три виртуальные машины: на одной должен быть установлен Zabbix Server, на остальных — Zabbix Agent. Zabbix Server должен быть установлен и настроен; Zabbix Agents должны быть установлены, а в их конфигурации указан параметр Hostname, соответствующий имени машины. Также необходимо открыть необходимые порты на межсетевом экране и обеспечить сетевую связность виртуальных машин.

Выполнение работ

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

Настройте на второй машине работы Zabbix-Agent в активном режиме, для этого укажите в параметре ServerActive IP адрес сервера Zabbix, так же добавим HostMetadata со значением Linux (данное действие мы разберём позже):

ServerActive=192.168.1.10
HostMetadata=Linux

На третьей машине настроим Zabbix-Agent для работы в пассивном режиме:

Server=192.168.1.10

Автоматическая регистрация

Автоматическая регистрация (Auto-registration) — механизм автоматического добавления новых узлов в мониторинг Zabbix на основе входящих запросов от агентов. При данном подходе Zabbix-сервер пассивно ожидает регистрационные сообщения от узлов сети, которые самостоятельно инициируют подключение при запуске. Ключевой особенностью автоматической регистрации является обязательное наличие настроенного Zabbix-Agent на целевом узле: в конфигурационном файле агента должны быть указаны параметр Hostname (уникальное имя узла) и адрес Zabbix-сервера для отправки регистрационного запроса.

Перейдите в настройки Zabbix-Server в раздел Администрирование > Общие > Авторегистрация, установите галочку "Без шифрования". Вопрос использования шифрования в данной лабораторной работе рассматриваться не будет.

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

Перейдём в раздел Оповещения > Действия > Действия авторегистрации. Нажмите Создать действие и дайте правилу имя "Автоматическая регистрация Linux-серверов".

Добавим условие: Метаданные узла сети, нажимаем содержат и указываем в поле Linux. Вы можете добавлять больше условий, например помечать сервера баз данных MySQL или PostgreSQL для подключения соответствующих шаблонов.

Данное условие проверяет установленный нами ранее параметр в файле конфигурации:

HostMetadata=Linux

Перейдите на вкладку Операции, здесь мы добавим несколько операций, которые будет выполнять Zabbix при автоматической регистрации агентов.

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

Добавим следующую операцию: Добавить узел сети — данная операция добавит найденный узел в список для сбора данных.

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

Наконец укажем Zabbix то на этом узле необходимо собирать метрики Linux. Добавим операцию Присоединить шаблон и выберем шаблон Linux by Zabbix agent active. Важно, нам нужен именно активный режим агента, т.к. пассивный режим на этом узле мы не настраивали.

В результате мы получили 1 условие и 4 операции. Может показаться долго и сложно, но на деле это занимает пару минут, а экономит часы на добавлении новых узлов в Zabbix.

Добавим настроенное действие и подождём некоторое время, агент обращается к серверу примерно каждую минуту. При следующем таком обращении Zabbix зарегистрирует новый узел, поставит его на мониторинг и пришлёт оповещение администраторам.

Безусловно, Вы можете делать более сложные сценарии, добавлять больше Meta-информации, а так же использовать переменные. К примеру, Вы можете не указывать, что сервер работает на Linux, а вместо этого использовать переменную:

HostMetadataItem=system.uname

Zabbix-Agent сам подставит значение будь то 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

Обнаружение

Обнаружение узлов (Network Discovery) — процесс, обратный автоматической регистрации. Если при авторегистрации Zabbix-сервер пассивно ожидает сообщения от агента, то при обнаружении он активно сканирует сеть в поисках новых узлов. Кроме того, для работы обнаружения наличие Zabbix-Agent на целевом узле не обязательно: Zabbix может обнаруживать сетевые службы (например, FTP, SSH, HTTP) и добавлять их в мониторинг напрямую, либо использовать SNMP. Однако в рамках данной работы будет рассматриваться обнаружение узлов с установленным Zabbix-Agent.

Функция автоматического обнаружения узлов по сути представляет собой периодическое сканирование сети. Такие действия могут быть классифицированы службой информационной безопасности как подозрительная активность. Перед включением данной функции согласуйте её использование с ответственными за ИБ.

Перейдите в раздел Сбор данных > Обнаружение. Обычно у Zabbix здесь уже есть выключенное правило, но мы будем добавлять своё. Нажмите Создать правило обнаружения.

Дайте имя правилу Обнаружение Zabbix-Agent, укажите используемый Вами диапазон IP, у меня это 192.168.1.1-254 (т.е. с 192.168.0.1 до 192.168.0.254). Выберете разумный Интервал обновления, меня устраивает раз в час: 1h. Не ставьте проверку слишком часто - это создаст нагрузку на Zabbix Server, сеть и на уже найденные узлы.

Добавим проверку с типом Zabbix агент. У меня используется стандартный порт 10050, если у вас иначе - укажите свой. В качестве ключа хорошо использовать system.uname — это наименование ОС, работает практически всегда.

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

Перейдите в раздел Оповещения > Действия > Действия обнаружения и нажмите Создать действие. Укажите имя Обнаружение Zabbix-Agent.

Теперь нам необходимо указать несколько условий. Добавим первое: Правило обнаружения — и укажем созданное нами ранее правило Обнаружение Zabbix-Agent.

Хотя в нашем случае все сервера Linux, в целях обучения давайте отсеем все остальные ОС. Добавим условие Полученное значение, выберем содержит и укажем Linux.

Когда вы добавляете больше 1 условия — обязательно выбирайте Тип вычисления "И" — чтобы правила работали одновременно и дополняли друг друга. В ряде случаев можно использовать другие варианты, к примеру Linux "ИЛИ" Windows.

Настройку действий можете повторить из раздела автоматической регистрации, единственным отличием будет шаблон: в случае обнаружения необходимо использовать Linux by Zabbix agent вместо активного.

После сохранения правила Zabbix начнёт сканировать указанные IP в поисках Zabbix-agent и добавлять найденные узлы на мониторинг.