Page tree

SAYMON документация

Skip to end of metadata
Go to start of metadata

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

Однако создавать карту инфраструктуры вручную зачастую слишком утомительно, ведь в ней могут содержаться тысячи объектов. Для решения этой проблемы в Центральном Пульте предусмотрены механизмы автообнаружения объектов. С их помощью можно добавить большинство интересующих пользователя объектов на карту инфраструктуры в автоматическом режиме, без трудоёмкого ручного "накликивания" в web-интерфейсе.

В Центральном Пульте есть две разновидности автообнаружения объектов.

Первая разновидность - это встроенные механизмы, которые работают без каких-либо усилий со стороны пользователя. К ним относится, например, механизм сетевого автообнаружения, который отображает на схеме все хосты, доступные в локальной сети.

Вторая разновидность - это методы в REST API, которые могут использоваться скриптами автоматизации клиента для создания объектов в Центральном Пульте . С помощью таких скриптов можно реализовать любой алгоритм автообнаружения любых разновидностей объектов инфраструктуры.

Встроенное автообнаружение

Встроенные механизмы автообнаружения реализованы внутри Центрального Пульта и срабатывают автоматически при старте системы (за исключением случаев, когда они отключены администратором системы).

К встроенным механизмам автообнаружения относится механизм сетевого автообнаружения. Также в процессе разработки находятся механизмы автообнаружения системных служб и механизм автообнаружения по SNMP.

Сетевое автообнаружение

Агент сканирует локальную подсеть и отправляет на сервер информацию обо всех IP-адресах, доступных для TCP-соединения либо доступных по PING. Объекты хостов с соответствующими адресами создаются в Центральном Пульте и отображаются на карте инфраструктуры. Для них также автоматически включается мониторинг с помощью сенсора Ping.


В конфигурационном файле агента параметр agent.discoveryEnabled включает или выключает сетевое автообнаружение (включено по умолчанию). Для отключения сетевого автообнаружения на агенте необходимо выставить этому параметру значение false:

agent.discoveryEnabled=false

Автообнаружение через API

Все варианты автообнаружения для всего многообразия существующих инфраструктур предусмотреть невозможно. Однако в Центральном Пульте есть открытый REST API, используя который, клиент может реализовать любой, подходящий именно ему механизм автообнаружения объектов, с помощью автоматического сценария (скрипта). REST API Центрального Пульта работает по протоколу HTTP, поэтому сценарий можно реализовать на любом языке или платформе, где есть HTTP-клиент.

Простейший пример - bash-скрипт с отправкой REST-запросов в Центральный Пульт через curl.

Добавление объектов через REST

К примеру, есть скрипт, который умеет обнаруживать определённый вид объектов в инфраструктуре (это могут быть сетевые устройства или программные сервисы). Добавить обнаруженные объекты в Центральный Пульт можно с помощью REST-метода POST/node/api/objects.

Пример, как это может делаться в bash-скрипте:

# Код для обнаружения объекта...
# ...

# Объект обнаружен, создаём его в Центральном Пульте.
curl -v -u admin:saymon -H "Content-Type: application/json" -X POST \
  --data '{"name": "Обнаруженный объект", "discovery_id": "Идентификатор_объекта"}' \
  http://saymon/node/api/objects

Важным параметром при обнаружении объекта является discovery_id. Это строка, однозначно идентифицирующая объект в инфраструктуре и позволяющая избежать его повторного создания в Центральном Пульте. Если в момент создания объекта в Центральном Пульте уже существует объект с указанным discovery_id, он просто модифицируется новыми данными, а новый объект при этом не создаётся. Это позволяет запускать сценарий автообнаружения множество раз (например, по расписанию) и быть уверенным, что уже обнаруженные объекты не будут созданы повторно.

В случае с сетевыми устройствами в качестве discovery_id может выступать IP-адрес или MAC-адрес устройства.

  • No labels