Классы объектов
Каждая сущность (объект и связь) принадлежит классу. Классы помогают более наглядно отобразить инфраструктуру, а также определяют логику мониторинга.
В стандартном виде класс объекта отображается в его нижнем правом углу в виде пиктограммы, соответствующей классу:
В виде сетки иконка класса отображается перед именем объекта:
В табличном виде иконка класса отображается перед именем объекта:
Класс объекта влияет на:
- внешний вид объекта;
- логику перехода состояний по умолчанию (для каждого класса можно отдельно настроить условия перехода состояний);
- логику генерации аварий по умолчанию (для каждого класса можно отдельно настроить условия генерации аварий);
- настроенные операции по умолчанию (для для каждого класса можно отдельно настроить операции)
- набор отображаемых графиков;
- список доступных настроек мониторинга;
- наличие предопределённых настроек мониторинга.
Например, у объектов класса Process в настройках мониторинга доступен лишь один тип проверки - Процесс по имени, а для объектов класса Memory настройки мониторинга недоступны, поскольку они предопределены.
Класс объекта используется при поиске и групповых операциях. Все объекты определённого класса можно быстро отыскать и применить к ним новые настройки.
NOTE
Администрирование классов объектов происходит в окне конфигурации системы в разделе Управление классами объектов .
NOTE
Выбранный класс сущности невозможно изменить.
Модель класса
В этом разделе описано внутреннее представление классов объектов.
| Поле | Тип | Описание |
|---|---|---|
| category_id | String | Идентификатор категории класса. Подробную информацию о категории можно найти в разделе Идентификатор категории. |
| client_data | String | Данные клиента класса. Подробную информацию о данных клиента можно найти в разделе Клиентские данные. |
| comment | String | Пользовательский комментарий к классу. |
| description | String | Описание класса. |
| entityType | Integer | Тип сущности. Для класса, тип сущности – 4. |
| id | String |
required | Идентификатор класса. | | name | String
required | Имя класса. | | operations | Array<Operation> | Массив операций класса. | | properties | Array<Property> | Массив свойств класса. | | triggers | Array<Trigger> | Массив пользовательских триггеров класса. Подробную информацию о пользовательских триггерах можно найти в разделе Пользовательские триггеры. |
Клиентские данные
Клиентские данные – набор полей, которые определяют отображение класса в пользовательском интерфейсе. Данные поля указываются в формате JSON и хранятся на сервере в виде строки. Таблица ниже содержит описание всех полей:
| Поле | Тип | Описание |
|---|---|---|
| background | String | Идентификатор изображения, используемого в качестве фона для класса. |
| columns | Array<ClassColumn> | Массив колонок класса. |
| default_view | String | Способ отображения класса по умолчанию: standard, geo-view, end-view, table-view, grid-view. |
| defaultDim | Array<Integer> | Размеры по умолчанию для объектов, принадлежащих данному классу. Указываются как массив двух целых чисел, первое из которых задает ширину, а второе высоту. |
Колонка класса
| Поле | Тип | Описание |
|---|---|---|
| hidden | Boolean | Скрытие колонки. |
| id | String |
required | Идентификатор колонки класса. | | name | String
required | Название колонки класса. | | removable | Boolean | Удаление колонки. | | type | String | Тип колонки класса. |
Идентификатор категории
Идентификатор категории класса (category_id) используется для группировки дочерних объектов.
Дочерние объекты, принадлежащие классу с одинаковым идентификатором категории, отображаются на родительском объекте рядом. Дочерние объекты с различными идентификаторами категорий разделяются горизонтальной чертой.
Пример отображения дочерних объектов в веб-интерфейсе:

Пользовательские триггеры
Сервер может запускать скрипты при создании или удалении объектов. Пользовательские триггеры определяют запускаемые скрипты, их аргументы и случаи, в которых они запускаются.
Пользовательские триггеры имеют следующие поля:
| Поле | Тип | Описание |
|---|---|---|
| args | Object | JSON-объект, содержащий набор пар ключ-значение с аргументами, которые будут переданы скрипту. |
| customScriptId | String | Путь к скрипту, который будет запущен. |
| type | String | Условия запуска триггера. Возможные значения: create и remove. |
В скрипт можно передать следующие переменные:
| Поле | Тип | Описание |
|---|---|---|
| {{body}} | String | Тело объекта в формате JSON. |
| {{class_id}} | String | Идентификатор класса объекта. |
| {{client_data}} | String | Данные клиента объекта. |
| {{created}} | Integer | Временная метка создания объекта. |
| {{entityId}} | String | Идентификатор сущности. |
| {{geoposition}} | String | Гео-гоординаты объекта. |
| {{geopositionRadius}} | String | Гео-радиус объекта. |
| {{id}} | String | Идентификатор объекта. |
| {{last_state_update}} | Integer | Временная метка последнего изменения Состояния. |
| {{name}} | String | Имя объекта. |
| {{parent_id}} | Array<String> | Список идентификаторов родительских объектов. |
| {{state_id}} | String | Идентификатор Состояния объекта. |
| {{tags}} | Array<Tag> | Теги объекта. |
| {{updated}} | Integer | Временная метка обновления объекта. |
Пример
Данный пример содержит два пользовательских триггера. Первый триггер запускается при создании объекта, второй – при удалении.
json
"triggers": [
{
"type": "create",
"args": {
";saymon-ctp-auto-id#0": "first var",
";saymon-ctp-auto-id#1": "second var"
},
"customScriptId": "test/class_trigger.sh"
},
{
"type": "remove",
"args": {
";saymon-ctp-auto-id#0": "pos var",
"--name": "{{name}}",
"--description": "Object was removed"
},
"customScriptId": "test/hello_world.sh"
}
]Стандартные классы
В системе существуют следующие стандартные классы:
| ID | Название | Категория | Описание |
|---|---|---|---|
| 1 | Root | - | Класс для корневого объекта системы. Дополнительные объекты этого класса, созданные пользователями не имеют специального функционала. |
| 2 | Saymon Agent | - | Класс для объектов, представляющих агент SAYMON. Подробнее об особенностях этого класса можно прочитать в разделе Saymon Agent. |
| 3 | Host | – | Физический или виртуальный хост. |
| 4 | CPU | 1 | Класс для объектов, представляющих процессор устройства, на котором запущен агент. Подробнее об особенностях этого класса можно прочитать в разделе CPU. |
| 5 | Memory | 1 | Класс для объектов, представляющих оперативную память устройства, на котором запущен агент. Подробнее об особенностях этого класса можно прочитать в разделе Memory. |
| 6 | File System | 1 | Класс для объектов, представляющих файловую систему устройства, на котором запущен агент. Подробнее об особенностях этого класса можно прочитать в разделе Файловая система. |
| 7 | Process | 2 | Process |
| 8 | Socket | 2 | |
| 9 | Port | 2 | |
| 10 | Local Address | 2 | |
| 11 | Address | 2 | |
| 12 | Interface | 1 | |
| 13 | Node | 3 | |
| 14 | Virtual Node | 3 | |
| 15 | Service | 3 | |
| 16 | Service Platform | 3 | |
| 17 | System Interface | 1 | |
| 18 | User Interface | 1 | |
| 19 | Support Interface | 1 | |
| 20 | Hardware | – | |
| 21 | Software | – | |
| 22 | Queue | 3 | |
| 23 | Table Space | 3 | |
| 24 | Info | 3 | |
| 25 | Platform Group | – | – |
| 26 | RDBMS | 3 | |
| 27 | Network | – | – |
| 29 | Database Schema | 3 | |
| 29 | Cloud | 3 | Cloud |
| 30 | Object Group | – | – |
| 31 | Network IO | 1 | Network IO |
| 32 | User | – | Пользователь |
| 33 | Router | 1 | Router |
| 34 | Antenna | 1 | Antenna |
| 35 | Network Link | – | Network Link |
| 36 | Rack | – | Серверная стойка или шкаф |
| 37 | Rack Switch Unit | 1 | Серверное сетевое оборудование |
| 38 | Rack Server Unit | 1 | Сервер в стойку |
| 39 | Rack Array Unit | 1 | Массив дисков или лезвий/слэдов |
| 40 | Rack UPS Unit | 1 | Серверный ИБП |
| 41 | Rack Blade Unit | 1 | Лезвие или слэд |
| 42 | Configuration File | 3 | – |
| 43 | Dashboard | – | Dashboard |
Saymon Agent
Класс Saymon Agent предназначен для объектов, представляющих агент SAYMON.
У объектов этого класса есть дополнительная кнопка , которая отображается при наведении курсором на изображение объекта. Эта кнопка открывает окно настроек агента, с помощью которого производится Автоинсталляция.
NOTE
У объектов данного класса недоступна секция Мониторинг .
В объектах этого класса по умолчанию настроены следующие условия перехода состояния:


CPU
Объекты этого класса используются для мониторинга центрального процессора устройства, на котором запущен выбранный в секции Мониторинг агент.
У объектов этого класса по-умолчанию есть виджет Счётчик, который показывает среднюю нагрузку на процессор за минуту.

У объектов этого класса недоступен выбор сенсора мониторинга. Объект этого класса использует сенсор CPU для мониторинга работы процессора системы, на которой запущен выбранный агент.


В объектах этого класса по умолчанию настроены следующие условия перехода состояния:


Memory
Объекты этого класса используются для мониторинга оперативной памяти устройства, на котором запущен выбранный в секции Мониторинг агент.
У объектов этого класса по-умолчанию есть виджет Счётчик, который показывает использование оперативной памяти, swap-файла и общее использование памяти.

У объектов этого класса недоступен выбор сенсора мониторинга. Объект этого класса использует сенсор RAM для мониторинга оперативной памяти системы, на которой запущен выбранный агент.


В объектах этого класса по умолчанию настроены следующие условия перехода состояния:


Файловая система
Объекты этого класса используются для мониторинга файловой системы устройства, на котором запущен выбранный в секции Мониторинг агент.
У объектов этого класса недоступен выбор сенсора мониторинга. Объект этого класса использует сенсор File system для мониторинга файловой системы устройства, на котором запущен выбранный агент.
Переключатель Полный список отображает все устройства и разделы файловой системы.


В объектах этого класса по умолчанию настроены следующие условия перехода состояния:

