Конфигурация Web-приложения

Параметры конфигурации web-приложения системы Центральный Пульт хранятся в конфигурационном файле /etc/saymon/saymon-client.yaml.

Файлы с параметрами конфигурации web-приложения могут храниться в следующих файлах (в порядке снижения приоритета):

  • MongoDB – параметры конфигурации, которые можно изменить через REST API;

  • /etc/saymon/saymon-client.yaml – параметры конфигурации web-приложения в формате YAML (основной файл конфигурации);

  • /etc/saymon/saymon-client.json – параметры конфигурации web-приложения в формате JSON (дополнительный файл конфигурации);

  • ./backend/server/saymon-client-default.yaml – параметры конфигурации web-приложения по умолчанию.

Файл конфигурации с низким приоритетом используется в том случае, если отсутствует файл конфигурации с высоким приоритетом.

Также, параметры конфигурации могут храниться в файле /etc/saymon/client-config.js. Этот способ конфигурации устарел и не должен быть использован с новыми версиями web-приложения.

agentInstallerUrl

Ссылка для скачивания установочного скрипта для агента.

agentInstallerUrl: example.com/saymon-agent-installation.sh
yaml

Ссылка добавляется в сгенерированную команду для установки агента при автоинсталляции.

agent installation command

По умолчанию ссылка не задана.

authEnabled

Включает самостоятельную регистрацию для пользователей;

authEnabled: false
yaml
  • false – регистрация выключена,

  • true – регистрация включена.

По умолчанию – false – регистрация выключена.

authTokenEnabled

Настраивает отображение поля Ссылка для авторизации и кнопки создания токена API в окне настроек пользователя.

authTokenEnabled: false
yaml
  • false – поле выключено,

  • true – поле включено.

По умолчанию – true – поле включено.

authentication

В этой секции можно настроить параметры аутентификации пользователей.

authentication:
  availableMethods:
    - native
    - keycloak
  methodByDefault: keycloak
  services:
    keycloak:
      configUri: keycloak_frontend.json
      legacySupport: false
yaml

authentication.availableMethods

Список доступных методов аутентификации:

  • native – аутентификация по логину и паролю пользователя;

  • keycloak – аутентификация через реквизиты учетной записи пользователя в Keycloak.

По умолчанию – native.

authentication.methodByDefault

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

По умолчанию – native.

authentication.services

Секция с настройками сервисов аутентификации.

authentication.services.keycloak

Секция с настройками аутентификации через реквизиты учетной записи в Keycloak.

authentication.services.keycloak.configUri

Имя файла настроек соединения, сгенерированного Keycloak-сервером для web-приложения.

Файл настроек соединения необходимо разместить на сервере системы Центральный Пульт в каталоге /etc/saymon.

authentication.services.keycloak.legacySupport

Включает поддержку работы с Keycloak-сервером версии ниже 19;

  • false – поддержка работы с Keycloak-сервером версии ниже 19 выключена;

  • true – поддержка работы с Keycloak-сервером версии ниже 19 включена.

По умолчанию – false (работа с Keycloak-сервером версии ниже 19 не поддерживается).

canEditObjectStyle

Включает возможность вручную настраивать CSS-стили для объектов и связей.

canEditObjectStyle: true
yaml

При включении опции в разделе Параметры появляется подраздел Стили (объектов, связей);

При выключении опции, применённые стили не убираются с объектов и связей.
  • false – настройка стилей выключена,

  • true – настройка стилей включена.

По умолчанию – true – настройка стилей включена.

comet

Секция с настройками взаимодействия web-приложения с сервером системы Центральный Пульт через Comet-сервер.

comet:
  port: 8091
  url:
    - "https://cpult.ru/ws"
    - "http://10.78.5.11:8092"
yaml

comet.port

Номер порта, по которому web-приложение подключается к Comet-серверу.

По умолчанию используется порт 8091.

comet.url

Адреса для подключения web-приложения к Comet-серверу из разных сетей. При задании адреса можно использовать IP-адрес, доменное имя или имя хоста. Также дополнительно можно указывать порт.

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

Если задан параметр comet.url, то параметр comet.port игнорируется.

configuration

Секция с настройками окна конфигурации системы.

configuration:
  objectPermissions:
    displayType: tree
yaml

configuration.objectPermissions

configuration.objectPermissions.displayType

Настройки вида отображения списка объектов.

По умолчанию – tree.

collapseSections

Задаёт настройки первоначального отображения секций и графиков;

collapseSections: true
yaml
  • false – секции закреплены, графики раскрыты,

  • true – секции откреплены, графики свёрнуты.

По умолчанию – true – секции откреплены, графики свёрнуты.

defaultClassImage

Позволяет задать стандартное изображение и его размер для объектов определенного класса.

defaultClassImage:
  "29":
    img: /images/cloud.svg
    dim:
      - 300
      - 200
yaml

defaultClassImage.<number>

Идентификатор класса, например, "29".

defaultClassImage.<number>.img

Путь до изображения относительно папки /usr/local/saymon/client/.

Стандартным изображением может быть только векторный файл в формате SVG. Изображения других форматов (например PNG, JPEG или GIF) будут отображаться в окне настройки класса, но не будут отображаться в окне параметров и стандартном виде.

defaultClassImage.<number>.dim

Размер изображения (в пикселях, [ширина, высота]).

По умолчанию – [300, 200]

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

Этот раздел позволяет настроить текст и URL ссылки под виджетом:

embedded graph
defaultEmbeddableLink:
  url: http://cpult.ru/
  name: Центральный Пульт
yaml

URL ссылки под виджетом.

Текст ссылки под виджетом.

defaultPieChartColors

Цвета секторов по умолчанию для круговой и радиальной диаграмм. Если секторов больше чем цветов по умолчанию, цвета начинают повторяться сначала.

defaultPieChartColors:
  - "#a90329"
  - "#3276b1"
  - "#009F3D"
  - "#9868B8"
  - "#F2C001"
  - "#FF742C"
  - "#90574E"
  - "#EB77BE"
  - "#FF9796"
  - "#AAC6E5"
  - "#8BDE90"
  - "#FDB5D0"
yaml

disabledSections

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

disabledSections:
  - audit-log
  - config-log
  ...
yaml

Список всех доступных секций:

По умолчанию – пустой список, все секции включены.

documentation

В этом разделе можно настроить ссылки на различную документацию системы Центральный Пульт.

documentation:
  main:
    root: https://docs.saymon.tech
    ru: https://docs.cpult.ru
  notificationTemplates:
    root: https://docs.saymon.tech/web-interface/system-configuration-window/notification-templates.html
    ru: https://docs.cpult.ru/web-interface/system-configuration-window/notification-templates.html
  restApi:
    root: https://api.cpult.ru
yaml

Ссылки, которые не начинаются с http:// или https:// относительны от адреса сервера системы Центральный Пульт.

Например, следующая конфигурация откроет документацию по адресу http://<saymon-hostname>/documentation/ru:

documentation:
  main:
    root: documentation/ru
yaml

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

  • root/en – английский язык;

  • ru – русский язык;

  • it – итальянский язык.

Например, конфигурация ссылок на документацию REST API для каждого поддерживаемого языка может выглядеть следующим образом:

documentation:
  restApi:
    en: https://docs.saymon.tech
    ru: https://example.com/docs/ru-RU
    it: documentation/Italiano # https://<saymon-hostname>/documentation/Italiano
yaml

documentation.main

Ссылки на пользовательскую документацию.

По умолчанию:

documentation.restApi

Ссылки на документацию по REST API.

По умолчанию (для всех языков) – https://api.cpult.ru

documentation.notificationTemplates

Ссылка на описание шаблонов уведомлений. Документация открывается по нажатию на кнопку "Подробнее" в настройках шаблонов уведомлений:

notification templates docs

По умолчанию – ссылка на статью Шаблоны уведомлений.

enableAnalytics

Включает функционал модуля аналитики;

enableAnalytics: false
yaml
  • false – функционал выключен,

  • true – функционал включен.

По умолчанию – false – функционал выключен.

enableJiraTrigger

Включает возможность создать задачу в Jira при смене состояния объекта.

enableJiraTrigger: false
yaml
  • false – функционал выключен,

  • true – функционал включен.

По умолчанию – false – функционал выключен.

enableConditionalIncidents

Включает функционал генерации аварий;

enableConditionalIncidents: false
yaml
  • false – функционал выключен,

  • true – функционал включен.

По умолчанию – false – функционал выключен.

enableSmsTrigger

Включает использование SMS-уведомлений;

enableSmsTrigger: false
yaml
  • false – SMS-уведомления выключены,

  • true – SMS-уведомления включены.

По умолчанию – false – SMS-уведомления выключены.

enableSnmpTranslate

Включает трансляцию SNMP OID в текстовый формат;

enableSnmpTranslate: false
yaml
  • false – трансляция выключена,

  • true – трансляция включена.

По умолчанию – false – трансляция выключена.

enableVoiceCallTrigger

Включает использование голосовых вызовов;

enableVoiceCallTrigger: false
yaml
  • false – голосовые вызовы выключены,

  • true – голосовые вызовы включены.

По умолчанию – false – голосовые вызовы выключены.

forceEmptyStandardView

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

forceEmptyStandardView:
  - 1
  - 3
  - 13
  - 43
yaml

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

В параметре задаётся список идентификаторов классов, при выборе пустых объектов которых Центральный Пульт переходит в стандартный вид.

По умолчанию:

  • 1 (Root),

  • 3 (Host),

  • 13 (Node),

  • 43 (Dashboard).

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

geoMap

Центральный Пульт позволяет привязывать объекты к их геоположению и просматривать их на карте.

geoMap:
  serverName: openstreetmap.org
  initialPosition:
    - 30.341306
    - 59.930089
  initialZoom: 8
yaml

geoMap.initialPosition

Начальная позиция на карте в формате [долгота, широта].

Позиция указывается как массив из двух значений, где первое значение это широта, а второе – долгота:

initialPosition:
  - 30.341306
  - 59.930089
yaml

По умолчанию – [30.341306,59.930089].

Если указать данные, выходящие за пределы допустимых значений ([0,90] для широты, [0,180] для долготы), то произойдёт ошибка и карта не будет отображаться.

geoMap.initialZoom

Начальный масштаб карты. Допустимые значения - от 2 до 20. При выходе за эти границы, значение ограничивается допустимыми значениями.

По умолчанию – 8.

geoMap.serverName

Имя сервера OpenStreetMap, отвечающего за отображения карты. Имя должно быть указано без протокола, например openstreetmap.org или 192.168.1.10/maps.

По умолчанию – openstreetmap.org

Также можно использовать локальный OSM-сервер.

geoMap.skipModalView

При нажатии на объект в режиме Геокарты пропустить модальное окно и сразу открывать информацию в виде по умолчанию для этого объекта.

grid

В разделе задаются настройки сетки для выравнивания объектов в стандартном виде.

grid
grid:
  dim: 20
  color: rgba(128, 128, 128, 0.3)
  border: 4
yaml

grid.dim

Размер сетки (в пикселях).

Если указано некорректное значение (например, 0 или отрицательное число), то сетка не будет отображаться, но положение объектов будет привязываться к стандартному размеру сетки (20 пикселей).

По умолчанию – 20.

grid.color

Цвет сетки в формате RGBA.

По умолчанию – rgba(128, 128, 128, 0.3).

grid.border

Максимальное значение отступа границы объекта от границы сетки (в пикселях).

Поведение объекта при изменении его размера со стандартными настройками (border: 20, dim: 4):

grid resize border

По умолчанию – 4.

gridView

В разделе задаются параметры отображения объектов в виде сетки.

gridView:
  cols: 6
  colWidth: 240
  rowHeight: 90
  gutterSize: 5
yaml

gridView.cols

Количество объектов в строке сетки.

При gridView.cols > 0 ширина объектов меняется автоматически.

При gridView.cols = 0 число объектов в строке сетки подстраивается под ширину экрана.

По умолчанию – 6.

gridView.colWidth

Ширина объектов при gridView.cols = 0 (в пикселях).

По умолчанию – 240.

gridView.rowHeight

Высота объектов (в пикселях).

По умолчанию – 90.

gridView.gutterSize

Величина отступа между объектами (в пикселях).

По умолчанию – 5.

history

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

history:
  downsampling:
    - period: 1-hours
      dsp: 60s-avg
    - period: 1-days
      dsp: 5m-avg
    - period: 1-weeks
      dsp: 1h-avg
    - dsp: 1d-avg
  modelChangeAnnotations: false
  pagination: false
  paginationLimit: 10
yaml

history.downsampling

Параметры уменьшения размера выборки данных – downsampling.

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

history.downsampling.period

Период выборки данных.

Настройка периода имеет следующий формат:

<количество>-<hours|days|weeks|months>
text

history.downsampling.dsp

Настройка способа даунсэмплинга данных.

Настройка имеет следующий формат:

<количество><префикс-промежутка-времени>-<avg|min|max>
text

Доступные префиксы промежутков времени:

  • s – секунды;

  • m – минуты;

  • h – часы;

  • d – дни.

На примере ниже представлены примеры конфигурации способа даунсэмплинга данных.

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

history:
  downsampling:
    - period: 6-hours
      dsp: 5m-avg
yaml
downsampling 5m avg
Если не указан параметр period, то такой параметр dsp становится параметром по умолчанию для всех периодов, которые не указаны в файле конфигурации.

history.modelChangeAnnotations

Включает смену аннотаций на графиках.

  • false – смена аннотаций выключена,

  • true – смена аннотаций включена.

По умолчанию – false – смена аннотаций выключена.

history.pagination

  • false – постраничный вывод на графиках выключен,

  • true – постраничный вывод на графиках включена.

По умолчанию – false – постраничный вывод на графиках выключен.

history.paginationLimit

Количество графиков на одной странице.

По умолчанию – 10.

hideConnectionStatusNotifications

Скрывает оповещения о статусе соединения с Comet-сервером;

hideConnectionStatusNotifications: false
yaml
  • false – оповещения выводятся в web-интерфейс,

  • true – оповещения выводятся в консоль.

По умолчанию – false – оповещения о статусе соединения с Comet-сервером выводятся в web-интерфейс.

hideResponseErrorNotifications

Скрывает оповещения об ошибках, возникающих при отправке автоматических запросов на сервер.

hideResponseErrorNotifications: false
yaml
  • false – оповещения выводятся в web-интерфейс,

  • true – оповещения скрыты.

По умолчанию – false – оповещения выводятся в web-интерфейс.

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

incidents

В этом разделе настраиваются дополнительные поля для списков активных аварий и исторических аварий.

incidents:
  additionalFields:
    - owner.properties.address
    - owner.class_id
    - updated
  additionalFieldNames:
    - IP-address
    - Object Class ID
yaml

incidents.additionalFields

Источники данных для дополнительных полей.

Источником дополнительного поля может быть любой параметр аварии. Поля параметров-объектов нужно указывать через точку. Например, чтобы указать Свойство address объекта, на котором произошла авария в список additionalFields нужно добавить значение owner.properties.address.

Список всех параметров можно посмотреть в документации REST API.

Только свойства с type_id = 1 (свойства, добавленные через окно Свойство или через REST API) можно использовать как источники данных. Нельзя добавлять встроенные параметры и параметры сенсора, например TaskType или PingHost, а также ссылки, добавленные как Документы.
Если источнику данных не соответствует имя поля в списке additionalFieldNames, то в заголовке столбца будет указано название источника данных.

incidents.additionalFieldNames

Имена дополнительных полей, отображаемые в интерфейсе.

Список имён соотносится со списком источников данных. То есть, первому источнику в списке additionalFields соответствует первое имя в списке additionalFieldNames, второму – второе и так далее.

Количество имён может не совпадать с количеством источников данных. Если источнику данных не соответствует имя поля, то в заголовке столбца будет указано название источника данных.

Чтобы пропустить источник данных и использовать название источника данных, нужно записать null или false.

Например, следующая конфигурация добавит в списки аварий столбцы localTimestamp, 'Owner ID', IP Address и owner.class_id:

incidents:
  additionalFields:
    - localTimestamp
    - owner._id
    - owner.properties.address
    - timestamp
    - owner.class_id
  additionalFieldNames:
    - false
    - IP-address
    - Object Class ID
yaml

languages

Раздел позволяет управлять предустановленными языками интерфейса web-приложения.

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

languages:
  en:
    short: us
    long: English
  ru:
    short: ru
    long: Русский
  it:
    short: it
    long: Italiano
yaml

languages.<id>

Идентификатор языка.

Доступны три языка:

  • en – английский,

  • it – итальянский,

  • ru – русский.

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

languages.<id>.long

Полное название языка.

Это название отображается в меню текущего пользователя интерфейса системы Центральный Пульт при выборе языка интерфейса.

languages.<id>.short

Идентификатор иконки флага.

Иконка отображается в меню текущего пользователя интерфейса системы Центральный Пульт при выборе языка интерфейса.

image – es,

image – gb,

image – it,

image – ru,

image – us.

Если указать несуществующий или некорректный идентификатор, то будет использован флаг spain.

monitoring

В этом разделе настраивается скрытие стандартных мониторинговых сенсоров из интерфейса.

Если этот раздел не задан в файле конфигурации, то в интерфейсе отображаются все стандартные сенсоры.

monitoring:
  standardTasks:
    - ping
    - snmpGet
yaml

monitoring.standardTasks

Список идентификаторов отображаемых стандартных сенсоров. Список идентификаторов можно посмотреть в разделе Список идентификаторов стандартных сенсоров.

millisecondMonitoring

Включает обновление данных каждую миллисекунду.

millisecondMonitoring: false
yaml
  • false – обновление выключено,

  • true – обновление включено.

По умолчанию – false – обновление выключено.

pollInterval

Интервал между запросами данных с REST-сервера, если соединение между клиентом и Comet-сервером недоступно (в миллисекундах).

pollInterval: 5000
yaml

По умолчанию – 5000 – 5 секунд.

pollIntervalSocket

Интервал между запросами данных с Comet-сервера, если соединение между клиентом и Comet-сервером доступно (в миллисекундах).

pollIntervalSocket: 60000
yaml

По умолчанию – 60000 – 1 минута.

statHistory

Отображать кнопку "Показать историю данных".

statHistory: false
yaml
  • true – кнопка включена,

  • false – кнопка выключена.

Параметр серверной конфигурации agent_stat должен быть включён.

По умолчанию – false

title

Заголовок для вкладок, а также имя, отображаемое в левом верхнем углу web-интерфейса.

title: "SAYMON"
yaml

По умолчанию – SAYMON.

themes

Этот параметр отвечает за настройку тем.

themes:
  default:
    name: Light
  dark:
    name: Dark
yaml

CSS-файлы с темами находятся в директории /usr/local/saymon/client/css.

По умолчанию доступно две темы – светлая (default) и тёмная (dark).

Чтобы добавить новую тему, нужно создать в директории с темами новую папку (например, my-custom-theme). Затем, добавить эту папку в файл конфигурации:

themes:
  my-custom-theme:
    name: Custom Theme
yaml

themes.<theme-name>.name

Название темы нельзя локализовать на разные языки.

tree

В этом разделе задаются настройки для дерева объектов.

tree:
  filterSubmit: true
yaml

tree.filterSubmit

Включает кнопку применения фильтра и отключает его автоматическое применение при вводе символов.

Кнопка применения фильтра отображается рядом с кнопкой сброса фильтра при вводе нового фильтра:

filter submit button search
  • false – кнопка выключена,

  • true – кнопка включена.

По умолчанию – false – кнопка выключена.

useNaturalSort

Включает сортировку объектов с помощью библиотеки javascript-natural-sort:

useNaturalSort: false
yaml
  • false – объекты сортируются с помощью нативных функций браузера,

  • true – объекты сортируются с помощью библиотеки javascript-natural-sort.

По умолчанию – false – объекты сортируются с помощью нативных функций браузера.

При установленном useNaturalSort = true возможно замедление работы web-интерфейса при большом количестве объектов в системе (от 100 000).