Дерево страниц

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

Перейти к концу метаданных
Переход к началу метаданных

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

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

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

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

Оба механизма автообнаружения мы рассмотрим здесь подробнее.

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

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

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

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

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

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

agent.discoveryEnabled=false

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

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

Простейший пример - bash-скрипт с отправкой REST-запросов в SAYMON через curl.

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

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

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

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

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

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

  • Нет меток