Web application configuration
Configuration parameters of SAYMON web application are stored in the configuration file /etc/saymon/saymon-client.yaml
.
Web application configuration files can be stored in the following locations (in descending order of priority):
A lower priority configuration file is used if there is no higher priority configuration file. |
agentInstallerUrl
A URL of the agent installation script.
-
YAML
-
JSON
agentInstallerUrl: example.com/saymon-agent-installation.sh
{
"agentInstallerUrl": "example.com/saymon-agent-installation.sh",
...
}
The specified link is added to the generated agent installation command during the autoinstallation process.
By default, this link is not set.
authEnabled
Enables manual registration for users;
-
YAML
-
JSON
authEnabled: false
{
"authEnabled": false,
...
}
-
false – registration is disabled,
-
true – registration is enabled.
Default – false – registration is disabled.
authTokenEnabled
Configures whether to display the Authorization link field and the button that generates an API token in the user configuration window.
-
YAML
-
JSON
authTokenEnabled: false
{
"authTokenEnabled": false,
...
}
-
false – field disabled,
-
true – field enabled.
Default – true – field enabled.
authentication
In this section, you can configure user authentication parameters.
-
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
List of available user authentication methods:
-
"native" – username and password authentication
-
"keycloak" – authentication via Keycloak
By default – "native".
authentication.methodByDefault
Authentication method that is used by default.
By default "native" is used.
authentication.services.keycloak
Section with parameters for authentication via Keycloak.
canEditObjectStyle
It allows to configure CSS styles for objects and links.
-
YAML
-
JSON
canEditObjectStyle: true
{
"canEditObjectStyle": true,
...
}
When you disable this option, applied styles remain on objects and links. |
-
false – style configuration is disabled,
-
true – style configuration is enabled.
Default – true – style configuration is enabled.
comet
Section with parameters that define interaction between the web application and Saymon via the Comet server.
-
YAML
-
JSON
comet:
port: 8091
url:
- "https://example.com/ws"
- "http://10.78.5.11:8092"
{
"comet": {
"port": 8091,
"url": [
"https://example.com/ws",
"http://10.78.5.11:8092"
]
}
}
comet.port
Port number that the web application uses to connect to the Comet server.
Port 8091 is used by default.
comet.url
Address for connecting the web application to the Comet server from different networks. You can set the address of the server by its IP address, domain name or host name. Additionally, you can specify the port.
If multiple connections are specified in the configuration, client tries to connect to each specified address until it established a connection. Address is selected randomly.
If the comet.url parameter is specified, then the comet.port parameter is ignored. |
configuration
Section with system configuration window parameters.
-
YAML
-
JSON
configuration:
objectPermissions:
displayType: tree
{
"configuration": {
"objectPermissions": {
"displayType": "tree"
}
}
}
configuration.objectPermissions
Object access settings.
configuration.objectPermissions.displayType
Object access menu display settings.
-
tree
– Display object access menu as a tree of all objects in the system, -
simple
– Display a simplified object access interface.
Default value – tree
.
defaultClassImage
This option allows you to set a standard icon and its size for objects of a particular class.
-
YAML
-
JSON
defaultClassImage:
"29":
img: /images/cloud.svg
dim:
- 300
- 200
{
"defaultClassImage": {
"29": {
"img": "/images/cloud.svg",
"dim": [
156,
104
]
}
}
}
defaultClassImage.<number>.img
Path to the image relative to the directory where the configuration file is located.
Only SVG file can be set as a default class image. Images in other formats (for example, PNG, JPEG, or GIF) will be displayed in the class setting image, but won’t be displayed in the object parameters window and standard view. |
defaultEmbeddableLink
Configuration of a default link in an embedded widget. You can change this link in the generated code of the widget later.
This section allows to configure text and URL of the link in an embedded widget:
-
YAML
-
JSON
defaultEmbeddableLink:
url: http://saymon.info/
name: SAYMON
{
"defaultEmbeddableLink": {
"url": "http://saymon.info/",
"name": "SAYMON"
},
}
defaultPieChartColors
Default colors for pie chart (Circle) and radial chart. If there are more sectors than default colors, colors would loop.
-
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
It allows to remove sections shown in the End view in the upper part of the screen.
-
YAML
-
JSON
disabledSections:
- audit-log
- config-log
...
{
"disabledSections": [
"audit-log",
"config-log",
...
]
}
The list of all available sections:
-
audit-log (Change log),
-
config-log (Configuration changes),
-
documents (Documents),
-
entity-incident-conditions (Alarm generation conditions),
-
entity-state-conditions (State change conditions),
-
history-graph (Graphs),
-
monitoring (Monitoring),
-
operations (Operations),
-
properties (Properties),
-
stat (Data),
-
stat-rules (Data forming rules),
-
state-history (State history),
-
state-triggers (Actions on state changes),
-
widgets (Widgets).
By default – empty array, all sections are enabled.
documentation
This section allows you to set links to SAYMON documentation.
-
YAML
-
JSON
documentation:
main:
root: https://docs.saymon.tech
notificationTemplates:
root: https://docs.saymon.tech/web-interface/system-configuration-window/notification-templates.html
restApi:
root: https://api.saymon.tech
"documentation": {
"main": {
"root": "https://docs.saymon.tech"
},
"notificationTemplates": {
"root": "https://docs.saymon.tech/web-interface/system-configuration-window/notification-templates.html"
},
"restApi": {
"root": "https://api.saymon.tech"
}
}
Links that don’t start with For example, the following configuration links to the documentation stored at the
|
You can set a documentation for each of the supported languages:
-
root
/en
– English; -
it
– Italian.
For example, you can configure links to REST API for each language the following way:
documentation:
restApi:
en: https://docs.saymon.tech
it: documentation/Italiano # https://<saymon-hostname>/documentation/Italiano
documentation.notificationTemplates
Link to the description of the notification templates. Documentation opens when you click the "More info" button in the notification templates settings:
By default – link to the Notification templates article.
enableAnalytics
Enables the analytics module functionality;
-
YAML
-
JSON
enableAnalytics: false
{
"enableAnalytics": false,
...
}
-
false – analytics disabled,
-
true – analytics enabled.
Default – false – analytics disabled.
enableJiraTrigger
Enables creation of a Jira task on object’s state change.
-
YAML
-
JSON
enableJiraTrigger: false
{
"enableJiraTrigger": false,
...
}
-
false – functionality is disabled,
-
true – functionality is enabled.
Default – false – functionality is disabled.
enableConditionalIncidents
Enables the incident generation functionality;
-
YAML
-
JSON
enableConditionalIncidents: false
{
"enableConditionalIncidents": false,
...
}
-
false – functionality is disabled,
-
true – functionality is enabled.
Default – false – functionality is disabled.
enableSmsTrigger
Enables SMS-notifications;
-
YAML
-
JSON
enableSmsTrigger: false
{
"enableSmsTrigger": false,
...
}
-
false – SMS-notifications are disabled,
-
true – SMS-notifications are enabled.
Default – false – SMS-notifications are disabled.
enableSnmpTranslate
It enables translation of numeric SNMP OIDs to the text format;
-
YAML
-
JSON
enableSnmpTranslate: false
{
"enableSnmpTranslate": false,
...
}
-
false – translation is disabled,
-
true – translation is enabled.
Default – false – translation is disabled.
enableVoiceCallTrigger
Enables voice notifications;
-
YAML
-
JSON
enableVoiceCallTrigger: false
{
"enableVoiceCallTrigger": false,
...
}
-
false – voice notifications are disabled,
-
true – voice notifications are enabled.
Default – false – voice notifications are disabled.
forceEmptyStandardView
List of classes for which the UI will show standard view by default, even if the object of the specified class has no children.
-
YAML
-
JSON
forceEmptyStandardView:
- 1
- 3
- 13
- 43
{
"forceEmptyStandardView": [
1,
3,
13,
43
]
}
By default, when an object is selected, SAYMON shows its End view, even if the object does not contain other objects.
The list of Class IDs, for which SAYMON will display the Standard view if the selected object is empty, can be set in this parameter.
By default:
-
1 (Root),
-
3 (Host),
-
13 (Node),
-
43 (Dashboard).
System stores the last selected for each object in the browser’s local storage. The last selected view is preferred to the default one. |
geoMap
SAYMON allows to link objects to their geographical location and browse them on a map.
geoMap:
serverName: openstreetmap.org
initialPosition:
- 30.341306
- 59.930089
initialZoom: 8
geoMap.initialPosition
Initial position on the map. Format value is [longitude, latitude].
Position is set as an array of two values, where the first value is longitude and the second is latitude:
-
YAML
-
JSON
initialPosition:
- 30.341306
- 59.930089
"initialPosition": [
30.341306,
59.930089
],
By default – [30.341306,59.930089].
If you set values that go out of range of valid values ([0,90] for latitude, [0,180] for longitude), the map would not load. |
geoMap.initialZoom
Initial zoom of the map. Possible values are from 2 to 20. If you specify the value outside of this range, the zoom value is clamped.
Default – 8.
geoMap.serverName
Name of the server used for displaying the map. Name should be specified without the protocol, for example, openstreetmap.org
or 192.168.1.10/maps
.
Default – openstreetmap.org.
You can also use a local OSM server.
grid
This section allows to set a grid for objects alignment in the Standard view.
grid:
dim: 20
color: rgba(128, 128, 128, 0.3)
border: 4
gridView
This section contains parameters of displaying objects in the Grid view.
-
YAML
-
JSON
gridView:
cols: 6
colWidth: 240
rowHeight: 90
gutterSize: 5
{
"gridView": {
"cols": 6,
"colWidth": 240,
"rowHeight": 90,
"gutterSize": 5
}
}
history
This section contains parameters for displaying data on graphs, as well as some additional interface elements, used for plotting.
-
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 parameters.
If you add a downsampling section in the configuration file, default values are not used. If the server cannot find an appropriate setting for the specified time period, the chart will display a "No data for the selected range" message.
|
history.downsampling.period
Data selection period.
Period configuration has the following format:
<amount>-<hours|days|weeks|months>
history.downsampling.dsp
Data downsampling configuration.
Downsampling configuration has the following format:
<amount><period-prefix>-<avg|min|max>
Available period prefixes:
-
s
– seconds; -
m
– minutes; -
h
– hours; -
d
– days.
The example below shows how to configure data downsampling.
-
"dsp: 5m-avg"
-
"dsp: 15s-avg"
With the following configuration, the system would show the 5 minute averages on the chart, when you set the time range to 6 hours.
history:
downsampling:
- period: 6-hours
dsp: 5m-avg
With the following configuration, the system would show the 15 second averages on the chart, when you set the time range to 6 hours.
history:
downsampling:
- period: 6-hours
dsp: 15s-avg
If you don’t the the period parameter, such dsp parameter becomes a default parameter for every period, that’s not specified in the configuration file.
|
hideConnectionStatusNotifications
Hides Comet server connection status notifications;
-
YAML
-
JSON
hideConnectionStatusNotifications: false
{
"hideConnectionStatusNotifications": false,
...
}
-
false – notifications are displayed in the web interface,
-
true – notifications are displayed in the console.
Default – false – notifications about connection status with the Comet server are displayed in the web interface.
hideResponseErrorNotifications
Hides notifications about errors that happen when automatic requests are sent to the server.
-
YAML
-
JSON
hideResponseErrorNotifications: false
{
"hideResponseErrorNotifications": false,
...
}
-
false – notifications are displayed in the web interface,
-
true – notifications are hidden.
Default – false – notifications are displayed in the web interface.
Errors that are caused by the user, for example, issues after saving data in any of the forms, will be displayed in the web interface regardless of the configuration. |
incidents
In this section you can set additional fields for the active alarms and historical alarms lists.
-
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
Data sources for the additional fields.
You can set any incident parameter as a data source. Fields inside parameter objects must be specified after a dot. For example, to add an address
Property of an object that triggered the incident to the additionalFields
list, set it as owner.properties.address
.
You can see all parameters in the REST API documentation.
You can use properties as data sources only if they have the type_id = 1 (properties added with the Properties menu or via REST API). You can’t use built-in parameters and sensor parameters such as TaskType or PingHost , as well as links added as Documents.
|
If the data source doesn’t have a corresponding value in the additionalFieldNames array, the column header will show the name of the data source instead.
|
incidents.additionalFieldNames
Names of the additional fields, which are displayed in the web interface.
The list of names corresponds to the list of data sources. The first data source in the additionalFields
array would have the first name in the additionalFieldNames
array and so on.
The number of names may not match the number of data sources. If the data source doesn’t have a corresponding value in the additionalFieldNames
array, the column header will show the name of the data source instead.
To skip the data source and use its data source name instead, assign null
or false
to the respective values.
For example, the following configuration would add the localTimestamp
, 'Owner ID', IP Address
, and owner.class_id
to the incidents table:
-
YAML
-
JSON
incidents:
additionalFields:
- localTimestamp
- owner._id
- owner.properties.address
- owner.class_id
additionalFieldNames:
- false
- Owner ID
- IP-address
{
"incidents": {
"additionalFields": [
"owner._id",
"owner.properties.address",
"owner.class_id",
],
"additionalFieldNames": [
false,
"Owner ID"
"IP-address",
]
}
}
languages
This section allows to control installed languages of web interface.
By default, only English is enabled. To enable other languages, you need to explicitly define them in the configuration file.
-
YAML
-
JSON
languages:
en:
short: us
long: English
it:
short: it
long: Italiano
{
"languages": {
"en": {
"short": "us",
"long": "English"
},
"it": {
"short": "it",
"long": "Italiano"
}
}
}
languages.<id>
Language identifier.
The following languages are available:
-
en | English,
-
it | Italian,
languages.<id>.long
Language full name.
This name displayed in SAYMON current user menu with selecting an interface language.
languages.<id>.short
Identifier of the flag icon.
This icon displayed in SAYMON current user menu with selecting an interface language.
– es,
– gb,
– it,
– us.
If you set a missing or incorrect language ID, the Spanish flag will be used. |
monitoring
This section contains parameters to hide unused monitoring probes from the interface.
If you leave this section empty, every single probe will be displayed in the web interface.
-
YAML
-
JSON
monitoring:
standardTasks:
- ping
- snmpGet
{
"monitoring": {
"standardTasks": [
"ping",
"snmpGet"
]
}
}
monitoring.standardTasks
The array of identifiers of the displayed standard probes.
You can find a list of identifiers in the Standard probes identifiers section.
millisecondMonitoring
Enables data update every millisecond.
-
YAML
-
JSON
millisecondMonitoring: false
{
"millisecondMonitoring": false,
...
}
-
false – update is disabled,
-
true – update is enabled.
Default – false – update is disabled.
pollInterval
Time period between data requests from the REST server, if the connection between the client and the Comet server is unavailable (in milliseconds).
-
YAML
-
JSON
pollInterval: 5000
{
"pollInterval": 5000,
...
}
Default – 5000 – 5 seconds.
pollIntervalSocket
Time period between data requests from the Comet server, if the connection between the client and the Comet server is available (in milliseconds).
-
YAML
-
JSON
pollIntervalSocket: 60000
{
"pollIntervalSocket": 60000,
...
}
Default – 60000 – 1 minute.
statHistory
Show the "Stat history" button.
-
YAML
-
JSON
statHistory: false
{
"statHistory": false,
...
}
-
true – button is enabled,
-
false – button is disabled.
Server configuration parameter agent_stat must be enabled. |
By default – false
title
Header for tabs and the name, displayed at the top left corner of web interface.
-
YAML
-
JSON
title: "SAYMON"
{
"title": "SAYMON",
...
}
Default – SAYMON.
themes
This parameter is used to configure SAYMON themes.
-
YAML
-
JSON
themes:
default:
name: Light
dark:
name: Dark
{
"themes": {
"default": {
"name": "Light"
},
"dark": {
"name": "Dark"
}
}
}
CSS-files with themes are placed in the /usr/local/saymon/client/css
directory.
Two themes are available by default – light (default
) and dark (dark
).
To add a new theme, create a new folder in the themes directory (for example, my-custom-theme
). Then, add this folder to the configuration file:
-
YAML
-
JSON
themes:
my-custom-theme:
name: Custom Theme
{
"themes": {
"my-custom-theme": {
"name": "Custom Theme"
}
}
}
themes.<theme-name>.name
Theme name is placed in the current user menu.
Name of the theme cannot be localized. |
tree
This section contains parameters for object tree.
-
YAML
-
JSON
tree:
filterSubmit: true
{
"tree": {
"filterSubmit": true
},
}
useNaturalSort
Enables sorting objects with the javascript-natural-sort library:
-
YAML
-
JSON
useNaturalSort: false
{
"useNaturalSort": false,
...
}
-
false – objects are sorted with native functions of the browser,
-
true – objects are sorted with the javascript-natural-sort library.
Default – false – objects are sorted with native functions of the browser.
With set useNaturalSort = true performance of the web interface can degrade if there is huge number of objects in the system (100 000 and more). |