Руководство по системному администрированию#

Термины и определения#

С основными терминами и определениями можно ознакомиться в документации продукта Platform V Monitor (OPM).

Термин/определение

Определение

Тенант (tenant)

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

Алерт

Программируемое оповещение о каком-либо событии

Dashboards (Дашборд)

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

Datasources

Настраиваемый источник данных в Indicator

Панель / Panel

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

Notification channels

Канал уведомлений для отправки алерта

Notification channels

Канал уведомлений для отправки алерта

PVM Сервис авторизации

Platform V Monitor Сервис авторизации, которая является частью Platform V Monitor Abyss (LGDB), далее по тексту Сервис авторизации (PVMSecure)

Сценарии администрирования#

Управление ключами и сертификатами выполняется администратором. Настройки, связанные с управлением ключами и сертификатами, осуществляются с помощью средств DevOps Pipeline в соответствии с Руководством по безопасности. В самом UI требуются провести дополнительные настройки Data source см. пункт Добавление источника данных (Datasources). Установка Platform V Monitor Indicator осуществляется в соответствии с Руководством по установке. Откат к предыдущей версии представляет собой установку последней стабильной версии.

Проверка работоспособности#

Администратору рекомендуется регулярно выполнять:

  • контроль состояния работы системы Platform V Monitor Indicator (INDA);

  • мониторинг производительности системы Platform V Monitor Indicator (INDA);

  • контроль свободного места на жестких дисках всех серверов системы Platform V Monitor Indicator (INDA), а также в файловой системе;

  • администрирование пользователей;

  • администрирование источников данных;

  • администрирование дашбордов.

Сделать это можно с помощью системных метрик (описаны ниже) и метрики доступности. Также контролировать работу сервиса можно с помощью дашборда самомониторинга Indicator metrics, проверять сервис на наличие ошибок.

Действия при возникновении нештатной ситуации#

При выявлении нештатных ситуаций необходимо:

  • зайти в консоль платформы приложений-контейнеров, убедиться что приложение INDICATOR доступно;

  • зайти в дашборда Indicator metrics проверить наличие ошибок на panel "Количество ошибок" или аномальных скачков по графикам.

Обязанности администратора#

В рамках выполнения требований безопасной работы системы Platform V Monitor Indicator (INDA), Администратор выполняет следующие функции:

  • осуществляет контроль использования средств защиты информации;

  • осуществляет контроль доступа к обрабатываемым данным пользователями, согласно с их правами доступа к АС;

  • несет ответственность за качество проводимых им работ.

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

При этом производится разделение обязанностей между разработчиками АС, тестирующим персоналом и сотрудниками, непосредственно эксплуатирующими уже введенные в промышленную эксплуатацию системы Platform V Monitor Indicator (INDA).

Администратору доступны все функции указанные в Руководстве по оператора. Дополнительно, Администратор может управлять источниками данных.

Для управления источниками данных:

  1. Переместите курсор на шестеренку в боковом меню, которое покажет вам меню конфигурации;

  2. Если боковое меню не отображается, нажмите на значок шестеренки в левом верхнем углу;

  3. Нажмите кнопку Configuration>>Data Sources в боковом меню, и вы перейдете на страницу источники данных где вы можете добавлять и редактировать источники данных.

Как источник данных по умолчанию используется плагин SberTech Abyss.

Для Platform V Monitor Business application monitoring (BAM) используется плагин SberTech Abyss .

Для добавления источника данных (Data Sources) переместите курсор на шестеренку в боковом меню, которое покажет вам меню конфигурации:

  1. Нажмите на кнопку Configuration >> Data Sources и нажимаем “Add data source”;

  2. Выбираем плагин SberTech Abyss SQL:

    • Включить Exec On Front для работы Data Sources через frontend;

    • В типе Work Mode указываем Bam Selector;

    • Указываем endpoint подключения к Bam Selector, "Заполните поля" AuthToken, HeaderNamesList;

    • Важно! В поле name вводим название «SberTech BAM SQL», именно так как называется data source в дашбордах, поэтому названия должны совпадать;

    • Для работы adhoc фильтра необходимо добавить переменную projectName, которая будет содержать в себе список проектов/подключений.

    • Нажимаем Save & Test.

Если все параметры введены корректно, то будет выведено оповещение Datasource is working.

Список функций и ограничений для Администратора:

  • Может добавлять, редактировать и удалять источники данных;

  • Может добавлять и редактировать пользователей и команды в своей организации;

  • Может добавлять, редактировать и удалять папки, содержащие информационные панели для источников данных, связанных с их организацией;

  • Можно настроить Плагины приложений и параметры организации;

  • Может делать все, что разрешено ролью редактора.

Рекомендации по заданию стойких паролей#

См. подробнее раздел Рекомендации по заданию стойких паролей в Руководстве по безопасности.

Настройка конфигурационного файл indicator.conf#

Конфигурирование производится до выполнения JOB Pipeline_deploy в файле indicator.conf расположенном /conf/config/parameters/. см. раздел Пример файла конфигурации indicator.conf.

Здесь и далее поддерживаемой системой приложений-контейнеров является Kubernetes или OSE (использование OSE - опционально), в именах и параметрах системы могут встречаться названия систем контейнеризации.

Перед настройкой необходимо подготовить pipeline для установки.

Настройка СУБД#

Для СУБД PostrgeSQL (рекомендуется Platform V Pangolin SE)#

Обратитесь к своему системному администратору или сформируйте заявку на установку PostgreSQL ver.11.6 или выше.

Внести изменения в файл indicator.conf в раздел "Параметры для подключения к БД".

Имя параметра

Примеры значений

Описание

#Параметры для подключения к БД (Grafana)

GRAFANA_DB_TYPE

postgres

Тип базы данных

GRAFANA_DB_HOST

${EFS_PSTGR_DB_HOST}:${EFS_PSTGR_DB_PORT}

Глобальная переменная. IP и port подключения к БД. Если sqlite3, то например 127.0.0.1:3306

GRAFANA_DB_NAME

${EFS_PSTGR_DB_NAME}

Глобальная переменная.Имя БД

GRAFANA_DB_SSL_MODE

verify-full

Для Postgres, использовать или disable, или require ,или verify-full. При GRAFANA_DB_SSL_MODE=disable параметры: ?prepareThreshold=0&binary_parameters=yes, при GRAFANA_DB_SSL_MODE=verify-full параметр: ?binary_parameters=yes GRAFANA_DB_PARAMETERS=?binary_parameters=yes. При GRAFANA_DB_SSL_MODE=verify-full не забываем перевести параметр в true (indicator.ose.deployment.spec.template.spec.containers.indicator.change.permission.for.key=true см.внизу файла)

GRAFANA_DB_PARAMETERS

?binary_parameters=yes

Параметр используется при установленном значении GRAFANA_DB_SSL_MODE=verify-full

GRAFANA_DB_CA_CERT_PATH

${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cacert.pem

Глобальная переменная.Путь к используемому сертификату

GRAFANA_DB_CLIENT_KEY_PATH

${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert-key.pem

Глобальная переменная.Путь к ключу клиента

GRAFANA_DB_CLIENT_CERT_PATH

${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert.pem

Глобальная переменная. Путь к сертификату клиента

GRAFANA_DB_SERVER_CERT_NAME

Имя используемого сертификата

Здесь и далее поддерживаемой системой приложений-контейнеров является Kubernetes (использование OSE – опционально), в именах и параметрах системы могут встречаться названия систем контейнеризации

Также необходимо выполнить настройки egress в файл indicator.istio.all.conf в пунктах:

# Внешний порт на котором работает БД
indicator.ose.istio.egress.db.port=PORT1,PORT2
indicator.ose.istio.egress.db.resolution=DNS
indicator.ose.istio.egress.db.create.addresses=false
# Внутренний порт для Gateway для перемешивания трафика (всегда должен быть уникальным)
indicator.ose.istio.egress.db.gateway.port=PORT1,PORT2
# Внутренний порт для перемешивания трафика на Egress, этот порт и нужно указывать для подключения к БД (всегда должен быть уникальным)
indicator.ose.istio.egress.db.internal.port=PORT1,PORT2

При использование в параметре GRAFANA_DB_SSL_MODE значение verify-full необходимо:

  • необходимо перевести параметр indicator.ose.deployment.spec.template.spec.containers.indicator.change.permission.for.key в true;

  • указать новый каталог для переменной indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts.from.jks;

  • поменять значение переменной GRAFANA_DB_CLIENT_KEY_PATH на ${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts.from.jks}/cert-key.pem.


Для СУБД sqlite3 (Опционально)#

На БД sqlite3 можно развернуть Standalone экземпляр.

Необходимо в indicator.conf в раздел "Параметры для подключения к БД" указать настройки:

#Параметры для подключения к БД 
GRAFANA_DB_TYPE=sqlite3
GRAFANA_DB_HOST=IP:PORT
GRAFANA_DB_NAME=grafana
GRAFANA_DB_USER=root

#Параметры для автоскейлинга
indicator.openshift.autoscaling.max_replicas=1

Настройка аутентификации#

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

См. подробнее раздел Настройки аутентификации в Руководстве по безопасности

Настройка Platform V Monitor Журналирование (LOGA)#

Для каждого контейнера приложения, устанавливающегося в платформе приложений-контейнеров, ставится Sidecar-контейнер FluentBit, для сборки, обработки и транспорта логов.

Каталог с файлами логов находится на общем ресурсе модуля контейнеризация, доступ к которому имеет как контейнер приложения, так и Sidecar-контейнер FluentBit. FluentBit читает эти файлы, и отправляет логи в Kafka.

Для настройки интеграции с Platform V Monitor Журналирование необходимо внести изменения в файл indicator-logger.conf.

Имя параметра

Примеры значений

Описание

#Параметры брокеров и топика куда отбрасывается лог

fluent-bit.ose.configmaps.fluent-bit.data.brokers

host

Узлы брокеров Kafka

fluent-bit.ose.configmaps.fluent-bit.data.topics

IDR.Indicator

Имя топика Kafka

fluent-bit.ose.configmaps.fluent-bit.data.security.protocol=

SSL

Тип протокола

Настройка георезервирования#

Для использования георезервирования необходимо заполнить параметр БД в файле indicator.conf:

GRAFANA_DB_HOST=IP_БД1,IP_БД1:5001, этот параметр заполняется именно так.

Чтобы настроить выходы egress для базы данных в режиме использования георезервирования необходимо заполнить параметры:

Имя параметра

Примеры значений

Описание

## Пошаговая настройка в самом интерфейсе UI# egress-se-tcp-db

indicator.ose.istio.egress.db.enabled

true или false

Включение настройки

indicator.ose.istio.egress.db.hosts

Имя Host,через запятую

Имя узла

indicator.ose.istio.egress.db.port

Значение порта ,через запятую

Значение порта для DB

indicator.ose.istio.egress.db.resolution

DNS

Тип resolution

# Если indicator.ose.istio.egress.db.create.addresses=true то параметр должен быть indicator.ose.istio.egress.db.resolution=DNS

# IP адреса возьмутся из переменной GRAFANA_DB_HOST (без порта)

indicator.ose.istio.egress.db.create.addresses

true или false

Включение настройки подстановки IP адреса из переменной

Здесь и далее поддерживаемой системой приложений-контейнеров является Kubernetes (использование OSE – опционально), в именах и параметрах системы могут встречаться названия систем контейнеризации

Из-за внутренней логики работы Istio может возникнуть проблема использования одного порта на разные хосты в ServiceEntry

Есть два варианта решения данной проблемы: 1-й вариант заполняем параметры согласно примеру приведенному в файле 1v.txt 2-й вариант заполняем параметры согласно примеру приведенному в файле 2v.txt

Конфигурация для георезервированной схемы подключения (Geo Route)#

Если необходимо развернуть дистрибутив на разных кластерах контейнеризированого средства оркестрации, тогда для настройки необходимо заполнить параметр в файле indicator.istio.all.conf:

indicator.ose.istio.ingress.route.spec.host.georoute=true
indicator.ose.istio.ingress.route.spec.host.https.appFQDN.georoute=${distrib.release.version}-indicator.${projectName}.${appsDomain}

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

Для георезервированного балансера необходимо указать URL для выполнения запросов health check используемого компонента: https://host/healthz где, host - хост указанный в первом пункте.

Настройка secrets и подготовка сертификатов#

Для этого необходимо создать JKS файл indicator.jks (должен содержать корневой сертификат, сертификат-сервер, ключ), затем разместить его в папку ansible/files/ssl в common репозитории. Для правильной настройки нужно сразу проставить сертификатам признаки root, cert, key.

Файл необходим для работы АС с БД, SMTP, LDAP, Kafka c Вашими сертификатами. Сертификат для работы БД должен быть с SAN(Subject Alternate Name).

Также в common репозитории добавить параметры в файл ssl.conf имя файла, пароль(ссылается на параметр из passwords.conf) Произвести настройку секретов в файле _passwords.conf См. подробнее в Руководстве по установке

После выполнения установки JOB Pipeline_deploy, необходимо выполнить настройки в самом интерфейсе UI.

Создание организации и пользователей (при включенном режиме Сервис авторизации (PVMSecure))#

Добавление организации#

Для создания организации в приложении Abyss необходимо выполнить следующие действия: перейти на Вкладку "Настройки" > "Организации" > "+" > Окно "Создать Организацию" > Ввести "Название Организации" и "ProjectID" > Кнопка "Сохранить" > Окно просмотра Списка организаций.

Добавление пользователя организации#

Для добавления пользователя организации в приложении Abyss UI необходимо выполнить следующие действия: перейти на Вкладку "Настройки" > "Организации" > Выбрать организацию для редактирования > Окно просмотра организации > Окно "Добавить пользователя" > Найти пользователя для добавления > Проверить наличие пользователя > Добавить пользователя > Определить роль пользователя > Окно просмотра организации.

Создание организации и пользователей (без использования Сервис авторизации (PVMSecure))#

Добавление организации#

Для создания организации открываем пункт меню «Server Admin/Orgs» и в поле «Org.name» вводим название организации и нажимаем кнопку «Create».

Добавление пользователя организации#

Для добавления пользователя организации необходимо открыть пункт меню «Server Admin/Users»:

  • В поле «Org.name» указываем название организации и нажимаем кнопку «New user».

  • Заполнить нужные поля и нажимаем кнопку «Create».

  • Проверить что пользователь виден в меню «Users».

  • Добавить пользователя в нужную организацию. Для этого нажмите на него и попадаем в меню настройки пользователя.

  • В поле «Add» «Organizations» начинаем вводим название организации, к которой нужно предоставить доступ, выбираем нужный уровень прав и нажимаем «Add».

  • Удаляем доступ к организации по умолчанию «Main Org.».

Добавление источника данных (Datasources)#

Добавление источника данных (Datasource) в режиме Abyss#

Как источник данных по умолчанию Sbertech Abyss SQL.

Для корректной работы потребуется плагин Sbertech Abyss SQL, необходимо проверить чтобы он был.

Для добавления источника данных (Data Sources) переместите курсор на шестеренку в боковом меню, которое покажет вам меню конфигурации.

Нажмите на кнопку Configuration >> Data Sources и нажимаем “Add data source”.

  • Выбираем плагин SberTech Abyss SQL.

  • В типе Work Mode указываем Abyss.

  • Указываем endpoint подключения к Abyss, заполните поля Project, AuthToken и параметры базовой аутентификации логин/пароль;

  • Если используется авторизация через IAM Proxy, заполните поле HeaderNamesList, именем заголовка в котором Platform V IAM SE Proxy (AUTH) передает JWT токен.

  • Важно! В поле name вводим название «Indicator-Abyss», именно так как называется data source в дашбордах, поэтому названия должны совпадать;

  • Нажимаем Save & Test.

Если все параметры введены корректно, то будет выведено оповещение Datasource is working.
В поле URL указывается полный путь строки подключения к API Abyss, например Ваш_Url/coordinator/api/gateway/v1

Добавление источника данных (Datasource) в режиме BAM#

Для добавления источника данных (Datasources) переместите курсор на шестеренку в боковом меню, которое покажет вам меню конфигурации:

  • Нажмите на кнопку Configuration >> Data Sources и нажимаем “Add data source”;

  • Выбираем плагин SberTech Abyss SQL.

  • Включить Exec On Front для работы Data Sources в через frontend;

  • В типе Work Mode указываем Bam Selector;

  • Указываем endpoint подключения к Bam Selector, "Заполните поля" AuthToken, HeaderNamesList;

  • Важно! В поле name вводим название «SberTech BAM SQL», именно так как называется data source в дашбордах, поэтому названия должны совпадать;

  • Для работы adhoc фильтра необходимо добавить переменную projectName, которая будет содержать в себе список проектов/подключений.

  • Нажимаем Save & Test.

Если все параметры введены корректно, то будет выведено оповещение Datasource is working.
Если не переключить настройку Exec On Front, то работа дашбордов BAM не гарантируется.

Datasource

Adhoc фильтр, автоматом видит выбранный проект, фильтр получает rn и instanceId и отражает список колонок по этой таблице

Добавление источника данных (Datasource) в режиме Unimon-server#

Для добавления источника данных (Datasources) переместите курсор на шестеренку в боковом меню, которое покажет вам меню конфигурации.

Нажмите на кнопку Configuration >> Data Sources и нажимаем “Add data source”.

  • Выбираем плагин SberTech Abyss SQL.

  • В типе Work Mode указываем Unimon-server;

  • Указываем endpoint подключения к Unimon-server;

  • Важно! В headernameslist нужно указать заголовок в котором передается передавать JWT Токен;

  • В поле ParamName указываем префикс для обращения к API (rn, projectId);

  • В поле paramValue указываем значение самого rn или project;

  • Нажимаем Save & Test.

Если все параметры введены корректно, то будет выведено оповещение Datasource is working.

Добавление источника данных SOLR TENGRI PLUGIN#

Просмотр аналитики журналов возможен через интерфейс, для этого потребуется настройка data source SOLR TENGRI PLUGIN.

Нажмите на кнопку Configuration >> Data Sources в боковом меню, и вы перейдете на страницу источники данных где вы можете добавлять и редактировать источники данных. Выбрать источник SOLR TENGRI PLUGIN, также для корректной работы потребуются Plugin SberTable и SberGraf.

Добавление источника данных (Data source) в режиме Druid#

Как источник данных по умолчанию Sbertech Abyss SQL.

Для корректной работы потребуется плагин Sbertech Abyss SQL, необходимо проверить чтобы он был.

Для добавления источника данных (Data Sources) переместите курсор на шестеренку в боковом меню, которое покажет вам меню конфигурации.

Нажмите на кнопку Configuration >> Data Sources и нажимаем “Add data source”.

  • Выбираем плагин SberTech Abyss SQL.

  • В типе Work Mode указываем Druid.

  • Указываем endpoint подключения к Abyss, заполните параметры базовой аутентификации логин/пароль;

  • Важно! В поле name вводим название «Indicator-Abyss», именно так как называется data source в дашбордах, поэтому названия должны совпадать;

  • Нажимаем Save & Test.

Если все параметры введены корректно, то будет выведено оповещение Datasource is working.

Добавление источника данных Druid#

Для добавления источника данных (Datasources) переместите курсор на шестеренку в боковом меню, которое покажет вам меню конфигурации. Если боковое меню не отображается, нажмите на значок в левом верхнем углу. Нажмите на кнопку Configuration>>Data Sources в боковом меню, и вы перейдете на страницу источники данных где вы можете добавлять и редактировать источники данных.

Также для корректной работы потребуется плагин Sbertech Druid SQL, необходимо проверить чтобы он был если его нет приступаем к его настройке:

  • Открываем меню Configuration/Plugins под учетной записью администратора организации или администратора;

  • Ищем плагинSbertech Druid SQL;

  • Если он есть переходим дальше иначе требуется установка плагина;

  • Переходим в меню Configuration/Data Sources и нажимаем “Add data source”;

  • Выбираем плагин Sbertech Druid SQL;

  • Указываем endpoint подключения к druid и параметры базовой аутентификации логин/пароль;

  • Важно! В поле name вводим название «Indicator-Druid»,

Именно так как называется datasource в дашбордах, названия Datasource в источнике данных и на дашбордах должны совпадать;

  • Нажимаем Save & Test.

Если все параметры введены корректно, то будет выведено оповещение Datasource is working.

Импорт дашбордов в конкретную организацию#

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

Для импорта дашбордов нажмите:

  • на иконку плюса и выберите Import;

  • Загружаем дашборд нажав на кнопку Upload Json File;

  • По умолчанию Dashboard загружается в папку General, чтобы выбрать другую папку, нажмите Create;

  • После нажмите на Import;

  • Далее необходимо указать правильное название топика в Abyss, которое зависит от названия тенанта;

  • Для этого заходим в настройки только что импортированного дашборда через иконку шестеренки;

  • Выбираем пункт меню "Variables";

  • Выбираем переменную "$druidtable";

  • В поле "Value" вводим корректное название таблицы и нажимаем "Update".

Настройка ролевой модели (без использования Сервис авторизации (PVMSecure))#

Возможность редактирования ролей доступна только для пользователя с ролью администратора организации и для пользователя с ролью администратора сервера Grafana. Ролевая модель включает в себя 3 уровня определения роли и доступов:

  • уровень пользователя,

  • уровень команды,

  • уровень дашборда.

Уровни определения роли представлены в таблице ниже.

Уровень определения роли

Где задается

Уровень пользователя

Боковое меню Configuration/Users. Задается при непосредственном редактировании пользователя в списке пользователей.

Уровень команды

Боковое меню Configuration/Teams Позволяет объединить пользователей с общим признаком в одну команду. Тесно связано с настройкой доступов в настройках дашборда.

Уровень дашборда

Меню дашборда Dashboard settings/Permissions

После успешной авторизации, администратор переходит в меню создания группы пользователей (Teams).

  • Нажать на кнопку создания новой группы New team;

  • Задать имя группы. Почта опционально;

  • Нажать Create;

  • В блоке Add team member найти и выбрать нужного пользователя;

  • Нажать кнопку Add member;

  • Вверху появилась зеленая плашка Member added to Team.

Уровень команды#

Для создания группы пользователей перейдите в меню создания группы (Teams):

  1. Нажать на кнопку создания новой группы New team;

  2. Задать имя группы и при необходимости укажите адрес электронной почты;

  3. Нажать Create;

  4. В блоке Add team member найти и выбрать нужного пользователя;

  5. Нажать кнопку Add member;

  6. Вверху появилась зеленая плашка Member added to Team.

Уровень Dashboard (Аналитическая панель)#

Для настройки уровня dashboard создания группы пользователей перейдите в меню создания группы (Teams):

  1. Перейти на нужную аналитическую панель;

  2. Перейти в настройки dashboard нажав на кнопку с пиктограммой шестеренки в правом верхнем углу (Dashboard settings);

  3. Перейти в раздел Permissions;

  4. Удалить для всех ролей, кроме Админа, доступ к dashboard;

  5. На открывшейся странице нажать на кнопку Add Permission.

  6. В открывшемся блоке Add Permission For задать следующие параметры:

    1. В первом поле выбрать Team;

    2. Во втором поле выбрать группу (team), созданную на предыдущих шагах (либо, любую необходимую);

    3. В третьем поле выбрать роль для группы.

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

Настройка уведомлений#

Когда alert меняет состояние, отправляется уведомления. Каждое правило оповещения может иметь несколько уведомлений. Чтобы добавить уведомление в правило оповещения, вам сначала нужно добавить и настроить канал уведомлений (это может быть электронная почта, webhook или другая интеграция). Это делается на странице Notification channels.

Типы каналов уведомлений

Описание

Email, SMS

Настраивается SMTP Сервер для отправки данных

WebHook

Webhook - это простой способ отправки информации об изменении состояния алерта по протоколу HTTP в пользовательскую конечную точку. Используя этот канал уведомлении, Вы можете интегрировать АС в любую другую систему по вашему выбору.

SM-incident

Представляет способ отправки информации об изменении состояния алерта в формате XML для отправки в систему HPSM.

Настройка Email, SMS#

Для возможности отправки email, нужно произвести настройки SMTP в файл indicator.conf в разделе "Параметры для подключения SMTP".

Имя параметра

Примеры значений

Описание

#Параметры для подключения SMTP (отправка уведомлений)

GRAFANA_SMTP_ENABLED

false или true

Включение функционала для отправки Email

GRAFANA_SMTP_SKIP_VERIFY

false или true

Если GRAFANA_SMTP_SKIP_VERIFY=true то оставить пустым параметр -> GRAFANA_SMTP_CERT_FILE=${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert.pem. Если GRAFANA_SMTP_SKIP_VERIFY=true то оставить пустым параметр -> GRAFANA_SMTP_KEY_FILE=${indicator.ose.deployment.spec.template.spec.containers.indicator.volumeMounts.mountPath.sslcerts}/cert-key.pem

GRAFANA_SMTP_HOST

hostname

Сервер для подключения к SMTP

GRAFANA_SMTP_USER

username

УЗ для подключения к SMTP

GRAFANA_SMTP_FROM_ADDR

address@email.com

Адрес, используемый при отправке электронных писем

GRAFANA_SMTP_FROM_NAME

indicator

Имя, которое будет использоваться при отправке электронных писем

GRAFANA_SMTP_CERT_FILE

см. значение GRAFANA_SMTP_SKIP_VERIFY

Глобальная переменная. Путь к файлу сертификата для SMTP

GRAFANA_SMTP_KEY_FILE

см. значение GRAFANA_SMTP_SKIP_VERIFY

Глобальная переменная. Путь к файлу ключу для SMTP

Для настройки оповещения Вам потребуется перейти во вкладку Alert и нажать Create Alert. Вкладка доступна только для визуализации Graph.

См. подробнее в Руководстве прикладного разработчика

Настройка уведомления для автоматического заведение инцидента в HPSM#

Выбираем пункт Notification channels в меню Alerting

  • Необходимо заполнить XML;

  • В меню Optional SM-incident settings необходимо вставить сертификаты;

  • После выбрать галочки по сертификатам;

  • Нажимаем Test;

Если все параметры введены корректно, то будет выведено оповещение Test notification sent

  • Нажимаем Save.

Настройка WebHook#

Уведомление WebHook - это простой способ отправки информации об изменении состояния алерта по протоколу HTTP.

По WebHook можно создавать разные группы рассылки. Настройка производится в Alerting - > Notification channels , прописывается имя группы, и тип – WebHook.

Пример тела json:

{
  "dashboardId":1,
  "evalMatches":[

    {
      "value":1,
      "metric":"Count",
      "tags":{}
    }
  ],
  "imageUrl":"https://grafana.com/static/assets/img/blog/mixed_styles.png",
  "message":"Notification Message",
  "orgId":1,
  "panelId":2,
  "ruleId":1,
  "ruleName":"Panel Title alert",
  "ruleUrl":"http://localhost:3000/d/hZ7BuVbWz/test-dashboard?fullscreen\u0026edit\u0026tab=alert\u0026panelId=2\u0026orgId=1",
  "state":"alerting",
  "tags":{
    "tag name":"tag value"
  },
  "title":"[Alerting] Panel Title alert"
}

state-возможные значения для состояния оповещения: ok, paused, alerting, pending, no_data.

Просмотр дашбордов#

При нажатии на Home можно увидеть список папок с предустановленными дашбордами

Например, Если название папки начинается на V. то каталоги относятся к Platform V Monitor (OPM) Данные папки содержат каталогизации и список дашбордов данных сервисов согласно архитектуре платформы. Данные дашборды являются не редактируемыми так как находятся в provisining.

События системного журнала#

События системного журнала — это объекты JSON, отражающие события или действия пользователя:

  • изменение информационных панелей и источников данных;

  • ошибки аутентификации пользователей.

В системном журнале должны публиковаться события следующего вида:

t=2021-03-31T04:33:01Z lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/datasources/proxy/152/api/prom/label status=200 remote_addr=[::1] time_ms=1 size=0 referer="http://localhost:3000/explore?left=%5B%22now-6h%22none%22%5D%7D%5D"
t=2021-03-31T04:33:01Z lvl=eror msg="Request eror" error="{\"error_code\":\"#INDA-0005\",\"error_text\":\"PROVIDER_UNAUTHORIZED\",\"work_mode\":\"abyss\",\"url\":\"http://http://localhost:3000\",\"original_error\":\"\",\"custom_fields\":{\"Project\":\"unimon\",\"User\":\"\"}}"

где t - время события, lvl - тип события (info, error, warn), msg - информация о событии.

Примеры событий

Событие отражает старт приложения и его основные параметры (номер версии и сборки):

t=2022-10-04T05:44:33+0000 lvl=info msg="Starting Grafana" logger=server version=7.5.10 commit=c28c7c1a branch=develop7510 compiled=2022-10-03T16:24:22+0000

Событие отражает успешное подключение к аудиту PVM:

t=2022-10-04T05:44:33+0000 lvl=info msg="Starting audit subsystem send to pvm" logger=audit url=http://url retry_cnt=3 retry_sleep=100 X-Node-ID="ip_host"```

Данные события показывают успешное подключение к БД и начало миграции базы данных:

t=2022-10-04T05:44:34+0000 lvl=info msg="Connecting to DB" logger=sqlstore dbtype=postgres
t=2022-10-04T05:44:34+0000 lvl=info msg="Database subsystem_start_time" logger=sqlstore duration=0.174529

t=2022-10-04T05:44:34+0000 lvl=info msg="Starting DB migrations" logger=migrator
t=2022-10-04T05:44:34+0000 lvl=info msg="migrations completed" logger=migrator performed=0 skipped=298 duration=713.027Вµs```

Событие означающие загрузку плагина при запуске:

t=2022-10-04T05:44:39+0000 lvl=info msg="Registering plugin" logger=plugins id=aiom
t=2022-10-04T05:44:39+0000 lvl=info msg="Service is fully launched" logger=server duration=5372.171479

Событие отражает сработавший алерт:

t=2022-10-04T05:44:51+0000 lvl=info msg="Alert Rule returned no data" logger=alerting.evalContext ruleId=1 name="Panel Title alert" changing state to=alerting

Событие о запросах на панелях, также приведен ошибочное событие с кодом ошибки:

t=2021-03-31T04:33:01Z lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/datasources/proxy/152/api/prom/label status=200 remote_addr=[::1] time_ms=1 size=0 referer="http://localhost:3000/explore?left=%5B%22now-6h%22none%22%5D%7D%5D"
t=2021-03-31T04:33:01Z lvl=eror msg="Request eror" error="{\"error_code\":\"#INDA-0005\",\"error_text\":\"PROVIDER_UNAUTHORIZED\",\"work_mode\":\"abyss\",\"url\":\"http://http://localhost:3000\",\"original_error\":\"\",\"custom_fields\":{\"Project\":\"unimon\",\"User\":\"\"}}"

Событие об ошибках возникающих в datasource:

t=2022-10-04T05:45:04+0000 lvl=eror msg="query error" logger=plugins.backend pluginId=sbt-datasource-abyss error="{\"error_code\":\"#INDA-0003\",\"error_text\":\"PROVIDER_REQUEST_ERROR\",\"work_mode\":\"abyss\",\"url\":\"http://URL:1080/TEST_TempDatasource_Mode_Abyss_Incorrect/index/analytical/task/project/0/query\",\"original_error\":\"http StatusCode:404\",\"custom_fields\":{\"Project\":\"0\",\"User\":\"\"}}"

Событие об отправке сообщения в Логгер:

t=2022-10-05T05:05:06+0000 lvl=info msg=Requesting logger=data-proxy-log url=http://uroute.tribe-om-dev-ulogger-01.apps.stands-vdc01.solution.sbt/journals/user

События мониторинга#

Дашборд Indicator metrics состоит из набора панелей:

Наименование панели / имя метрики

Описание

Тип панели

Общая информация /

Общая информация по запущенному приложению indicator, имя модуля контейнеризации, на котором работает приложение

таблица

Количество дашбордов / grafana_stat_totals_dashboard

Информация о количестве дашбордов

таблица

Количество авторизованных пользователей / grafana_stat_total_users

Информация о количестве пользователей

таблица

Количество активных пользователей / grafana_stat_active_users

Информация о количестве активных пользователей

таблица

Время работы / process_start_time_seconds

Время работы кластера с момента старта (в разрезе "lables.app")

таблица

HTTP запросы (общее количество) / http_request_total

Количество http запросов отправленных приложением Indicator( HTTP request count в разрезе "lables.app")

график

HTTP запросы (общее количество в разрезе методов) / http_request_total

Количество http запросов отправленных приложением Indicator ( HTTP request count в разрезе "lables.app" и методов),

график

HTTP запросы (общее количество в разрезе ошибочных статусов ответа) / http_request_total

Количество http запросов отправленных приложением Indicator с ошибками( HTTP request error count в разрезе "lables.app" и код состояния http: 4xx, 5xx),

график

Суммарная задержка по запросам / http_request_duration_milliseconds_sum

Суммарная длительность http запроса в разрезе "lables.app" и методов

график

HTTP ответы (общее количество в разрезе статусов ответов) / grafana_page_response_status_total

Количество http запросов с ошибками

график

Количество вызовов api / grafana_api_admin_user_created_total,grafana_api_dashboard_snapshot_create_total,grafana_api_dashboard_snapshot_get_total,grafana_api_response_status_total

Количестве запросов к приложению Indicator в разрезе "lables.app"и методов,

график

Использование CPU (общее количество секунд) / container_cpu_usage_seconds_total

Использование процессора кластером за период в сек.

график

Использование памяти контейнерами / container_memory_usage_bytes

Использование памяти контейнерами

график

Метрики Unimon-sender#

В таблице представлены варианты метрик снимаемые модулем Unimon-sender по умолчанию.

Название метрики

Тип метрики

Описание метрики

jvm_threads_states_threads

Метрика

Текущее количество потоков, имеющих статус NEW

jvm_classes_loaded_classes

Метрика

Количество классов, загруженных на данный момент в JVM

process_cpu_usage

Метрика

Процент использования процессора за недавнее время процессом JVM

jvm_memory_used_bytes

Метрика

Объем памяти, используемой JVM

jvm_gc_max_data_size_bytes

Метрика

Максимальный размер пула памяти старого поколения

system_cpu_usage

Метрика

Процент использования процессора за недавнее время всей системой

process_uptime_seconds

Метрика

Время работы JVM

hikaricp_connections_usage_seconds

Метрика

Время использования соединения

hikaricp_connections_usage_seconds_max

Метрика

Максимальное время использования соединения

hikaricp_connections_max

Метрика

Максимальное количество соединений

tomcat_sessions_rejected_sessions_total

Метрика

Общее количество подключений Tomcat, которые не были приняты

tomcat_sessions_active_max_sessions

Метрика

Максимальное количество подключений Tomcat, с момента старта JVM, либо с момента последнего сброса значения данной метрики

hikaricp_connections_active

Метрика

Активные соединения

process_files_open_files

Метрика

Количество открытых файловых дескрипторов

hikaricp_connections

Метрика

Общее количество соединений

hikaricp_connections_timeout_total

Метрика

Общее количество тайм-аутов подключения

hikaricp_connections_min

Метрика

Минимальное количество соединений

jvm_gc_pause_seconds

Метрика

Время GB в паузе в секундах

jvm_gc_pause_seconds_max

Метрика

Максимальное время GB в паузе в секундах

process_start_time_seconds

Метрика

Время начала процесса, в секундах, по систему UNIX Epoch

jvm_threads_peak_threads

Метрика

Максимальное количество активных потоков, зарегистрированное с момента запуска JVM или с момента последнего сброса данного значения

system_cpu_count

Метрика

Количество процессоров, доступных виртуальной машине Java

jvm_memory_committed_bytes

Метрика

Объем памяти в байтах, выделенный для использования виртуальной машиной Java

jvm_threads_states_threads

Метрика

Текущее количество потоков, имеющих статус NEW

jdbc_connections_max

Метрика

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

jvm_buffer_count_buffers

Метрика

Примерное количество буферов в пуле памяти JVM

jdbc_connections_idle

Метрика

Количество установленных, но неработающих соединений

hikaricp_connections_acquire_seconds

Метрика

Время установления соединения

hikaricp_connections_acquire_seconds_max

Метрика

Максимальное время установления соединения

hikaricp_connections_pending

Метрика

Рассмотрение

jvm_threads_live_threads

Метрика

Текущее количество активных потоков, включая демон-потоки

jvm_gc_live_data_size_bytes

Метрика

Размер пула долговременных объектов (old generation) после полного цикла работы сборщика мусора (garbage collector), в байтах

jvm_threads_daemon_threads

Метрика

Текущее количество активных демон-потоков

jvm_classes_unloaded_classes_total

Метрика

Количество выгруженных классов JVM

process_files_max_files

Метрика

Максимальное количество дескрипторов файлов

tomcat_sessions_active_current_sessions

Метрика

Количество подключений Tomcat, активных на данный момент

jvm_gc_memory_allocated_bytes_total

Метрика

Общее количество увеличений пула памяти в пуле "быстрых" (young generation) объектов (Eden Space)

hikaricp_connections_idle

Метрика

Неработающие соединения

tomcat_sessions_expired_sessions_total

Метрика

Общее количество закончившихся по таймауту подключений Tomcat

tomcat_sessions_alive_max_seconds

Метрика

Максимальная продолжительность жизни подключения Tomcat, в секундах

jvm_buffer_total_capacity_bytes

Метрика

Общий объем памяти, доступной для буфера JVM, в байтах

jvm_memory_max_bytes

Метрика

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

jdbc_connections_active

Метрика

Текущее количество активных подключений, выделенных из источника данных

http_server_requests_seconds

Метрика

Длительность http-запроса в секундах

http_server_requests_seconds_max

Метрика

Длительность http-запроса в секундах, максимальная

system_load_average_1m

Метрика

Средняя нагрузка системы на процессоры за 1 мин

jvm_buffer_memory_used_bytes

Метрика

Объем занятой памяти буфером JVM, в байтах

jdbc_connections_min

Метрика

Minimum number of idle connections in the pool

tomcat_sessions_created_sessions_total

Метрика

Общее количество созданных подключений Tomcat

jvm_gc_memory_promoted_bytes_total

Метрика

Общее количество увеличений пула памяти в пуле долговременных (old generation) объектов

logback_events_total

Метрика

Количество событий уровня ошибок, которые попали в журналы

hikaricp_connections_creation_seconds_max

Метрика

Максимальное время создания соединения

hikaricp_connections_creation_seconds

Метрика

Время создания соединения в секундах

Данные метрики можно увидеть на общих дашбордах JVM (Micrometer) и Статистика Spring Boot.

Часто встречающиеся проблемы и пути их устранения#

Ошибка

Описание

Bad Gateway undefined

Данное сообщение возникает при настройке Datasource, информирует о недоступности источника Datasource, необходимо проверить корректность ссылки endpoint

Failed to update datasource

Не удалось обновить Data source, данное сообщение возникает при обновлении настройки Data source, необходимо проверить корректность ссылки endpoint

SMTP not configuerd …

Ошибка возникает при настройке алерта. Администратору необходимо выполнить настройку smtp в конфигурационном файле

Panel plugin not found

Сообщение появляется если на панели не установлен нужный плагин для отображения

Druid - not found

Данное сообщение информирует об отсутствии источника Data source

Error:tsdb.HandleRequest() error could not find executor for datasource type:

Ошибка возникает если 2 экземпляра Platform V Monitor Indicator (INDA) работают с одной БД, проверить настройки конфигурации БД

Выявленные ограничения#

Оповещение по нескольким оповещениям производится однократно по первому срабатыванию.

Пример: В случае если запрос например в разрезе server, и сработает alert по server1, в случае если в этот же период произойдет отклонение по server2 повторного оповещения не будет, т.к. alert уже взведен. Можно только настроить периодичное напоминание (Send Reminders на группе рассылки), в этом случае в письмо добавиться информация о server2.

Алерты не работают в случае если в запросах используются переменные дашборда (кроме $time, $defaultFilter).

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

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

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