Учетные записи Визион

1. Роли пользователей Визиона#

Пользователи Визиона могут иметь роли “writer”, “reader” при работе с интерфейсом Визиона.

Роль “reader” предоставляет доступ только для чтения списков/детальной информации об уведомлениях, правилах оповещения, метриках, получателей и их групп, объектах (ПАК, модули, сервера, виртуальные машины, комутаторы), а также доступ к конструктору метрик (значения метрик).

Роль “writer” предоставляет полный доступ к интерфейсу, включающий все права роли “reader”, с возможностью добавлять новые и редактировать/удалять существующие сущности, а также управлять параметрами SMTP-шлюза, создавать/отзывать интеграционные токены доступа.

Список всех конечных точек API vision_core с описанием доступности для ролей представлен в разделе ниже.

2. Список всех роутов HTTP API Визион.Сервера с правами доступа#

Группа URL Метод Роль Доступ по токену
Версия Визиона /version/ GET
Самодиагностика Визион.Сервера /health/ GET reader, writer
Самодиагностика Визион.Сервера /health/logs GET writer
Авторизация /auth/start GET
Авторизация /auth/login GET
Авторизация /auth/logout GET
Авторизация /auth/me GET
Конфигурирование Визион.Сервера /config/smtp_config POST writer
Конфигурирование Визион.Сервера /config/smtp_config GET reader, writer
Конфигурирование Визион.Сервера /config/snmp_notifier_config POST writer
Конфигурирование Визион.Сервера /config/snmp_notifier_config GET reader, writer
Метрики /metric/bulk_delete POST writer
Запрос метрик (UI) /metric/data POST reader, writer
Метрики /metric/ GET reader, writer
Метрики /metric/ POST writer
Метрики /metric/{metric_id} GET reader, writer
Метрики /metric/{metric_id} PUT writer
Метрики /metric/{metric_id} DELETE writer
Правила оповещения /trigger/bulk_delete POST writer
Правила оповещения /trigger/ GET reader, writer
Правила оповещения /trigger/ POST writer
Правила оповещения /trigger/{trigger_id} GET reader, writer
Правила оповещения /trigger/{trigger_id} PUT writer
Правила оповещения /trigger/{trigger_id} DELETE writer
Оповещения о сработавших правилах /trigger/{trigger_id}/alerts GET reader, writer
Правила оповещения /trigger/{trigger_id}/enable POST writer
Правила оповещения /trigger/{trigger_id}/disable POST writer
Получатели уведомлений их группы /receiver/group GET reader, writer
Получатели уведомлений их группы /receiver/group POST writer
Получатели уведомлений их группы /receiver/group/{receiver_group_id} GET reader, writer
Получатели уведомлений их группы /receiver/group/{receiver_group_id} PUT writer
Получатели уведомлений их группы /receiver/group/{receiver_group_id} DELETE writer
Получатели уведомлений их группы /receiver/group/bulk_delete POST writer
Получатели уведомлений их группы /receiver/ GET reader, writer
Получатели уведомлений их группы /receiver/ POST writer
Получатели уведомлений их группы /receiver/{receiver_id} GET reader, writer
Получатели уведомлений их группы /receiver/{receiver_id} PUT writer
Получатели уведомлений их группы /receiver/{receiver_id} DELETE writer
Получатели уведомлений их группы /receiver/bulk_delete POST writer
Оповещения о сработавших правилах /alerts/ GET reader, writer
Оповещения о сработавших правилах /alerts/count_by_severity GET reader, writer
список меток и их значений /label/favorite GET reader, writer
список меток и их значений /label/favorite/{name} GET reader, writer
список меток и их значений /label/for_last_day GET reader, writer
список меток и их значений /label/for_last_day/{name} GET reader, writer
Запрос метрик (UI) /query POST reader, writer
Запрос метрик (UI) /query_range POST reader, writer
Объекты мониторинга /object/structure_types GET reader, writer
Объекты мониторинга /object/ GET reader, writer +
Объекты мониторинга /object/ POST writer
Объекты мониторинга /object/{object_id} GET reader, writer
Объекты мониторинга /object/{object_id} PUT writer
Объекты мониторинга /object/{object_id} DELETE writer
Объекты мониторинга /object_type/ GET reader, writer
Инвентори ПАК /inventory/{pak_id} GET reader, writer
Запрос метрик (внешний) /tsdb/query GET reader, writer +
Запрос метрик (внешний) /tsdb/query POST reader, writer +
Запрос метрик (внешний) /tsdb/query_range GET reader, writer +
Запрос метрик (внешний) /tsdb/query_range POST reader, writer +
Запрос метрик (внешний) /tsdb/labels GET reader, writer +
Запрос метрик (внешний) /tsdb/labels POST reader, writer +
Запрос метрик (внешний) /tsdb/labels/{label_name}/values GET reader, writer +
Запрос метрик (внешний) /tsdb/status/tsdb GET reader, writer +
Запрос метрик (внешний) /tsdb/series GET reader, writer +
Запрос метрик (внешний) /tsdb/series POST reader, writer +
Запрос метрик (внешний) /tsdb/federate GET reader, writer +
Импорт данных /data_import/ POST
Взаимодействие TaskDaemon с Визион.Сервером /task/ POST
Компоненты мониторинга /component/ GET reader, writer
Компоненты мониторинга /component/ POST writer
Компоненты мониторинга /component/{component_id} GET reader, writer
Компоненты мониторинга /component/{component_id} PUT writer
Компоненты мониторинга /component/{component_id} DELETE writer
Компоненты мониторинга /component/{component_id}/install POST writer
Компоненты мониторинга /component/{component_id}/uninstall POST writer
Плагины /plugin/{plugin_name} GET reader, writer
Плагины /plugin/ GET reader, writer
Плагины /plugin/job/ GET reader, writer
Плагины /plugin/job/ POST writer
Плагины /plugin/job/{plugin_job_id} GET reader, writer
Плагины /plugin/job/{plugin_job_id} PUT writer
Плагины /plugin/job/{plugin_job_id} DELETE writer
Плагины /plugin/job/{plugin_job_id}/install POST writer
Плагины /plugin/job/{plugin_job_id}/uninstall POST writer
Плагины /plugin/job/target/ GET reader, writer
Плагины /plugin/job/target/auto_create POST writer
Плагины /plugin/job/target/ POST writer
Плагины /plugin/job/target/{target_id} GET reader, writer
Плагины /plugin/job/target/{target_id} PUT writer
Плагины /plugin/job/target/{target_id} DELETE writer
Объекты мониторинга /pak_dictionary/ GET reader, writer
Объекты мониторинга /object_link/ GET reader, writer
Объекты мониторинга /object_link/{object_link_id} GET reader, writer
Объекты мониторинга /object_link/ POST writer
Объекты мониторинга /object_link/{object_link_id} PUT writer
Объекты мониторинга /object_link/by_object/{object_id} DELETE writer
Объекты мониторинга /object_link/{object_link_id} DELETE writer
foliage /foliage/servers GET reader, writer
foliage /foliage/switches GET reader, writer
foliage /foliage/networks GET reader, writer
Токены /auth/token/ POST writer
Токены /auth/token/revoke POST writer
Токены /auth/token/ GET reader, writer

3. Сторонние УЗ (интеграции: IPMI, SNMP, OpenNebula, PG, СУПВ, SMTP)#

3.1 Учетная запись для IPMI#

Учетная запись используется для взаимодействия с BMC узлов по протоколу IPMI через ipmi_exporter. Данная учетная запись позволяет собирать информацию о состоянии оборудования сервера, включая питание, температуру, вентиляторы и другие параметры.

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

Имя пользователя и пароль IPMI указываются в таргетах плагина ipmi_exporter в интерфейсе Визиона.

3.2 Учетная запись для SNMP#

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

Экспортер по умолчанию настроен со следующими параметрами public_v1 и public_v2 для версий SNMP v1 и v2 с уровнем безопасности (noAuthNoPriv):

public_v1:
	community: public
	security_level: noAuthNoPriv
	auth_protocol: MD5
	priv_protocol: DES
	version: 1
public_v2:
	community: public
	security_level: noAuthNoPriv
	auth_protocol: MD5
	priv_protocol: DES
	version: 2

3.3 Учетная запись для OpenNebula#

Учетная запись используется выполнения запросов к API OpenNebula frontend через one_exporter. Экспортер собирает метрики о состоянии кластеров и узлов.

Предоставленный пользователь должен иметь права на чтение и выполнение команд через OpenNebula API по указанному в настройках плагина one_exporter эндпоинту в интерфейсе Визиона.

3.4 Учетная запись для мониторинга PostgreSQL#

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

Предоставленная учетная запись должна обладать следующими привилегиями:

  • Роль pg_monitor для предоставления доступа к просмотру метрик базы данных, но не к изменениям в системе.
  • Права на выполнение pg_stat_file для получения информации о файловой системе PostgreSQL.
1. alter role vision nosuperuser;
2. grant pg_monitor to vision;
3. grant execute on function pg_catalog.pg_stat_file(text) to vision;

3.5 Учетная запись панели управления СУПВ#

Учетная запись используется для мониторинга системы управления виртуализацией (СУПВ) через supv_exporter.

Требуется учетная запись панели управления СУПВ с правами на чтение данных, которая указывается в конфигурации плагина supv_exporter в интерфейсе Визиона.

3.6 Учетная запись почтового шлюза#

Учетная запись используется для отправки оповещений по электронной почте через SMTP с помощью компонента AlertManager. Оповещения отправляются при срабатывании правил оповещения, например, превышении пороговых значений.

Параметры почтового шлюза конфигурируются в разделе “Настройки SMTP” интерфейса Визиона.

3.7 Учетная запись для отправки SNMP-трапов#

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

Параметры почтового шлюза конфигурируются с помощью API Визион.Сервера через эндпоинт /vision/api/v1/config/snmp_notifier_config (в будущем в интерфейсе Визиона).

4. УЗ ОС, используемые компонентами Визиона#

4.1 Пользователь ОС vision#

Создаётся при установке Визион.Сервера, а также при установке компонента plagent на узлы.

Используется для запуска всех компонентов Визиона на Сервере, Прокси и Агентах, кроме компонента plagent.

Всегда включается в группу vision.

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

  • wheel - на узлах с Altlinux для вызовов sudo экспортерами utlz_exporter, vision_exporter.
  • haclient - на узлах кластера МБД.П для вызова pacemaker экспортером ha_cluster_exporter.
/etc/passwd

vision:x:986:986:User for Skala^r Vision components:/dev/null:/sbin/nologin

Системный пользователь, не имеющий доступа к интерактивному входу в систему. Оболочка не разрешающая вход в систему /sbin/nologin. Домашний каталог пользователя /dev/null.

/etc/sudoers.d/vision

Cmnd_Alias SYSTEMCTL = /bin/systemctl *, /usr/bin/systemctl *, /sbin/systemctl *, /usr/sbin/systemctl *  
Cmnd_Alias JOURNALCTL = /bin/journalctl *, /usr/bin/journalctl *, /sbin/journalctl *, /usr/sbin/journalctl *  
Cmnd_Alias DMIDECODE = /bin/dmidecode *, /usr/bin/dmidecode *, /sbin/dmidecode *, /usr/sbin/dmidecode *  
Cmnd_Alias SMARTCTL = /bin/smartctl *, /usr/bin/smartctl *, /sbin/smartctl *, /usr/sbin/smartctl *  
Cmnd_Alias FIREWALLCMD = /bin/firewall-cmd *, /usr/bin/firewall-cmd *, /sbin/firewall-cmd *, /usr/sbin/firewall-cmd *  
Cmnd_Alias COROSYNCTOOLS = /usr/sbin/corosync-cfgtool *, /usr/sbin/corosync-quorumtool *  
Cmnd_Alias ERACLI = /usr/bin/eracli *, /usr/sbin/eracli *  
  
vision ALL=(root) NOPASSWD: SYSTEMCTL,JOURNALCTL,SMARTCTL,DMIDECODE,FIREWALLCMD,COROSYNCTOOLS,ERACLI

4.2 Пользователь ОС plagent#

Создаётся при установке компонента plagent на узлы.

Используется для запуска компонента plagent.

Всегда включается в группу plagent.

Дополнительно включается в группу:

  • wheel - на узлах с Altlinux для вызовов c sudo плагинов компонента plagent.
/etc/passwd

plagent:x:985:985:User for Skala^r PLagent:/dev/null:/sbin/nologin

Системный пользователь, не имеющий доступа к интерактивному входу в систему. Оболочка не разрешающая вход в систему /sbin/nologin. Домашний каталог пользователя /dev/null.

/etc/sudoers.d/plagent

Cmnd_Alias PLAGENT_PLUGINS = /opt/skala-r/plagent/plugins/*
plagent ALL=(root) NOPASSWD: PLAGENT_PLUGINS