Конфигурация сервера

Конфигурация сервера системы выполняется в файле /etc/saymon/saymon-server.conf.

Для применения изменений необходимо перезапустить службу saymon-server:

$sudo service saymon-server restart

Далее приведены описания разделов и настроек.

agent_stat

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

"agent_stat": {
   "write_to": "mongo",
   "default_ttl": 20,
   "ttl": [
      {
        "key": "payload.cpuInformation.vendor",
        "value": "Intel",
        "expire": 10
      }
   ]
}

agent_stat.write_to

Выбор хранилища данных от агента.

При указании значения "mongo" данные от агента хранятся в mongoDB.

По умолчанию – данные от агента хранятся в ELK.

agent_stat.default_ttl

Срок жизни наборов данных (в секундах) по умолчанию.

Если это значение равно 0, то данные не записываются в БД.

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

agent_stat.ttl

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

agent_stat.ttl.key

Имя метрики.

agent_stat.ttl.value

Значение метрики.

agent_stat.ttl.expire

Срок жизни набора данных.

Если это значение равно 0, то данные не записываются в БД.

сache

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

"cache": {
    "host": "127.0.0.1",
    "port": 6379
}

cache.auth_pass

Пароль для доступа к серверу Redis.

cache.host

Адрес сервера Redis.

По умолчанию"127.0.0.1".

cache.port

Порт сервера Redis.

По умолчанию6379.

сache.cluster

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

"cache": {
    "cluster": {
        "nodes": [
            {
                "port": 7000,
                "host": "127.0.0.1"
            },
            {
                "port": 7001,
                "host": "127.0.0.1"
            }
        ],
        "options": {}
    }
}
Если задействован этот подраздел, система использует указанные здесь настройки подключения, параметры cache.host и cache.port игнорируются.

cache.cluster.options

Дополнительные параметры подключения к кластеру.

Подробнее можно узнать в документации ioredis.

cache.cluster.nodes

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

cache.cluster.nodes.host

Адрес сервера кластера.

cache.cluster.nodes.port

Порт сервера кластера.

custom_scripts

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

"custom_scripts": {
    "entity_triggers_path": "/opt/saymon-extensions/entity-triggers-path"
}

custom_scripts.entity_triggers_path

Полный путь до папки с файлами скриптов.

db

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

"db" : {
    "mongodb": {
        "url": "mongodb://localhost:27017/saymon?w=1"
    }
}

db.mongodb

Данные для подключения к MongoDB.

db.mongodb.url

Адрес сервера MongoDB и дополнительные параметры подключения.

По умолчанию"mongodb://localhost:27017/saymon?w=1".

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

"url": "mongodb://host01:27017,host02:27017,host03:27017/saymon?w=1"

Все возможные дополнительные параметры URL представлены в документации по MongoDB.

elasticsearch

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

"elasticsearch": {
    "node": "http://127.0.0.1:9200",
    "auth": {
        "username": "elastic",
        "password": "ypezA1ZoVv46fJh8Abj4"
   },
   "index_pattern": "myindex*",
   "request_timeout": 30000,
   "hits_per_request": 1000
}

elasticsearch.hits_per_request

Максимальное число записей, запрашиваемых в одном обращении к elasticsearch.

При повышении значения параметра снижается число запросов к Elasticsearch, но увеличивается расход памяти и время блокировки потока на сервере Центрального Пульта при обработке ответа.

По умолчанию1000.

elasticsearch.index_pattern

Индекс Elasticsearch, в котором происходит поиск.

elasticsearch.node

IP-адрес инстанса Elasticsearch.

elasticsearch.request_timeout

Время ожидания ответа от сервера elasticsearch (в миллисекундах).

По умолчанию30000 (30 секунд).

elasticsearch.auth

Авторизационные данные пользователя elasticsearch.

elasticsearch.auth.password

Пароль пользователя elasticsearch.

elasticsearch.auth.username

Логин пользователя elasticsearch.

encrypt

"encrypt": {
  "db": true,
  "server_config": true,
  "tags": [
    "<<",
    ">>"
  ],
  "prefix": "crypt"
}

encrypt.db

Включает шифрование полей в базе данных.

  • true – Включить шифрование.

  • false – Выключить шифрование.

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

encrypt.server_config

Включает шифрование полей в конфигурационном файле сервера

  • true – Включить шифрование.

  • false – Выключить шифрование.

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

encrypt.tags

Тег для обозначения зашифрованного поля или поля, которое необходимо зашифровать. Подробнее о формате зашифрованного поля можно узнать в разделе security/password-encryption.adoc#encryption-format.

По умолчанию["<<",">>"]

encrypt.prefix

Префикс, обозначающий, что поле зашифровано. Подробнее о формате зашифрованного поля можно узнать в разделе security/password-encryption.adoc#encryption-format.

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

extensions

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

"extensions": {
    "path": "/opt/saymon-extensions"
}

extensions.path

Путь к папке с пользовательскими расширениями.

hostname_update

В этом разделе задаются настройки автоматического обновления информации автоматически зарегистрированных объектов класса Host.

hostname_update: {
    enabled: false
}

hostname_update.enabled

Автоматическое обновление имени и свойств на объекте класса Host при смене имени хоста.

  • true – Включить автообновление.

  • false – Выключить автообновление.

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

kafka

В этом разделе задаются настройки подключения к брокеру Kafka.

"kafka" : {
    "host" : "localhost",
    "port" : 9092,
    "requestTimeout" : 30000,
    "fetch_latest" : false,
    "logLevel" : 2
}

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

kafka.brokers

Пул адресов для подключения при использовании Kafka Cluster.

"kafka" : {
   ...
   "brokers": [
      "192.168.1.10:9092",
      "192.168.1.11:9092"
   ],
   ...
}
При указании данного параметра система игнорирует параметры kafka.host и kafka.port.
При использовании Kafka Cluster необходимо дополнительно настроить конфигурационный файл агента.

kafka.fetch_latest

Данный параметр определяет правило обработки сообщений, поступивших в Kafka при выключенной системе:

  • false – обработать накопленные данные,

  • true – игнорировать накопленные данные.

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

kafka.host

Адрес брокера Kafka.

По умолчанию"localhost".

kafka.logLevel

Уровень логирования Kafka;

  • 0 – NOTHING,

  • 1 – ERROR,

  • 2 – WARN,

  • 4 – INFO,

  • 5 – DEBUG.

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

kafka.port

Порт брокера Kafka.

По умолчанию9092.

kafka.requestTimeout

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

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

kafka.ssl

Ключ и сертификат можно указывать как путь к файлу:

"kafka" : {
...
    "ssl": {
        "certFile": "/opt/kafka/for-saymon-server/cert.pem",
        "keyFile": "/opt/kafka/for-saymon-server/key.pem"
    },
...
}

kafka.sasl

Настройки аутентификации. Параметры зависят от механизма аутентификации, используемом в Kafka.

Пример настроек для механизма PLAIN/SCRAM:

"kafka" : {
...
    "sasl": {
        "mechanism": "plain",
        "username": "user",
        "password": "password"
    },
...
}

kafka.sasl.mechanism

Механизм аутентификации.

keycloak

"keycloak": {
    "realm_certificate": "<data of keycloak_realm_certificate>",
    "realm_certificate_file": "/etc/saymon/keycloak_realm_certificate",
    "config_file": "/etc/saymon/keycloak_backend.json"
}
Параметры в примере перечислены в порядке понижения приоритета при одновременном указании. Для работы с Keycloak достаточно указать один из параметров.

keycloak.config_file

Путь к файлу конфигурации, сгенерированному сервером Keycloak для Backend-клиента.

keycloak.realm_certificate

Данные сертификата (Realm Certificate), которым сервер Keycloak подписывает пользовательские токены.

keycloak.realm_certificate_file

Путь к файлу с Keycloak Realm Certificate.

ldap

В этом разделе задаются параметры внешнего LDAP-сервера для авторизации пользователей.

"ldap": {
    "url": "ldaps://192.168.1.1:636",
    "suffix": "dc=example,dc=com",
    "login": "cn=admin,dc=example,dc=com",
    "pass": "root",
    "allow_self_signed": true,
    "create_user_for_existing_group_only": true,
    "import_non_existing_groups": false,
    "update_existing_groups": false
}

ldap.allow_self_signed

Разрешает соединение по LDAPs c сервером, на котором установлен самоподписанный SSL-сертификат;

  • false – соединение запрещено,

  • true – соединение разрешено.

По умолчаниюfalse – соединение запрещено.

ldap.create_user_for_existing_group_only

Ограничивает авторизацию новых LDAP-пользователей только теми пользователями, у которых имя группы на LDAP-сервере совпадает с именем существующей (созданной ранее) группы в Центральном Пульте;

  • false – разрешена авторизация всех новых LDAP-пользователей,

  • true – разрешена авторизация только тех новых LDAP-пользователей, для которых заготовлены группы в Центральном пульте.

По умолчаниюfalse – разрешена авторизация всех новых LDAP-пользователей.

На LDAP-пользователей, у которых уже есть учётная запись, применение данного параметра не распространяется.

Нельзя использовать вместе с параметром import_non_existing_groups. Если у обоих параметров значение true, то сервер сначала импортирует группу нового пользователя, а потом авторизует его, так как он входит в существующую группу.

ldap.group_name_attribute

Атрибут, в котором хранятся имена групп пользователей.

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

Стандартный атрибут – "cn".

ldap.import_non_existing_groups

Разрешает автоматическое создание групп, в которых пользователь состоит на LDAP-сервере, но которых нет в Центральном Пульте;

  • false – при авторизации LDAP-пользователя в Центральном Пульте не создаются новые группы;

  • true – при авторизации LDAP-пользователя создаются все его группы в Центральном Пульте, пользователь автоматически добавляется в свои группы.

По умолчаниюfalse – при авторизации LDAP-пользователей в Центральном Пульте не создаются новые группы.

ldap.login

Логин администратора LDAP. Администратор должен иметь доступ к пользователям и группам, которые должны быть импортированы в Центральный Пульт.

ldap.login_attribute_name

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

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

Стандартный атрибут – "name".

ldap.pass

Пароль администратора LDAP.

ldap.suffix

Корневой элемент (как правило, доменное имя организации).

ldap.update_existing_groups

Разрешает обновлять группы пользователей, созданные в Центральном Пульте, до LDAP-групп при импорте групп пользователя из LDAP и совпадении имен групп;

  • false – при входе LDAP-пользователей обновления групп не происходит.

  • true – при входе LDAP-пользователя его группы в Центральном Пульте, совпадающие с группами в LDAP, обновляются до LDAP-групп.

По умолчаниюfalse – при входе LDAP-пользователей обновления групп не происходит.

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

ldap.url

Адрес LDAP-сервера. Поддерживаются протоколы LDAP и LDAPs.

monitoring

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

"monitoring": {
    "custom_tasks_path": "/opt/saymon-agent/custom_tasks"
}

monitoring.custom_tasks_path

Полный путь до папки с файлами пользовательских проверок.

mqtt

В этом разделе задаются настройки подключения к MQTT-брокеру.

"mqtt" : {
    "broker" : "mqtt://username:password@localhost:1883"
}

mqtt.broker

Адрес и порт брокера.

По умолчанию"mqtt://localhost:1883".

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

openTsdb

В этом разделе задаются параметры доступа к OpenTSDB.

"openTsdb" : {
    "enabled" : true,
    "host" : "localhost",
    "port" : 4242,
    "timeout" : 15000
}

openTsdb.enabled

Запись исторических данных в OpenTSDB;

  • false – запись выключена,

  • true – запись включена.

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

openTsdb.host

Адрес хоста с OpenTSDB.

По умолчанию"localhost".

openTsdb.port

Порт OpenTSDB.

По умолчанию4242.

openTsdb.timeout

Время на ожидание ответа от OpenTSDB (в миллисекундах).

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

push_notification

В этом разделе задаются параметры push-уведомлений в мобильном приложении. Для работы с ними используется Firebase Cloud Messaging (FCM).

"push_notification" : {
    "disabled" : true,
    "key_path" : "/etc/saymon/saymon-mobile-firebase-adminsdk.json",
    "on_state_change" : true,
    "timeout" : 0,
    "url" : "https://saymon-mobile.firebaseio.com"
}

push_notification.disabled

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

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

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

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

push_notification.key_path

Путь к ключу авторизации сервера Центрального Пульта на сервере Firebase.

По умолчанию"/etc/saymon/saymon-mobile-firebase-adminsdk.json".

push_notification.on_state_change

Включает отправку уведомления при изменении состояний на случай другого источника уведомлений – MQTT-сообщений;

  • true – отправка включена,

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

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

push_notification.timeout

Время, через которое каждому пользователю отправляется уведомление (в миллисекундах).

По умолчанию0 – задержки нет.

push_notification.url

URL, полученный пользователем от Firebase, для принятия содержимого уведомлений с сервера.

По умолчанию"https://saymon-mobile.firebaseio.com".

resource_server

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

"Resource_server" : {
    "debug" : false,
    "file_storage_dir" : "/var/saymon/resources",
    "ip_address" : "127.0.0.1",
    "port" : 8092
}

resource_server.debug

Включает debug-режим для логирования в файл /var/log/saymon/saymon-server.log;

  • false – режим выключен,

  • true – режим включен.

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

resource_server.file_storage_dir

Путь к директории для хранения документов, прикрепляемых к объектам.

По умолчанию"/var/saymon/resources".

resource_server.ip_address

Адрес Resource-сервера.

По умолчанию"127.0.0.1".

resource_server.port

Порт Resource-сервера.

По умолчанию8092.

rest_server

В этом разделе задаются параметры REST-сервера.

"Rest_server" : {
    "base_url" : "/api",
    "colorize_log" : false,
    "debug" : false,
    "document_download_url" : "http://localhost/node/api/docs",
    "ip_address" : "127.0.0.1",
    "keepAliveTimeout" : 5000,
    "num_workers" : 1,
    "port" : 8090,
    "public_url" : "http://mycompany.com/index.html",
    "session_ttl" : 3600000,
    "snmp_mib_url" : "http://192.168.1.189:5550",
    "update_download_url" : "http://localhost/node/api/agents/update"
}

rest_server.base_url

Путь к API.

По умолчанию"/api".

rest_server.colorize_log

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

  • false – раскраска выключена,

  • true – раскраска включена.

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

rest_server.debug

Включает debug-режим для логирования в файл /var/log/saymon/saymon-server.log;

  • false – режим выключен,

  • true – режим включен.

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

rest_server.document_download_url

URL к файлам, сохраненным в $document_storage_dir.

По умолчанию"http://localhost/node/api/docs".

rest_server.ip_address

Адрес хоста для запуска REST-сервера.

По умолчанию"127.0.0.1".

rest_server.keepAliveTimeout

Время ожидания сервером следующего запроса до разрыва текущего соединения (в миллисекундах).

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

rest_server.num_workers

Число процессов для загрузки данных.

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

rest_server.port

Порт REST-сервера.

По умолчанию8090.

rest_server.public_url

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

rest_server.session_ttl

Время, по истечении которого происходит автоматическое завершение сессии при неактивности пользователя (в миллисекундах).

По умолчанию3600000 – 1 час.

rest_server.snmp_mib_url

Адрес сервера трансляции SNMP OID в текстовый формат.

rest_server.update_download_url

Путь к файлу для обновления агента.

По умолчанию"http://localhost/node/api/agents/update".

rest_server.limits

В этом подразделе задаются ограничения на число запросов к REST API.

"limits" : [
    {
        "__comment": "администратора не ограничиваем",
        "user": "5048c849d7b6e40593dfee71"
    },
    {
        "__comment": "группу дежурной смены не ограничиваем",
        "group": "60e591928196105ec9c74636"
    },
    {
        "__comment": "запросы на states и classes не ограничиваем",
        "uri": ["/states", "/classes"]
    },
    {
        "__comment": "ограничиваем запросы на объекты",
        "uri": ["/objects"],
        "rate": "100/minute"
    },
    {
        "__comment": "ограничиваем авторизовавшихся пользователей с 127.0.0.1",
        "user": true,
        "ip": '127.0.0.1',
        "rate": "120/minute"
    },
    {
        "__comment": "ограничения для неавторизованных пользователей",
        "user": false,
        "rate": "10/minute"
    }
]

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

Для каждого запроса поиск правил осуществляется сверху вниз. Применяется только одно правило.

rest_server.limits.group

Группы пользователей, для которых устанавливается ограничение;

  • string\|string[] – ID группы или групп, к которым применяется правило.

Примеры:

"limits": [
    {
        "group": "60e562277936944ebf158282",
        ...
    }
]
"limits": [
    {
        "group": [
            "60e562277936944ebf158282",
            "616406e1a3db5948cd815438"
        ],
        ...
    }
]

rest_server.limits.ip

IP-адреса, для которых устанавливается ограничение;

  • true – cвой лимит для каждого IP-адреса;

  • string\|string[] – IP-адрес или список адресов, к которым применяется правило.

Примеры:

"limits": [
    {
        "ip": true,
        ...
    }
]
"limits": [
    {
        "ip": "127.0.0.1",
        ...
    }
]
"limits": [
    {
        "ip": [ "127.0.0.1", "192.168.1.2" ],
        ...
    }
]

rest_server.limits.rate

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

Задаётся в формате количество_запросов/единица_измерения_времени.

Возможные единицы измерения времени:

  • y – год,

  • Q – квартал,

  • M – месяц,

  • w – неделя,

  • d – день,

  • h – час,

  • m/minute – минута,

  • s – секунда,

  • ms – миллисекунда.

Пример:

"limits": [
    {
        "rate": 100/minute,
        ...
    }
]

rest_server.limits.uri

REST-методы, к которым устанавливается ограничение;

  • true – свой лимит для каждого метода;

  • string\|string[] – метод или список методов, к которым применяется правило.

В качестве пути могут быть заданы любые API без приставки /node/api, например, "/time".

Примеры:

"limits": [
    {
        "uri": true,
        ...
    }
]
"limits": [
    {
        "uri": "/ping",
        ...
    }
]
"limits": [
    {
        "uri": [
            "/ping",
            "/node/api/objects/:id/stat"
        ],
    ...
    }
]

rest_server.limits.user

Пользователи, для которых устанавливается ограничение;

  • true – свой лимит для каждого авторизованного пользователя;

  • false – лимит по IP-адресу для каждого авторизованного пользователя;

  • string\|string[] – ID пользователя или пользователей, к которым применяется правило.

Примеры:

"limits": [
    {
        "user": true,
        ...
    }
]
"limits": [
    {
        "user": false,
        ...
    }
]
"limits": [
    {
        "user": "6048c849d7b6e40593dfee71",
        ...
    }
]
"limits": [
    {
        "user": [
            "57ff6853fa6db3a63d16d07b",
            "6048c849d7b6e40593dfee71"
        ],
    ...
    }
]

server

В этом разделе задаются общие параметры сервера.

server.agent_registration_parent_id

ID объекта, в котором появляются агенты при саморегистрации.

По умолчанию"1".

server.analytics_enabled

Включает аналитику значений метрик в процесс обработки данных;

  • false – аналитика выключена,

  • true – аналитика включена.

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

server.analytics_processes

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

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

server.colorize_log

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

  • false – раскраска выключена,

  • true – раскраска включена.

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

server.comet_ping_interval

Временной интервал между отправками comet-сервером сообщений (в миллисекундах).

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

server.comet_ping_timeout

Время ожидания сообщения от comet-сервера (в миллисекундах).

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

server.comet_port

Порт для соединения.

По умолчанию8091.

server.comet_secure

Включает SSL-соединение;

  • false – соединение выключено,

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

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

server.comet_ssl_certificate

Путь к сертификату.

server.comet_ssl_key

Путь к ключу.

server.conditional_incidents_enabled

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

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

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

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

server.conditional_incidents_script

Применяется только при включенном функционале генерации аварий:

server.conditional_incidents_enabled = true

server.debug

Включает debug-режим для логирования в файл /var/log/saymon/saymon-server.log;

  • false – режим выключен,

  • true – режим включен.

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

server.default_result_timeout

Время, через которое срабатывает условие Нет данных от объекта с момента создания объекта или получения последних данных (в миллисекундах).

По умолчанию120000 – 2 минуты.

server.default_state_id

Состояние объекта по умолчанию.

По умолчанию7NO DATA.

server.discovery_parent_id

ID объекта, в котором появляются найденные агентами сетевые устройства.

По умолчанию"1".

server.event_log_max_bytes

Объем Журнала Событий в MongoDB, при достижении которого происходит ротация данных (в байтах).

По умолчанию"1 G" – 1 гигабайт.

server.history_temporary_storage_period

Интервал времени для буферизации метрик, по истечении которого все данные из Redis записываются в OpenTSDB (в миллисекундах).

Применяется, только если history_update_period равен 0.

server.history_update_period

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

0 – немедленная запись пришедших значений.

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

server.history_write_length

Ограничение количества точек в одном запросе к OpenTSDB.

При указании этого параметра данные в базу записываются по частям.

Функционал полезен при превышении размера записываемых за один раз данных. Рекомендуемое значение в таком случае – 100000.

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

server.incident_timeout

Время перехода аварии из списка активных аварий в список исторических аварий после погашения аварии (в миллисекундах).

По умолчанию120000 – 2 минуты.

server.notification_buffering_period

Период ожидания для сбора сообщений о смене состояний объектов и отправки группового уведомления (в миллисекундах).

По умолчанию0 – буферизация отключена.

server.retain_expired_stat

Включает хранение последних полученных данных после их устаревания;

  • false – хранение выключено,

  • true – хранение включено.

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

server.script_trigger_timeout

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

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

server.self_object_id

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

server.self_monitoring_period

Период между процессами самоконтроля сервера.

По умолчанию – 2 минуты.

server.sms_script

Путь до скрипта, отправляющего SMS-уведомления.

server.stat_local_timestamp_field_name

Имя поля, где передается время, с которым нужно сохранять данные в OpenTSDB.

По умолчанию"localTimestamp".

server.stat_scan_period

Период проверки актуальности пришедших данных (в миллисекундах).

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

server.use_stat_timestamp

Сохраняет временную метку (поле timestamp) из данных агента;

  • false – значение поля timestamp из данных агента заменяется на временную метку сервера,

  • true – используется значение поля timestamp из данных агента, оно не перезаписывается временем сервера.

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

server.voice_call_script

Путь до скрипта, осуществляющего голосовой вызов.

server.email

В этом подразделе задаются параметры доступа к почтовому серверу:

"email" :{
    "disabled" : false,
    "fields" : {
        "from" : "saymon@saas.saymon.info"
    },
    "max_json_length": 1000,
    "transport" : {
        "auth" {
            "user" : "saymon@saas.saymon.info",
            "pass" : "P@ssw0rd"
        },
        "host" : "smtp.gmail.com",
        "port" : 465,
        "secure" : true
    },
}

server.email.disabled

Выключает отправку почтовых уведомлений;

  • true – отправка выключена,

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

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

server.email.max_json_length

Ограничение размера письма с уведомлением (в символах).

По умолчанию1000 – 1000 символов.

server.email.fields

Данные об отправителе уведомлений.

server.email.fields.from

Почтовый адрес отправителя.

server.email.transport

Данные почтового сервера.

server.email.transport.host

Адрес почтового сервера.

server.email.transport.port

Порт почтового сервера.

server.email.transport.secure

Включает использование TLS при подключении к серверу;

  • false – использоване TLS выключено,

  • true – использоване TLS включено.

Значение по умолчанию зависит от порта.

server.email.transport.service

Встроенный в коннектор набор служб.

При наличии задаёт host, port, secure автоматически.

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

server.email.transport.auth

Данные для аутентификации пользователя.

server.email.transport.auth.pass

Пароль пользователя.

server.email.transport.auth.user

Логин пользователя.

server.user

В этом подразделе задаются параметры пользователей:

"user" : {
    "auth_enabled": "true",
    "new_user_access": "all",
    "template": {
        "permissions": ["manage-objects", "view-section-stat"],
        "objectPermissions": {
            "include": [],
            "exclude": ["5fb643ddf277b96c8401119b", "5f8dc28407e86603bfe281f8"]
        }
    },
    "usersRoot": "5800d9aaac7bf0f90d3d520e"
}

server.user.auth_attempts

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

При определённом количестве неудачных попыток входа, указанном в параметре attempts пользователь блокируется. Все запросы от этого пользователя возвращают код 429 Too Many Requests.

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

"user" : {
    ...
    "auth_attempts": {
        "enabled": true,
        "attempts": 3,
        "block_period": 60000
    },
    ...
}

server.user.auth_attempts.enabled

Включает функцию блокировки пользователя при неудачных попытках входа.

  • false – блокировка выключена,

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

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

server.user.auth_attempts.attempts

Количество неудачных попыток, которое приведёт блокировке.

По умолчанию3.

server.user.auth_attempts.block_period

Период сброса ключа неудачных попыток входа в миллисекундах.

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

По умолчанию300000.

server.user.auth_enabled

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

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

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

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

server.user.lang_default

Язык пользователей по умолчанию;

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

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

  • "ru" – русский.

По умолчанию"en" – английский.

server.user.new_user_access

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

  • "all" – есть доступ ко всем объектам,

  • "not" – нет доступа ни к одному объекту.

По умолчанию"all" – доступ ко всем объектам.

server.user.usersRoot

Идентификатор корневого объекта для создаваемых новым пользователем объектов.

По умолчанию"1".

server.user.template

Шаблон прав нового пользователя.

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

server.user.template.permissions

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

server.user.template.objectPermissions

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

server.user.template.objectPermissions.include

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

server.user.template.objectPermissions.exclude

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

snmp

В этом разделе задаются параметры обработки SNMP-трапов.

"snmp": {
    "filter": "/users/admin/tmp/snmp-filter.js"
}

snmp.filter

Путь к файлу с функцией фильтрации входящих SNMP Trap.

Если функция возвращает значение false, сообщение отбрасывается.

Приведённый ниже пример блокирует трапы, которые содержат любую из строк, указанных в массиве filters:

Пример функции фильтрации
module.exports = function(message, rawMessage) {
    rawMessage = String(rawMessage);
    //console.log(message, rawMessage);
    let filters = [ 'HLR Call Processing Message',
        'AIR Rejected – No EPS Subscription',
        'GPRS SIBB Processing Exception',
        'AuC Call Processing Message',
        'Received notification from CLIM',
        'AuC Event Log Clean Up',
        'SOFT 0006'
    ];
    return !filters.some((filter) => rawMessage.includes(filter));
}

В данном примере блокируется трап с enterpriseOid = '.1.3.6.1.4.1.169.10.1.1' И genericTrap = 6 И specificTrap = 5:

Пример функции фильтрации
module.exports = function(message, rawMessage) {
    return message.payload.enterpriseOid != '.1.3.6.1.4.1.169.10.1.1' && message.payload.genericTrap != 6 && message.payload.specificTrap != 5;
}

state_history_log

"state_history_log": {
    "max_time_range_interval": 30
}

state_history_log.max_time_range_interval

Определяет максимальное значение временного интервала, которое может указать пользователь при запросе отчёта с указанием параметров, которые замедляют фильтрацию истории состояний (classId, tagId, entityName). Указывается в днях.

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

По умолчанию90 дней.

wetty

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

История каждой пользовательской сессии сохраняется в отдельный файл.

Формат имени файла: YYYY-MM-DD_HH_MM_SS_PROTOCOL_IP_USERNAME.log, например 2023-01-12_11-56-17_ssh_127.0.0.1_admin.log.

Если используется версия Центрального Пульта ниже 3.12.86, при переходе на новую версию необходимо:

  1. Внести изменения в файл /etc/nginx/sites-available/saymon:

    location ~ /wetty/(.*)
    {
      # take path and query after wetty/ and append it to proxy_pass
      proxy_pass http://127.0.0.1:3001/wetty/$1?$query_string;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
    }
  2. Перезапустить nginx:

    service nginx reload
"wetty" : {
    "log_dir" : "/tmp",
    "raw_mode": true
}

wetty.log_dir

Путь к папке для хранения log-файлов.

wetty.raw_mode

Включает режим записи логов с управляющими ANSI-символами;

  • true – логи записываются с управляющими ANSI-символами;

  • false – логи записываются без управляющих ANSI-символов.

По умолчаниюtrue – логи записываются с ANSI-символами.

zabbix

В этом разделе задаются параметры для импорта данных из системы Zabbix.

По умолючанию сервер использует систему подключения к Zabbix 6.0. Для использования Zabbix 5.x, нужно выставить параметр zabbix5 в true.
"zabbix" : [
    {
        "url" : "http://192.168.1.215/zabbix/api_jsonrpc.php",
        "user" : "saymon",
        "password" : "saymon_user_password",
        "parent_id" : "58b586d5c3a2f96642e25537",
        "debug": true,
        "polling_period": 30000,
        "classes" : {
            "4" : "CPU",
            "619503be0ffb595aebe22222" : "Memory

General"
        }
    }
]

zabbix.classes

Массив соответствий идентификаторов классов и имён обнаруженных объектов. Объектам с указанными именами будут при создании присвоены соответствующие классы.

zabbix.debug

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

  • false – вывод выключен,

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

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

zabbix.parent_id

ID объекта, используемого в качестве родителя для объектов, импортируемых из Zabbix.

zabbix.password

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

zabbix.polling_period

Период обновления данных (в миллисекундах).

По умолчанию120000 – 2 минуты.

zabbix.url

Адрес файла api_jsonrpc.php требуемой инсталляции Zabbix.

zabbix.user

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

zabbix.zabbix5

Использовать систему подлючения для Zabbix 5.x.

  • true – сервер использует систему для Zabbix 5.x,

  • false – сервер использует систему для Zabbix 6.0.

По умолчанию – false – Используется система подключения для Zabbix 6.0.

В версиях Центрального пульта старше 3.14.89 этот параметр не требуется, так как в них нет поддержки Zabbix 6.0.

zabbix.request_options

В этом подразделе можно задать изменения опций для запроса хостов, триггеров и данных.

"request_options": {
    "hosts": {
        "filter": {
            ...
        }
    },
    "triggers": {
        "filter": {
            ...
        }
    },
    "data": {
        "filter": {
            ...
        }
    }
}

При интеграции Центрального пульта версии 3.14.89 и выше с Zabbix 6.0 дополнительно можно задать изменения опций для тегов:

"request_options": {
    ...
    "tags" [
        {
            "tag" : "ZBXHEALTH"
        }
    ],
    ...
}

zabbix.request_options.hosts

Параметры для запроса хостов.

zabbix.request_options.hosts.filter

Поля фильтров для запроса хостов.

Все возможные поля фильтров hosts представлены в документации по Zabbix API.

zabbix.request_options.triggers

Параметры для запроса триггеров.

zabbix.request_options.triggers.filter

Поля фильтров для запроса триггеров.

Все возможные поля фильтров triggers представлены в документации по Zabbix API.

zabbix.request_options.data

Параметры для запроса данных.

zabbix.request_options.data.filter

Поля фильтров для запроса данных.

Все возможные поля фильтров data представлены в документации по Zabbix API.