Конфигурация Web-приложения
Параметры конфигурации web-приложения Центрального пульта хранятся в конфигурационном файле /etc/saymon/saymon-client.yaml
.
Файлы с параметрами конфигурации web-приложения могут храниться в следующих файлах (в порядке снижения приоритета):
Файл конфигурации с низким приоритетом используется в том случае, если отсутствует файл конфигурации с высоким приоритетом. |
Также, параметры конфигурации могут храниться в файле /etc/saymon/client-config.js
. Этот способ конфигурации устарел и не должен быть использован с новыми версиями web-приложения.
agentInstallerUrl
Ссылка для скачивания установочного скрипта для агента.
-
YAML
-
JSON
agentInstallerUrl: example.com/saymon-agent-installation.sh
{
"agentInstallerUrl": "example.com/saymon-agent-installation.sh",
...
}
Ссылка добавляется в сгенерированную команду для установки агента при автоинсталляции.

По умолчанию ссылка не задана.
authEnabled
Включает самостоятельную регистрацию для пользователей;
-
YAML
-
JSON
authEnabled: false
{
"authEnabled": false,
...
}
-
false – регистрация выключена,
-
true – регистрация включена.
По умолчанию – false – регистрация выключена.
authTokenEnabled
Настраивает отображение поля Ссылка для авторизации и кнопки создания токена API в окне настроек пользователя.
-
YAML
-
JSON
authTokenEnabled: false
{
"authTokenEnabled": false,
...
}
-
false – поле выключено,
-
true – поле включено.
По умолчанию – true – поле включено.
authentication
В этой секции можно настроить параметры аутентификации пользователей.
-
YAML
-
JSON
authentication:
availableMethods:
- native
- keycloak
methodByDefault: keycloak
services:
keycloak:
configUri: keycloak_frontend.json
legacySupport: false
{
"authentication": {
"availableMethods": [
"native",
"keycloak"
],
"methodByDefault": "keycloak",
"services": {
"keycloak": {
"configUri": "keycloak_frontend.json",
"legacySupport": false
}
}
}
}
authentication.availableMethods
Список доступных методов аутентификации:
-
native – аутентификация по логину и паролю пользователя;
-
keycloak – аутентификация через реквизиты учетной записи пользователя в Keycloak.
По умолчанию – native.
authentication.methodByDefault
Метод аутентификации, который используется по умолчанию.
По умолчанию – native.
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-стили для объектов и связей.
-
YAML
-
JSON
canEditObjectStyle: true
{
"canEditObjectStyle": true,
...
}
При выключении опции, применённые стили не убираются с объектов и связей. |
-
false – настройка стилей выключена,
-
true – настройка стилей включена.
По умолчанию – true – настройка стилей включена.
comet
Секция с настройками взаимодействия web-приложения с сервером Центрального Пульта через Comet-сервер.
-
YAML
-
JSON
comet:
port: 8091
url:
- "https://cpult.ru/ws"
- "http://10.78.5.11:8092"
{
"comet": {
"port": 8091,
"url": [
"https://cpult.ru/ws",
"http://10.78.5.11:8092"
]
}
}
comet.port
Номер порта, по которому web-приложение подключается к Comet-серверу.
По умолчанию используется порт 8091.
comet.url
Адреса для подключения web-приложения к Comet-серверу из разных сетей. При задании адреса можно использовать IP-адрес, доменное имя или имя хоста. Также дополнительно можно указывать порт.
Если задано несколько адресов, то при установке подключения осуществляется их перебор до успешной установки соединения. Адрес выбирается случайным образом.
Если задан параметр comet.url, то параметр comet.port игнорируется. |
configuration
Секция с настройками окна конфигурации системы.
-
YAML
-
JSON
configuration:
objectPermissions:
displayType: tree
{
"configuration": {
"objectPermissions": {
"displayType": "tree"
}
}
}
configuration.objectPermissions
Настройки доступа к объектам.
configuration.objectPermissions.displayType
Настройки вида отображения списка объектов.
-
tree
– интерфейс управления правами в виде дерева всех объектов в системе, -
simple
– упрощённый интерфейс управления правами доступа к объектам.
По умолчанию – tree
.
defaultClassImage
Позволяет задать стандартное изображение и его размер для объектов определенного класса.
-
YAML
-
JSON
defaultClassImage:
"29":
img: /images/cloud.svg
dim:
- 300
- 200
{
"defaultClassImage": {
"29": {
"img": "/images/cloud.svg",
"dim": [
156,
104
]
}
}
}
defaultClassImage.<number>.img
Путь до изображения относительно папки /usr/local/saymon/client/
.
Стандартным изображением может быть только векторный файл в формате SVG. Изображения других форматов (например PNG, JPEG или GIF) будут отображаться в окне настройки класса, но не будут отображаться в окне параметров и стандартном виде. |
defaultEmbeddableLink
Настройка ссылки под встраиваемым виджетом, которая генерируется по умолчанию. При встраивании, эту ссылку можно изменить.
Этот раздел позволяет настроить текст и URL ссылки под виджетом:

-
YAML
-
JSON
defaultEmbeddableLink:
url: http://cpult.ru/
name: Центральный Пульт
{
"defaultEmbeddableLink": {
"url": "http://cpult.ru/",
"name": "Центральный Пульт"
},
}
defaultPieChartColors
Цвета секторов по умолчанию для круговой и радиальной диаграмм. Если секторов больше чем цветов по умолчанию, цвета начинают повторяться сначала.
-
YAML
-
JSON
defaultPieChartColors:
- "#a90329"
- "#3276b1"
- "#009F3D"
- "#9868B8"
- "#F2C001"
- "#FF742C"
- "#90574E"
- "#EB77BE"
- "#FF9796"
- "#AAC6E5"
- "#8BDE90"
- "#FDB5D0"
{
"defaultPieChartColors": [
"#a90329",
"#3276b1",
"#009F3D",
"#9868B8",
"#F2C001",
"#FF742C",
"#90574E",
"#EB77BE",
"#FF9796",
"#AAC6E5",
"#8BDE90",
"#FDB5D0"
]
}
disabledSections
Позволяет удалить секции, которые показываются при подробном отображении объекта в верхней части экрана.
-
YAML
-
JSON
disabledSections:
- audit-log
- config-log
...
{
"disabledSections": [
"audit-log",
"config-log",
...
]
}
Список всех доступных секций:
-
audit-log (История изменений),
-
config-log (Изменения конфигурации),
-
documents (Документы),
-
entity-incident-conditions (Условия генерации аварий),
-
entity-state-conditions (Условия перехода состояний),
-
history-graph (Графики),
-
monitoring (Мониторинг),
-
operations (Операции),
-
properties (Свойства),
-
stat (Данные),
-
stat-rules (Правила формирования данных),
-
state-history (История состояний),
-
state-triggers (Действия при смене состояний),
-
widgets (Виджеты).
По умолчанию – пустой список, все секции включены.
documentation
В этом разделе можно настроить ссылки на различную документацию для Центрального Пульта.
-
YAML
-
JSON
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
"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"
}
}
Ссылки, которые не начинаются с Например, следующая конфигурация откроет документацию по адресу
|
Для каждого поддерживаемого языка можно задать свою ссылку:
-
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
documentation.main
Ссылки на пользовательскую документацию.
По умолчанию:
-
https://docs.saymon.tech (английский и итальянский);
-
https://docs.cpult.ru (русский).
documentation.restApi
Ссылки на документацию по REST API.
По умолчанию (для всех языков) – https://api.cpult.ru
documentation.notificationTemplates
Ссылка на описание шаблонов уведомлений. Документация открывается по нажатию на кнопку "Подробнее" в настройках шаблонов уведомлений:

По умолчанию – ссылка на статью Шаблоны уведомлений.
enableAnalytics
Включает функционал модуля аналитики;
-
YAML
-
JSON
enableAnalytics: false
{
"enableAnalytics": false,
...
}
-
false – функционал выключен,
-
true – функционал включен.
По умолчанию – false – функционал выключен.
enableJiraTrigger
Включает возможность создать задачу в Jira при смене состояния объекта.
-
YAML
-
JSON
enableJiraTrigger: false
{
"enableJiraTrigger": false,
...
}
-
false – функционал выключен,
-
true – функционал включен.
По умолчанию – false – функционал выключен.
enableConditionalIncidents
Включает функционал генерации аварий;
-
YAML
-
JSON
enableConditionalIncidents: false
{
"enableConditionalIncidents": false,
...
}
-
false – функционал выключен,
-
true – функционал включен.
По умолчанию – false – функционал выключен.
enableSmsTrigger
Включает использование SMS-уведомлений;
-
YAML
-
JSON
enableSmsTrigger: false
{
"enableSmsTrigger": false,
...
}
-
false – SMS-уведомления выключены,
-
true – SMS-уведомления включены.
По умолчанию – false – SMS-уведомления выключены.
enableSnmpTranslate
Включает трансляцию SNMP OID в текстовый формат;
-
YAML
-
JSON
enableSnmpTranslate: false
{
"enableSnmpTranslate": false,
...
}
-
false – трансляция выключена,
-
true – трансляция включена.
По умолчанию – false – трансляция выключена.
enableVoiceCallTrigger
Включает использование голосовых вызовов;
-
YAML
-
JSON
enableVoiceCallTrigger: false
{
"enableVoiceCallTrigger": false,
...
}
-
false – голосовые вызовы выключены,
-
true – голосовые вызовы включены.
По умолчанию – false – голосовые вызовы выключены.
forceEmptyStandardView
Список классов для которых пользовательский интерфейс будет по умолчанию открывать стандартный вид, даже при отсутствии дочерних объектов.
-
YAML
-
JSON
forceEmptyStandardView:
- 1
- 3
- 13
- 43
{
"forceEmptyStandardView": [
1,
3,
13,
43
]
}
При выборе объекта, в том числе не содержащего вложенных объектов, Центральный Пульт по умолчанию показывает для него подробную информацию.
В параметре задаётся список идентификаторов классов, при выборе пустых объектов которых Центральный Пульт переходит в стандартный вид.
По умолчанию:
-
1 (Root),
-
3 (Host),
-
13 (Node),
-
43 (Dashboard).
Система запоминает последний выбранный вид отображения для каждого объекта в локальном хранилище браузера. Если этот вид отличается от стандартного, то система выбирает последний выбранный вид. |
geoMap
Центральный Пульт позволяет привязывать объекты к их геоположению и просматривать их на карте.
-
YAML
-
JSON
geoMap:
serverName: openstreetmap.org
initialPosition:
- 30.341306
- 59.930089
initialZoom: 8
{
"geoMap": {
"serverName": "openstreetmap.org",
"initialPosition": [
30.341306,
59.930089
],
"initialZoom": 8
}
}
geoMap.initialPosition
Начальная позиция на карте в формате [долгота, широта].
Позиция указывается как массив из двух значений, где первое значение это широта, а второе – долгота:
-
YAML
-
JSON
initialPosition:
- 30.341306
- 59.930089
"initialPosition": [
30.341306,
59.930089
],
По умолчанию – [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
В разделе задаются настройки сетки для выравнивания объектов в стандартном виде.

-
YAML
-
JSON
grid:
dim: 20
color: rgba(128, 128, 128, 0.3)
border: 4
{
"grid": {
"dim": 20,
"color": "rgba(128, 128, 128, 0.3)",
"border": 4
}
}
gridView
В разделе задаются параметры отображения объектов в виде сетки.
-
YAML
-
JSON
gridView:
cols: 6
colWidth: 240
rowHeight: 90
gutterSize: 5
{
"gridView": {
"cols": 6,
"colWidth": 240,
"rowHeight": 90,
"gutterSize": 5
}
}
history
В этом разделе задаются параметры, отвечающие за отображение данных на графиках, а также активируются некоторые дополнительные элементы интерфейса.
-
YAML
-
JSON
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
{
"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
}
}
history.downsampling
Параметры уменьшения размера выборки данных – downsampling.
Если в файл конфигурации добавлен раздел downsampling , то значения по умолчанию не используются. Если сервер не найдёт подходящие настройки даунсэмплинга, то вместо графика будет показана ошибка "Нет данных для выбранного диапазона".
|
history.downsampling.period
Период выборки данных.
Настройка периода имеет следующий формат:
<количество>-<hours|days|weeks|months>
history.downsampling.dsp
Настройка способа даунсэмплинга данных.
Настройка имеет следующий формат:
<количество><префикс-промежутка-времени>-<avg|min|max>
Доступные префиксы промежутков времени:
-
s
– секунды; -
m
– минуты; -
h
– часы; -
d
– дни.
На примере ниже представлены примеры конфигурации способа даунсэмплинга данных.
-
"dsp: 5m-avg"
-
"dsp: 15s-avg"
При следующей конфигурации, при выбранном врменном диапазоне в 6 часов, на графике будут отображены средние значения за каждые 5 минут.
history:
downsampling:
- period: 6-hours
dsp: 5m-avg

При следующей конфигурации, при выбранном временном диапазоне в 6 часов, на графике будут отображены средние значения за каждые 15 секунд.
history:
downsampling:
- period: 6-hours
dsp: 15s-avg

Если не указан параметр period , то такой параметр dsp становится параметром по умолчанию для всех периодов, которые не указаны в файле конфигурации.
|
hideConnectionStatusNotifications
Скрывает оповещения о статусе соединения с Comet-сервером;
-
YAML
-
JSON
hideConnectionStatusNotifications: false
{
"hideConnectionStatusNotifications": false,
...
}
-
false – оповещения выводятся в web-интерфейс,
-
true – оповещения выводятся в консоль.
По умолчанию – false – оповещения о статусе соединения с Comet-сервером выводятся в web-интерфейс.
hideResponseErrorNotifications
Скрывает оповещения об ошибках, возникающих при отправке автоматических запросов на сервер.
-
YAML
-
JSON
hideResponseErrorNotifications: false
{
"hideResponseErrorNotifications": false,
...
}
-
false – оповещения выводятся в web-интерфейс,
-
true – оповещения скрыты.
По умолчанию – false – оповещения выводятся в web-интерфейс.
Ошибки, возникающие при действиях пользователя, например сохранение каких-либо данных в формах, будут выводиться в web-интерфейс в любом случае. |
incidents
В этом разделе настраиваются дополнительные поля для списков активных аварий и исторических аварий.
-
YAML
-
JSON
incidents:
additionalFields:
- owner.properties.address
- owner.class_id
- updated
additionalFieldNames:
- IP-address
- Object Class ID
{
"incidents": {
"additionalFields": [
"owner.properties.address",
"owner.class_id",
"updated"
],
"additionalFieldNames": [
"IP-address",
"Object Class ID"
]
}
}
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
languages
Раздел позволяет управлять предустановленными языками интерфейса web-приложения.
По умолчанию, в системе доступен только русский язык. Для включения других языков, их все нужно в явном виде указать в файле конфигурации.
-
YAML
-
JSON
languages:
en:
short: us
long: English
ru:
short: ru
long: Русский
it:
short: it
long: Italiano
{
"languages": {
"en": {
"short": "us",
"long": "English"
},
"ru": {
"short": "ru",
"long": "Русский"
},
"it": {
"short": "it",
"long": "Italiano"
}
}
}
languages.<id>
Идентификатор языка.
Доступны три языка:
-
en – английский,
-
it – итальянский,
-
ru – русский.
Если указать другой язык, то он добавится в список языков в меню текущего пользователя, но будет использовать английскую локализацию. |
languages.<id>.long
Полное название языка.
Это название отображается в меню текущего пользователя Центрального Пульта при выборе языка интерфейса.
languages.<id>.short
Идентификатор иконки флага.
Иконка отображается в меню текущего пользователя Центрального Пульта при выборе языка интерфейса.
– es,
– gb,
– it,
– ru,
– us.
Если указать несуществующий или некорректный идентификатор, то будет использован флаг ![]() |
monitoring
В этом разделе настраивается скрытие стандартных мониторинговых сенсоров из интерфейса.
Если этот раздел не задан в файле конфигурации, то в интерфейсе отображаются все стандартные сенсоры.
-
YAML
-
JSON
monitoring:
standardTasks:
- ping
- snmpGet
{
"monitoring": {
"standardTasks": [
"ping",
"snmpGet"
]
}
}
monitoring.standardTasks
Список идентификаторов отображаемых стандартных сенсоров. Список идентификаторов можно посмотреть в разделе Список идентификаторов стандартных сенсоров.
millisecondMonitoring
Включает обновление данных каждую миллисекунду.
-
YAML
-
JSON
millisecondMonitoring: false
{
"millisecondMonitoring": false,
...
}
-
false – обновление выключено,
-
true – обновление включено.
По умолчанию – false – обновление выключено.
pollInterval
Интервал между запросами данных с REST-сервера, если соединение между клиентом и Comet-сервером недоступно (в миллисекундах).
-
YAML
-
JSON
pollInterval: 5000
{
"pollInterval": 5000,
...
}
По умолчанию – 5000 – 5 секунд.
pollIntervalSocket
Интервал между запросами данных с Comet-сервера, если соединение между клиентом и Comet-сервером доступно (в миллисекундах).
-
YAML
-
JSON
pollIntervalSocket: 60000
{
"pollIntervalSocket": 60000,
...
}
По умолчанию – 60000 – 1 минута.
statHistory
Отображать кнопку "Показать историю данных".
-
YAML
-
JSON
statHistory: false
{
"statHistory": false,
...
}
-
true – кнопка включена,
-
false – кнопка выключена.
Параметр серверной конфигурации agent_stat должен быть включён. |
По умолчанию – false
title
Заголовок для вкладок, а также имя, отображаемое в левом верхнем углу web-интерфейса.
-
YAML
-
JSON
title: "SAYMON"
{
"title": "SAYMON",
...
}
По умолчанию – SAYMON.
themes
Этот параметр отвечает за настройку тем.
-
YAML
-
JSON
themes:
default:
name: Light
dark:
name: Dark
{
"themes": {
"default": {
"name": "Light"
},
"dark": {
"name": "Dark"
}
}
}
CSS-файлы с темами находятся в директории /usr/local/saymon/client/css
.
По умолчанию доступно две темы – светлая (default
) и тёмная (dark
).
Чтобы добавить новую тему, нужно создать в директории с темами новую папку (например, my-custom-theme
). Затем, добавить эту папку в файл конфигурации:
-
YAML
-
JSON
themes:
my-custom-theme:
name: Custom Theme
{
"themes": {
"my-custom-theme": {
"name": "Custom Theme"
}
}
}
themes.<theme-name>.name
Название темы в меню текущего пользователя.
Название темы нельзя локализовать на разные языки. |
tree
В этом разделе задаются настройки для дерева объектов.
-
YAML
-
JSON
tree:
filterSubmit: true
{
"tree": {
"filterSubmit": true
},
}
tree.filterSubmit
Включает кнопку применения фильтра и отключает его автоматическое применение при вводе символов.
Кнопка применения фильтра отображается рядом с кнопкой сброса фильтра при вводе нового фильтра:

-
false – кнопка выключена,
-
true – кнопка включена.
По умолчанию – false – кнопка выключена.
useNaturalSort
Включает сортировку объектов с помощью библиотеки javascript-natural-sort:
-
YAML
-
JSON
useNaturalSort: false
{
"useNaturalSort": false,
...
}
-
false – объекты сортируются с помощью нативных функций браузера,
-
true – объекты сортируются с помощью библиотеки javascript-natural-sort.
По умолчанию – false – объекты сортируются с помощью нативных функций браузера.
При установленном useNaturalSort = true возможно замедление работы web-интерфейса при большом количестве объектов в системе (от 100 000). |