Схемы дашбордов

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

О схемах дашбордов

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

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

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

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

Работа со схемой дашборда

Доступные операции над схемой дашборда:

Создание схемы дашборда

Чтобы создать схему дашборда:

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

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

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

    Строки, начинающиеся с символа $ ($foo), интерпретируются в VRL-блоках элементов экспертизы как переменные окружения. Чтобы избежать этого, экранируйте такие строки символом $ ($$foo).
  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

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

строка

да

author

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

строка

нет

data_source

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

массив строк

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

нет

tags

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

массив строк

нет

version

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

строка

да

scope

Доступность дашборда. Указывает, является ли дашборд персональным (user) или общим (tenant).

строка

да

variables

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

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

да

layout

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

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

да

widgets

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

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

да

Структура data_source

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

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

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

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

platform

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

строка

нет

source

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

строка

нет

events

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

массив строк

нет

Структура 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: название схемы дашборда. Допустимы латинские буквы, цифры, символы подчеркивания, точки и дефисы.

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

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

  • author (опционально): имя и контактные данные автора схемы дашборда.

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

  • scope: доступность дашборда. Указывает, является ли он персональным (user) или общим (tenant).

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

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

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

id: "61f0c404-5cb3-11e7-907b-000000000000"
name: "System Monitoring Dashboard"
type: dashboard_schema
description: "Дашборд для мониторинга системных метрик и событий"
author: John Doe <johndoe@rvision.ru>
version: "0.0.1"
scope: tenant
data_source:
  - platform: Windows
  - source: Sysmon
tags:
  - monitoring
  - system

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

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

  • Название схемы System Monitoring Dashboard описывает назначение дашборда.

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

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

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

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

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

Поле 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
  - id: WIDGET_KEY_2
    x: 0
    y: 4
    w: 6
    h: 3

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

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

  • Его ширина составляет 6 ячеек (w: 6), а высота — 3 ячейки (h: 3).

  • Для этого виджета также установлены ограничения: максимальная высота (maxH) — 5 ячеек, минимальная высота (minH) — 3 ячейки и минимальная ширина (minW) — 6 ячеек.

  • Виджет с идентификатором WIDGET_KEY_2 размещен в позиции x: 0, y: 4, что означает, что он будет находиться в первой колонке и на пятой строке сетки дашборда.

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

Поле widgets

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

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

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

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

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

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

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

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

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

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

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

  • Поле description описывает функциональность виджета как "Отображает текущее использование ОЗУ базы данных".

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

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

  • В поле variables указано, что данные берутся из источника типа METRIC, с идентификатором метрики "c9c9e971-7d45-48eb-9ed5-000000000000".

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

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

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

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

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

  • 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 Monitoring Dashboard", схема RObject
# Универсальный уникальный идентификатор схемы дашборда.
id: 61f0c404-5cb3-11e7-907b-000000000000

# Название дашборда.
name: System Monitoring Dashboard

# Тип элемента экспертизы.
type: dashboard_schema

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

# Принадлежность дашборда (личный или общий).
scope: user

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

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

# Источники данных, с которыми совместима схема дашборда.
data_source:
  - platform: Windows
  - source: Sysmon
  - events:
    - EventID_1
    - EventID_2

# Теги для классификации и быстрого поиска схемы.
tags:
  - monitoring
  - system

# Переменные для источников данных виджетов.
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: 4
    w: 6
    h: 3
  - id: WIDGET_KEY_3
    x: 0
    y: 7
    w: 6
    h: 3

# Параметры виджетов на дашборде.
widgets:
  - id: WIDGET_KEY_1
    name: Host DB RAM
    description: Виджет для отображения текущего использования оперативной памяти базой данных
    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: Event Storage 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

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

Метаданные схемы дашборда:

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

  • name: название схемы дашборда — "System Monitoring Dashboard".

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

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

  • scope: принадлежность дашборда — "user", что указывает на то, что дашборд доступен только конкретному пользователю.

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

  • author: автор схемы дашборда — "John Doe <johndoe@example.com>".

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

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

Переменные:

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

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

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

Виджеты:

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

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

    • metricId: идентификатор метрики для получения данных о RAM — "c9c9e971-7d45-48eb-9ed5-000000000000".

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

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

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

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

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

  3. Event Storage Table: таблица для отображения событий с указанием времени и количества событий. Обновление происходит каждые 30 минут.

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

    • chartType: тип отображения — таблица (TABLE).

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

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