Схемы шаблонов отчетов

В данном разделе представлен обзор структуры, принципов работы и процесса создания схемы шаблона отчета в R-Vision SIEM. Схемы шаблонов отчетов используются для настройки конфигурации и параметров формирования шаблонов отчетов. Управление схемами шаблонов отчетов в системе осуществляется в разделе Экспертиза.

О схемах шаблонов отчетов

Схема шаблона отчета — это структурированный объект данных в формате RObject (.ro), который задает конфигурацию и параметры для создания шаблона отчета. Схема определяет структуру отчета, правила его формирования и отображения данных.

Схема шаблона отчета включает следующие компоненты: параметры хранения данных, расписание формирования отчета, разметку и параметры виджетов, а также переменные для получения данных. Параметры хранения задают период времени, в течение которого данные остаются доступными для включения в отчеты. Разметка определяет расположение виджетов, которые визуализируют данные в различных форматах, таких как графики, таблицы и сводные значения.

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

Работа со схемой шаблона отчета

Доступные операции над правилом сегментации:

Создание схемы шаблона отчета

Чтобы добавить схему шаблона отчета:

  1. Перейдите в раздел Экспертиза. Система отобразит сведения об имеющихся элементах экспертизы, в том числе их текущий статус (включен/выключен).

  2. На панели инструментов нажмите на кнопку Создать и выберите из выпадающего списка опцию Схема шаблона отчета. Система отобразит окно создания схемы.

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

  4. Нажмите на кнопку Опубликовать версию, чтобы сохранить изменения и опубликовать созданную схему шаблона. Система отобразит уведомление об успешном создании схемы. Новая схема шаблона отчета отобразится в таблице раздела Экспертиза.

    Чтобы схема стала доступной для создания шаблонов отчета, ее необходимо включить.

    Вы можете создать схему шаблона без публикации (в виде черновика) с помощью кнопки Сохранить черновик. Система отобразит уведомление об успешном создании черновика. Черновик схемы отобразится в таблице раздела Экспертиза.

Вы можете также создать схему на основе готового шаблона отчета.

Изменение схемы шаблона отчета

Чтобы изменить схему шаблона отчета:

  1. Перейдите в раздел Экспертиза. Система отобразит сведения об имеющихся элементах экспертизы, в том числе их текущий статус (включен/выключен).

  2. Нажмите на строку схемы шаблона отчета в списке. Система отобразит в правой части экрана карточку этой схемы с подробной информацией о ней.

  3. Выберите опцию Изменить в выпадающем меню Действия (more vertical) в верхней части карточки схемы шаблона отчета. Отобразится окно настроек схемы.

    Вы также можете открыть окно настроек с помощью кнопки в нижней части карточки:

    • Для опубликованной версии: нажмите на кнопку Просмотр в нижней части карточки. Система отобразит окно просмотра настроек элемента экспертизы. Нажмите на кнопку Изменить в правом нижнем углу окна.

    • Для черновика: нажмите на кнопку Изменить в нижней части карточки.

  4. Внесите требуемые изменения в конфигурацию схемы шаблона отчета.

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

    При публикации новой версии элемента экспертизы требуется увеличить его текущую версию в поле version.

    Вы можете сохранить измененную конфигурацию схемы шаблона отчета без публикации (в виде черновика) с помощью кнопки Сохранить черновик. Конфигурация будет сохранена для дальнейшего редактирования. В этом случае в верхней части карточки схемы будет отображаться предупреждение о наличии неопубликованных изменений.

Удаление схемы шаблона отчета

Удаление доступно только для элементов экспертизы с типом создания Пользовательский.

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

Чтобы удалить схему шаблона отчета:

  1. Перейдите в раздел Экспертиза. Система отобразит сведения об имеющихся элементах экспертизы, в том числе их текущий статус (включен/выключен).

  2. Нажмите на строку схемы шаблона отчета в списке. Система отобразит в правой части экрана карточку этой схемы с подробной информацией о ней.

  3. Выберите опцию Удалить в выпадающем меню Действия (more vertical) в верхней части карточки схемы шаблона отчета. Отобразится окно подтверждения удаления схемы.

  4. Нажмите на кнопку Удалить. Система отобразит уведомление об удалении схемы шаблона отчета, и схема будет удалена из списка элементов экспертизы.

Вы также можете удалить группу элементов экспертизы. Для этого:

  1. Перейдите в раздел Экспертиза. Система отобразит сведения об имеющихся элементах экспертизы, в том числе их текущий статус (включен/выключен).

  2. Установите флажки напротив тех элементов, которые вы хотите удалить, в левом столбце таблицы.

  3. Нажмите на кнопку trash на панели инструментов. Отобразится окно удаления.

  4. Нажмите на кнопку Удалить. Система отобразит уведомление об удалении выбранного элемента экспертизы, и элемент экспертизы будет удален из списка элементов экспертизы.

Структура схемы шаблона отчета

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

Поле Описание Тип данных Обязательное поле

id

Универсальный уникальный идентификатор схемы шаблона отчета. Значение — пять групп из шестнадцатеричных цифр в формате 8-4-4-4-12, разделенных дефисом. Буквы — только строчные латинские. Формат значения: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

UUID

да

name

Название шаблона отчета. Допустимы латинские буквы, цифры, точки, подчеркивания и дефисы.

строка

да

description

Краткое описание шаблона отчета.

строка

нет

type

Тип схемы. Для шаблонов отчетов всегда указывается report_template_schema.

строка

да

author

Имя и контактные данные автора схемы шаблона отчета.

строка

нет

data_source

Список источников данных, с которыми совместима схема шаблона отчета. Используется для классификации и быстрого поиска элементов экспертизы в системе по совместимым источникам.

массив строк

массив объектов

нет

tags

Список тегов, присвоенных схеме шаблона отчета для классификации и быстрого поиска.

массив строк

нет

version

Версия схемы шаблона отчета в формате Semantic Versioning.

строка

да

storagePeriod

Параметры времени хранения данных, включаемых в отчет.

объект

да

schedule

Параметры расписания формирования отчетов согласно формату Cron.

объект

да

variables

Набор переменных, используемых в отчете для получения данных. Поле key —  уникальный идентификатор переменной. Поле type определяет тип источника данных, с которым связана переменная. Допустимые значения для type: ACTIVE_LIST — активный список, EVENT_STORAGE — хранилище событий, METRIC — метрики, ALERT-- оповещения.

массив объектов

да

layout

Размещение виджетов в отчете, определяющая их расположение и размеры.

массив объектов

да

widgets

Описание виджетов, их настройки и параметры автоматического обновления.

массив объектов

да

autoUpdate

Настройки автоматического обновления данных виджета. Включает единицу времени (unit), допустимые значения: SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR, и значение интервала обновления (value) в виде положительного целого числа.

объект

да

Структура data_source

Поле data_source, представленное массивом строк, имеет структуру:

data_source:
- <platform> # Платформа или информационная система
- <source> # Источник событий.
# События (EventId) или путь к журналу событий:
- <EventID_1>
- <EventID_2>

Поле data_source, представленное массивом объектов, имеет следующую структуру:

Поле Описание Тип данных Обязательное поле

platform

Платформа или информационная система.

строка

нет

source

Источник событий.

строка

нет

events

События (EventId) или путь к журналу событий.

массив строк

нет

Структура storagePeriod

Поле storagePeriod определяет временной интервал, в течение которого данные остаются доступными для формирования отчетов.

Поле Описание Тип данных Обязательное поле

unit

Единица времени, например, MINUTE, HOUR, DAY, MONTH.

строка

да

value

Числовое значение для указанной единицы времени. Например, при значении unit: MINUTE и value: 60, данные будут храниться 60 минут.

число

да

Структура schedule

Поле schedule задает параметры расписания согласно формату Cron для автоматического формирования отчетов.

Поле Описание Тип данных Обязательное поле

hours

Часы, в которые будет формироваться отчет. Указывается в формате 0-23.

строка

да

minutes

Минуты, в которые будет формироваться отчет. Указывается в формате 0-59.

строка

да

seconds

Секунды для формирования отчета. Указывается в формате 0-59.

строка

да

dayOfMonth

День месяца для формирования отчета. Указывается в формате 1-31 или * для ежедневного формирования.

строка

да

dayOfWeek

День недели для формирования отчета. Указывается в формате 0-6 (где 0 — это воскресенье) или * для ежедневного формирования.

строка

да

month

Месяц для формирования отчета. Указывается в формате 1-12 или * для формирования отчета каждый месяц.

строка

да

Структура variables

Поле Описание Тип данных Обязательное поле

key

Уникальный идентификатор переменной, используемой в шаблоне отчета.

строка

да

type

Тип источника данных, с которым связана переменная. Допустимые значения: EVENT_STORAGE для хранилища событий, METRIC для метрик, ALERT для оповещений.

строка

да

Структура layout

Поле layout описывает размещение виджетов в отчете, включая их позицию на сетке и размеры.

Поле Описание Тип данных Обязательное поле

id

Уникальный идентификатор виджета.

строка

да

x, y

Позиция виджета на сетке (x — по горизонтали, y — по вертикали).

число

да

w, h

Размеры виджета в ячейках сетки (ширина w, высота h).

число

да

maxH, minH

Максимальная и минимальная высота виджета.

число

да

minW

Минимальная ширина виджета.

число

да

Структура widgets

Поле Описание Тип данных Обязательное поле

id

Уникальный идентификатор виджета. Используется для его ссылки в других элементах схемы шаблона отчета.

строка

да

name

Название виджета, которое будет отображаться в отчете.

строка

да

description

Краткое описание виджета, поясняющее его назначение.

строка

нет

autoUpdate

Настройки автоматического обновления данных виджета. Включает единицу времени (unit) и значение интервала обновления (value).

объект

да

last

Указывает временной период данных, которые будут отображаться в виджете. Например, за последний час или месяц.

объект

нет

variables

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

объект

да

Структура autoUpdate

Поле Описание Тип данных Обязательное поле

unit

Единица времени, через которую будет происходить автоматическое обновление данных виджета. Допустимые значения: SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR.

строка

да

value

Интервал обновления в единицах, указанных в поле unit. Например, при значении unit: MINUTE и value: 5, обновление будет происходить каждые 5 минут.

число

да

Структура last

Поле Описание Тип данных Обязательное поле

unit

Единица времени, за которую будут отображаться данные. Допустимые значения: SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR.

строка

да

value

Числовое значение интервала для выбранной единицы времени. Например, при значении unit: DAY и value: 7 будут отображены данные за последние 7 дней.

число

да

Структура variables

Поле Описание Тип данных Обязательное поле

source

Определяет источник данных для виджета. Допустимые значения: METRIC, SEARCH, ALERT.

строка

да

metricId

Идентификатор метрики, данные которой должны быть отображены. Применяется, если source установлен на METRIC.

строка

да (если source = METRIC)

chartType

Тип графика, который используется для визуализации данных. Допустимые значения: LINE_CHART, BAR_CHART, PIE_CHART, TABLE, TOTAL.

строка

да (если используется график)

rql

Запрос на языке RQL, который используется для получения данных. Применяется, если source установлен на SEARCH.

строка

да (если source = SEARCH)

nameMapping

Массив, который задает сопоставление полей данных с отображаемыми элементами (например, x, y для графиков или timestamp, cnt для таблиц).

массив объектов

да (для графиков и таблиц)

kind

Тип отображаемых оповещений. Допустимые значения: active, new, total, last, distributionByField, distributionByTime. Применяется, если source установлен на ALERT.

объект

да (если source = ALERT)

Составление схемы шаблона отчета

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

Поля метаданных

Заполните поля метаданных схемы шаблона отчета:

  • id: уникальный идентификатор схемы шаблона отчета. Значение — пять групп из шестнадцатеричных цифр в формате 8-4-4-4-12, разделенных дефисом. Буквы — только строчные латинские. Формат значения: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Должен быть уникальным в рамках коллектора.

  • name: название схемы шаблона отчета. Допустимы латинские буквы, цифры, символы подчеркивания, точки и дефисы.

  • description (опционально): краткое описание назначения шаблона отчета.

  • type: всегда указывается report_template_schema для элементов экспертизы данного типа.

  • version: версия схемы шаблона отчета согласно стандарту Semantic Versioning.

  • author: имя и контактные данные автора схемы шаблона отчета.

  • data_source: список источников данных, с которыми совместима схема шаблона отчета. Это поле используется для классификации и быстрого поиска элементов в системе.

  • tags: список тегов, присвоенных схеме шаблона отчета, для классификации и упрощения поиска.

Пример метаданных:

id: "61f0c404-5cb3-11e7-907b-000000000000"
name: "System Report Template"
description: "Шаблон для создания отчетов по метрикам системы и событиям"
type: report_template_schema
version: "1.0.0"
author: John Doe <johndoe@example.com>
data_source:
  - Windows
  - Linux
tags:
  - system
  - report

В этом примере:

  • Схема шаблона отчета с уникальным идентификатором 61f0c404-5cb3-11e7-907b-000000000000 предназначена для создания отчетов по метрикам системы и событиям.

  • Название схемы System Report Template описывает назначение шаблона.

  • Поле type указывает, что тип элемента экспертизы (report_template_schema).

  • Версия шаблона отчета задана как 1.0.0 в соответствии с правилами семантического версионирования.

  • Автором схемы является John Doe, чьи контактные данные указаны в поле author.

  • В поле data_source перечислены источники данных, совместимые с отчетом — Windows и Linux.

  • Теги system и report присвоены для облегчения поиска и классификации шаблона отчета в системе.

Поле storagePeriod

Поле storagePeriod определяет временной интервал, в течение которого данные остаются доступными для включения в отчет.

  • unit: единица времени, например, MINUTE, HOUR, DAY, MONTH.

  • value: числовое значение для выбранной единицы времени.

Пример:

storagePeriod:
  unit: MINUTE
  value: 60

В этом примере:

  • Поле storagePeriod задает временной интервал для сохранения данных, который равен 60 минутам. Это означает, что данные, собранные за последние 60 минут, будут включены в отчет.

Поле schedule

Поле schedule задает параметры расписания согласно формату Cron для автоматического формирования отчетов.

  • hours: часы, в которые будет формироваться отчет (формат 0-23).

  • minutes: минуты для формирования отчета (формат 0-59).

  • seconds: секунды для формирования отчета (формат 0-59).

  • dayOfMonth: день месяца для формирования отчета (1-31 или * для ежедневного отчета).

  • dayOfWeek: день недели для формирования отчета (0-6, где 0 — это воскресенье).

  • month: месяц для формирования отчета (1-12 или * для ежемесячного отчета).

Пример:

schedule:
  hours: "10"
  minutes: "0"
  seconds: "0"
  dayOfMonth: "*"
  dayOfWeek: "*"
  month: "*"

В этом примере:

  • Отчет будет формироваться каждый день в 10:00:00 утра, так как hours установлено на "10", а minutes и seconds установлены на "0".

  • Поле dayOfMonth установлено на *, что означает формирование отчета каждый день месяца.

  • Поля dayOfWeek и month также установлены на *, что задает ежедневное и ежемесячное формирование отчета без ограничений по конкретным дням недели или месяцам.

Поле variables

Поле variables используется для передачи переменных в шаблон отчета. Переменные могут включать следующие типы источников данных: хранилища событий, метрики и оповещения.

  • key: уникальный идентификатор переменной.

  • type: тип источника данных (допустимые значения: EVENT_STORAGE для хранилища событий, METRIC для метрик, ALERT для оповещений).

Пример:

variables:
  - key: VARIABLE_EVENT_STORAGE_ID_1
    type: EVENT_STORAGE

В этом примере:

  • Переменная с ключом VARIABLE_EVENT_STORAGE_ID_1 используется для обозначения хранилища событий в шаблоне отчета. Тип переменной установлен как EVENT_STORAGE, что указывает на использование хранилища событий в запросах данных.

Поле layout

Поле layout определяет размещение виджетов в шаблоне отчета. Каждый виджет имеет уникальный идентификатор и параметры, определяющие его положение и размеры.

  • id: уникальный идентификатор виджета.

  • x, y: координаты виджета на сетке (x — позиция по горизонтали, y — по вертикали).

  • w, h: размеры виджета в ячейках (ширина w и высота h).

  • maxH, minH, minW: ограничения по минимальной и максимальной высоте и ширине.

Пример:

layout:
  - id: WIDGET_KEY_1
    x: 0
    y: 1
    w: 6
    h: 3
    maxH: 5
    minH: 3
    minW: 6

В этом примере:

  • Виджет с идентификатором WIDGET_KEY_1 размещен в позиции x: 0, y: 1, что означает его расположение в первой колонке и второй строке сетки шаблона отчета.

  • Размер виджета составляет 6 ячеек по ширине (w: 6) и 3 ячейки по высоте (h: 3).

  • Ограничения для виджета установлены: максимальная высота — 5 ячеек, минимальная высота — 3 ячейки, минимальная ширина — 6 ячеек.

Поле widgets

Поле widgets описывает каждый виджет, его параметры данных и тип отображаемой информации. Основные параметры виджетов:

  • id: уникальный идентификатор виджета.

  • name: название виджета.

  • description: краткое описание функциональности виджета.

  • autoUpdate: настройки автоматического обновления данных (единица времени и интервал).

  • last: временной период отображаемых данных (например, последний день или месяц).

  • variables: параметры запроса данных для виджета.

Пример:

widgets:
  - id: WIDGET_KEY_1
    name: "Host DB RAM"
    description: "Отображает текущее использование RAM базой данных"
    autoUpdate:
      unit: MINUTE
      value: 1
    last:
      unit: DAY
      value: 1
    variables:
      source: METRIC
      metricId: c9c9e971-7d45-48eb-9ed5-000000000000
      queryArguments: []
      step: ONE_DAY

В этом примере:

  • Виджет с идентификатором WIDGET_KEY_1 имеет название "Host DB RAM" и предназначен для отображения использования оперативной памяти базы данных.

  • Описание виджета указано в поле description как "Отображает текущее использование RAM базой данных".

  • Виджет настроен на автоматическое обновление каждые 1 минуту, что задано в поле autoUpdate.

  • Поле last указывает, что виджет будет отображать данные за последний день.

  • Источник данных для виджета — метрика (source: METRIC), с идентификатором метрики metricId: c9c9e971-7d45-48eb-9ed5-000000000000. Дополнительные параметры запроса определены как queryArguments: [], и шаг агрегации данных установлен на один день (step: ONE_DAY).

Структура виджетов

Виджеты в шаблоне отчета могут быть нескольких типов в зависимости от отображаемых данных и формата представления. Каждый тип виджета имеет уникальные параметры.

Виджеты с метриками

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

Поля виджета с метриками:

  • source: определяет источник данных для виджета (допустимые значения: METRIC, SEARCH, ALERT).

  • metricId: идентификатор метрики, данные которой отображаются.

  • step: интервал времени, за который агрегируются данные.

Пример виджета с метрикой:

widgets:
  - id: WIDGET_KEY_1
    name: "CPU Usage"
    description: "Отображает использование CPU системы"
    autoUpdate:
      unit: MINUTE
      value: 5
    last:
      unit: HOUR
      value: 1
    variables:
      source: METRIC
      metricId: "c9c9e971-7d45-48eb-9ed5-000000000000"
      step: ONE_MINUTE

В этом примере:

  • Виджет с идентификатором WIDGET_KEY_1 называется "CPU Usage" и предназначен для отображения текущей загрузки процессора системы.

  • Поле description содержит описание "Отображает использование CPU системы".

  • Виджет обновляется каждые 5 минут, что задано в поле autoUpdate (unit: MINUTE, value: 5).

  • Поле last указывает, что данные за последний час будут агрегироваться и отображаться на виджете (unit: HOUR, value: 1).

  • Источник данных для виджета определен в поле variables. Здесь указывается, что данные берутся из метрики (source: METRIC), с идентификатором метрики metricId: "c9c9e971-7d45-48eb-9ed5-000000000000", а интервал агрегации данных установлен на одну минуту (step: ONE_MINUTE).

Виджеты с графиками

Графики визуализируют изменение данных во времени и поддерживают несколько типов отображения: линейные графики, столбчатые диаграммы, круговые диаграммы и др.

Поля виджета с графиком:

  • chartType: тип графика (LINE_CHART, BAR_CHART, PIE_CHART, TABLE, TOTAL).

  • rql: запрос на языке RQL для получения данных.

  • nameMapping: сопоставление полей запроса с осями графика (например, x — время, y — количество).

Пример виджета с линейным графиком:

widgets:
  - id: WIDGET_KEY_2
    name: "Event Storage Counter"
    description: "Отображает количество событий в хранилище"
    autoUpdate:
      unit: MINUTE
      value: 30
    last:
      unit: MONTH
      value: 1
    variables:
      source: SEARCH
      chartType: LINE_CHART
      rql: "SELECT count(id) as cnt, toStartOfHour(timestamp) as ts GROUP BY ts"
      nameMapping:
        - key: x
          value: ts
        - key: y
          value: cnt

В этом примере:

  • Виджет с идентификатором WIDGET_KEY_2 называется "Event Storage Counter" и предназначен для отображения количества событий в хранилище.

  • Поле description содержит описание "Отображает количество событий в хранилище".

  • Виджет автоматически обновляется каждые 30 минут, что задано в поле autoUpdate (unit: MINUTE, value: 30).

  • Поле last указывает, что виджет будет отображать данные за последний месяц (unit: MONTH, value: 1).

  • В поле variables виджет использует источник данных типа SEARCH и тип графика LINE_CHART, что означает, что данные будут отображаться в виде линейного графика.

  • Запрос на языке RQL (rql) возвращает количество событий (cnt), сгруппированных по часам (toStartOfHour(timestamp)).

  • Поле nameMapping используется для сопоставления полей запроса с осями графика: поле ts отображается на оси x, а количество событий cnt — на оси y.

Табличные виджеты

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

Поля табличного виджета:

  • chartType: всегда имеет значение TABLE.

  • rql: запрос на языке RQL для получения данных, которые будут отображены в таблице.

  • nameMapping: сопоставление полей с колонками таблицы (например, timestamp, count).

Пример табличного виджета:

widgets:
  - id: WIDGET_KEY_3
    name: "Event Table"
    description: "Отображает события с временными метками"
    autoUpdate:
      unit: MINUTE
      value: 30
    last:
      unit: DAY
      value: 1
    variables:
      source: SEARCH
      chartType: TABLE
      rql: "SELECT timestamp, count(id) as cnt FROM event_table GROUP BY timestamp"
      nameMapping:
        - key: timestamp
          value: timestamp
        - key: count
          value: cnt

В этом примере:

  • Виджет с идентификатором WIDGET_KEY_3 называется "Event Table" и отображает события с указанием временных меток.

  • Поле description содержит описание "Отображает события с временными метками".

  • Виджет автоматически обновляется каждые 30 минут (autoUpdate с параметрами unit: MINUTE и value: 30).

  • Поле last указывает, что виджет будет отображать данные за последний день (unit: DAY, value: 1).

  • В поле variables указано, что виджет использует тип отображения данных TABLE (chartType: TABLE), а данные запрашиваются из источника типа SEARCH.

  • Запрос на языке RQL (rql) получает временные метки (timestamp) и количество событий (cnt), сгруппированных по времени.

  • Поле nameMapping сопоставляет поля запроса с колонками таблицы: поле timestamp отображается в колонке с временными метками, а поле cnt — в колонке с количеством событий.

Виджеты с оповещениями

Виджеты с оповещениями отображают оповещения и события, классифицированные по уровням угрозы, времени создания и другим параметрам.

Поля виджета с оповещениями:

  • source: всегда указывается ALERT.

  • kind: тип отображаемых оповещений (active, new, last, distributionByField, distributionByTime, total).

  • filter: опциональные фильтры для отображаемых оповещений (например, по уровню угрозы).

Пример виджета с активными оповещениями:

widgets:
  - id: WIDGET_KEY_4
    name: "Active Alerts"
    description: "Отображает активные оповещения в системе"
    autoUpdate:
      unit: MINUTE
      value: 1
    last:
      unit: HOUR
      value: 1
    variables:
      source: ALERT
      kind:
        kind: active
        active: {}

В этом примере:

  • Виджет с идентификатором WIDGET_KEY_4 называется "Active Alerts" и предназначен для отображения активных оповещений в системе.

  • Поле description содержит описание "Отображает активные оповещения в системе").

  • Виджет обновляется каждую минуту (autoUpdate с параметрами unit: MINUTE, value: 1).

  • Поле last указывает, что виджет будет отображать оповещения за последний час (unit: HOUR, value: 1).

  • Источник данных для виджета — это оповещения (source: ALERT).

  • Поле kind указывает, что отображаются только активные оповещения (kind: active), без дополнительной фильтрации (параметры в active: {} не указаны).

Виджеты со сводными данными

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

Поля сводного виджета:

  • chartType: всегда имеет значение TOTAL.

  • rql: запрос языке RQL для получения сводных данных.

  • nameMapping: сопоставление результата с отображаемым полем.

Пример сводного виджета:

widgets:
  - id: WIDGET_KEY_5
    name: "Total Event Count"
    description: "Отображает общее количество событий"
    autoUpdate:
      unit: MINUTE
      value: 30
    last:
      unit: MONTH
      value: 1
    variables:
      source: SEARCH
      chartType: TOTAL
      rql: "SELECT count(id) as cnt FROM event_storage"
      nameMapping:
        - key: value
          value: cnt

В этом примере:

  • Виджет с идентификатором WIDGET_KEY_5 назван "Total Event Count" и отображает общее количество событий.

  • Поле description содержит описание "Отображает общее количество событий".

  • Виджет автоматически обновляется каждые 30 минут (autoUpdate с параметрами unit: MINUTE и value: 30).

  • Поле last указывает, что виджет будет отображать данные за последний месяц (unit: MONTH, value: 1).

  • Источник данных — хранилище событий (source: SEARCH), тип виджета — сводный (chartType: TOTAL).

  • Запрос на языке RQL (rql) возвращает общее количество событий в хранилище (SELECT count(id) as cnt FROM event_storage).

  • Поле nameMapping сопоставляет поле cnt с отображаемым полем виджета, обозначенным как value.

Пример схемы шаблона отчета

Example 1. Пример схемы шаблона отчета "System Report Template", схема RObject
# Универсальный уникальный идентификатор схемы шаблона отчета.
id: 61f0c404-5cb3-11e7-907b-000000000000

# Название шаблона отчета.
name: System Report Template

# Тип элемента.
type: report_template_schema

# Версия схемы.
version: 1.0.0

# Описание назначения шаблона отчета.
description: Шаблон отчета для мониторинга системных метрик и событий

# Имя и контактные данные автора схемы шаблона отчета.
author: John Doe <johndoe@example.com>

# Список источников данных, с которыми совместима схема шаблона отчета.
data_source:
  - Windows
  - Linux

# Список тегов, присвоенных схеме шаблона отчета для классификации и быстрого поиска.
tags:
  - system
  - report

# Параметры хранения данных.
storagePeriod:
  unit: MINUTE
  value: 60

# Расписание формирования отчета согласно формату Cron.
schedule:
  hours: "10"
  minutes: "0"
  seconds: "0"
  dayOfMonth: "*"
  dayOfWeek: "*"
  month: "*"

# Переменные для источников данных виджетов.
variables:
  - key: VARIABLE_EVENT_STORAGE_ID_1
    type: EVENT_STORAGE

# Размещение виджетов в отчете.
layout:
  - id: WIDGET_KEY_1
    x: 0
    y: 1
    w: 6
    h: 3
    maxH: 5
    minH: 3
    minW: 6
  - id: WIDGET_KEY_2
    x: 0
    y: 3
    w: 6
    h: 3
  - id: WIDGET_KEY_3
    x: 0
    y: 6
    w: 6
    h: 3

# Параметры виджетов в отчете.
widgets:
  - id: WIDGET_KEY_1
    name: Host DB RAM
    description: "Отображает текущее использование RAM базой данных"
    autoUpdate:
      unit: MINUTE
      value: 1
    last:
      unit: DAY
      value: 1
    variables:
      source: METRIC
      metricId: "c9c9e971-7d45-48eb-9ed5-000000000000"

  - id: WIDGET_KEY_2
    name: Event Storage Counter (LineChart)
    description: "Линейный график для отображения количества событий в хранилище"
    autoUpdate:
      unit: MINUTE
      value: 30
    last:
      unit: MONTH
      value: 1
    variables:
      source: SEARCH
      chartType: LINE_CHART
      rql: "SELECT count(id) as cnt, toStartOfHour(timestamp) as ts GROUP BY ts"
      nameMapping:
        - key: x
          value: ts
        - key: y
          value: cnt

  - id: WIDGET_KEY_3
    name: "Оповещения по уровню угрозы за месяц"
    autoUpdate:
      unit: MINUTE
      value: 1
    last:
      unit: MINUTE
      value: 3
    variables:
      source: ALERT
      kind:
        kind: active
        active: {}

Интерпретация

Метаданные шаблона отчета:

  • id: универсальный уникальный идентификатор схемы шаблона отчета — "61f0c404-5cb3-11e7-907b-000000000000".

  • name: название шаблона отчета — "System Report Template".

  • type: указывается как report_template_schema, что определяет тип схемы как шаблон отчета.

  • version: версия схемы — "1.0.0".

  • description: краткое описание назначения шаблона — "Шаблон отчета для мониторинга системных метрик и событий".

  • author: имя и контактные данные автора шаблона — "John Doe <johndoe@example.com>".

  • data_source: список совместимых источников данных — "Windows" и "Linux".

  • tags: список тегов, присвоенных шаблону для классификации — "system" и "report".

Параметры хранения данных:

  • storagePeriod: задает период хранения данных для формирования отчета. В данном примере данные собираются за последние 60 минут.

Расписание формирования отчета:

  • schedule: отчет будет формироваться ежедневно в 10:00:00.

Переменные:

  • variables: переменные используются для передачи данных в виджеты. В данном примере переменная VARIABLE_EVENT_STORAGE_ID_1 используется как идентификатор хранилища событий (EVENT_STORAGE).

Разметка виджетов:

  • layout: описывает размещение виджетов на странице отчета. Например, виджет с идентификатором WIDGET_KEY_1 размещен в позиции x: 0, y: 1 с шириной 6 и высотой 3.

Виджеты:

  1. Host DB RAM: отображает текущее использование RAM базой данных. Виджет обновляется каждую минуту и отображает данные за последний день.

    • source: метрика (источник данных — METRIC).

    • metricId: идентификатор метрики — "c9c9e971-7d45-48eb-9ed5-000000000000".

  2. Event Storage Counter (LineChart): отображает количество событий в хранилище в виде линейного графика за последний месяц. Обновляется каждые 30 минут.

    • source: данные берутся из хранилища событий (SEARCH).

    • chartType: тип графика — линейный (LINE_CHART).

    • rql: запрос на языке RQL возвращает количество событий (cnt), сгруппированных по часам.

    • nameMapping: сопоставляет поле ts с осью x, а cnt с осью y на графике.

  3. Оповещения по уровню угрозы за месяц: отображает активные оповещения за последний месяц. Обновление происходит каждые 3 минуты.

    • source: оповещения (ALERT).

    • kind: отображаются активные оповещения (active), фильтрации нет.