SkillAgentSearch skills...

Hirac

REST API для получения информации о кластере сервера 1С и управления объектами кластера

Install / Use

/learn @arkuznetsov/Hirac
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

GitHub release GitHub license GitHub Releases GitHub All Releases

Build Status Quality Gate Coverage Tech debt

<a href="https://checkbsl.org"><img alt="Checked by Silver Bulleters SonarQube BSL plugin" src="https://web-files.do.bit-erp.ru/sonar/b_t.png" align="right" style="width:400px"/></a>

HTTP interface for RAC (HiRAC)

REST API для получения информации о кластере сервера 1С и управления объектами кластера.

Требования

Требуются следующие библиотеки и инструменты:

  • OneScript.Web - MVC фреймворк для разработки веб-сайтов с использованием OneScript
  • irac - если установлен OneScript устанавливается командой opm install -l
  • cpdb - если установлен OneScript устанавливается командой opm install -l
  • 1C RAC - утилита RAC из состава платформы 1С:Предприятие 8.3

Запуск

Перейти в подкаталог src и запустить OneScript.Web:

cd <путь к hirac>\src
<путь к OneScript.Web>\OneScript.WebHost.exe

Запуск будет выполнен на 5005 порту. Изменить порт можно в файле настроек appsettings.json

Настройки MS SQL Server для получения информации о базах и таблицах

Создание имени для входа (Login)


На сервере MS SQL, где расположены базы 1С создать имя для входа "_1Cmonitor" (имя может быть любым) с ролью "Public" и дополнительными правами:

  • Connect SQL,
  • Connect Any Database,
  • View any database,
  • View server state.

Указать способ аутентификации: SQL Server authentification.

Добавление прав на чтение данных баз 1С


Для кажой базы 1С, для которой требуется получать информацию об использовании и таблицах создать пользователя "_1Cmonitor" (имя может быть любым) и связать его с именем для входа "_1Cmonitor". В свойствах базы назначить этому пользователю право SELECT.

Или использовать скрипт для назначения прав для всех баз 1С, зарегистрированных на сервере:

Имя для входа и пользователя можно изменить в переменной @monitorUserName (при необходимости поправить длину имени в определении).

DECLARE @monitorUserName NVARCHAR(10);
SET @monitorUserName = '_1Cmonitor';

DECLARE @command NVARCHAR(1000);
SELECT @command = '
DECLARE @is1cbase BIT;
SELECT @is1cbase = COUNT(Tables.name) FROM ?.sys.tables AS Tables WHERE Tables.name = ''v8users''

IF (@is1cbase = 1)
BEGIN
	USE ?
	DECLARE @hasMonitorUser BIT;
	SELECT @hasMonitorUser = COUNT(Principals.name) FROM ?.sys.database_principals AS Principals WHERE Principals.name = ''' + @monitorUserName + '''

	IF (@hasMonitorUser = 0)
	BEGIN
		CREATE USER [' + @monitorUserName + '] FOR LOGIN [' + @monitorUserName + '] WITH DEFAULT_SCHEMA=[dbo]
	END

	GRANT SELECT ON DATABASE::[?] TO [' + @monitorUserName + '];
END
'

EXEC sp_MSforeachdb @command

Конфигурация HiRAC (./src/config/racsettings.json)

  • ras - параметры сервера администрирования RAS
    • <имя сервера администрирования> - параметры конкретного сервера администрирования RAS (__default для значений по умолчанию)
      • admin_name - имя администратора агента кластера
      • admin_pwd - пароль администратора агента кластера
      • ras - адрес сервера администрирования RAS
      • rac - версия утилиты администрирования RAC
      • reserves - резервируемый сервер администрирования
  • cluster - параметры кластеров 1С
    • <имя кластера:порт> - параметры кластера (rmngr) по указанному адресу:порту (__default для значений по умолчанию)
      • selectedInfobasesOnly - true - получать информацию только о перечисленных информационных базах
      • admin_name - имя администратора кластера
      • admin_pwd - пароль администратора кластера
        • infobase - параметры информационных баз в кластере
          • <Имя ИБ> - параметры информационной базы (__default для значений по умолчанию)
            • admin_name - имя администратора ИБ
            • admin_pwd - пароль администратора ИБ
            • dbms_type - тип СУБД (в настоящий момент только "MSSQLServer")
            • dbms_server - адрес сервера СУБД
            • dbms_user - имя пользователя для получения информации от СУБД
            • dbms_pwd - пароль пользователя для получения информации от СУБД
            • dbms_base - имя базы данных в СУБД
            • dbms_dbstruct_lifetime - период актуальности структуры хранеения базы данных
            • dbms_db_lifetime - период актуальности информации о базе данных в СУБД
            • dbms_tables_lifetime - период актуальности информации о таблицах в СУБД
  • useCommands - true - включена возможность выполнения команд управления кластером; false -возможность отключена
  • dbms_dbstruct_cache - каталог для хранения кэша структуры данных баз СУБД
  • selectedClustersOnly - true - получать информацию только о перечисленных кластерах
  • connectionPoolSize - число одновременных подключений к сервису администрирования
  • reconnectAtempts - количество попыток инициализации кластера 1С
  • reconnectInterval - задержка перед повторным подключением (мсек.) умножается на номер попытки подключения
  • connectionWait - время ожидания свободного подключения (мсек.), после которого будет сообщено об ошибке подключения
  • connectionLockInterval - максимальное время блокировки подключения (мсек.), после которого подключение будет принудительно освобождено
  • logQueryDuration- true - будет выполняться логирование времени выполнения запросов в файл
  • QueryDurationLogFilename - путь к файлу лога замеров времени

Регистрация в качестве службы

В командный файл reg_os_web_as_service.cmd регистрации HiRAC в качестве сервиса Windows. Запуск:

reg_os_web_as_service.cmd <путь к OneScript.Web>\OneScript.WebHost.exe <адрес>:<порт> <путь к hirac>\src

Варианты запросов

  • <тип объектов>/list - список объектов
  • <тип объектов>/<путь к объекту> - содержимое объекта по указанному пути
  • <тип объектов>/<путь к объекту>/<свойство> - значение свойства <свойство> объекта по указанному пути
  • counter/list - описания доступных счетчиков
  • counter/<тип объектов>/list - описания доступных счетчиков для <тип объектов>
  • counter/<тип объектов>/<счетчик> - значения счетчика <счетчик> для <тип объектов>

Используемые имена объектов (<тип объектов>)

  • cluster - информация о кластерах
  • server - информация о рабочих серверах
  • process - информация о рабочих процессах
  • infobase - информация об информационных базах
  • session - информация о сеансах
  • connection - информация о соединениях

Используемые типы объектов (<путь к объекту>)

  • cluster - cluster/<адрес сервера>/<порт сервера> или cluster/<идентификатор>
  • server - server/<адрес сервера>/<порт сервера> или server/<идентификатор>
  • process - process/<адрес сервера>/<порт процесса> или process/<идентификатор>
  • infobase - infobase/<имя информационной базы> или infobase/<идентификатор>
  • session - session/<имя информационной базы>/<номер сеанса> или session/<идентификатор>
  • connection - connection/<имя информационной базы>/<номер сеанса> или connection/<идентификатор>

Доступные поля запросов

Доступные поля запроса списка (<имя объекта>/list)

  • field - имя поля запрашиваемого объекта, которое попадет в результат (field=_all - попадут все поля)
  • filter_<поле объекта>_<операция сравнения> - условие (фильтр) по значению поля
  • order - сортировка по значениям полей
  • top - отбор указанного количества первых результатов с учетом порядка сортировки order

Доступные поля запроса счетчиков (counter/<имя объекта>)

  • filter_<поле объекта>_<операция сравнения> - условие (фильтр) по значению поля
  • dim - имя измерения счетчика по которым выполняется свертка значения счетчика (dim=_all - попадут все измерения счетчика)
  • top - отбор указанного количества первых значений счетчика с максимальным значением
  • aggregate - агрегатная функция свертки значений счетчика
  • format - формат вывода результата

Доступные операции сравнения фильтров

  • eq - равно (может не указываться), для строк выполняется без учета регистра
  • neq - не равно, для строк выполняется без учета ре
View on GitHub
GitHub Stars53
CategoryData
Updated19d ago
Forks16

Languages

1C Enterprise

Security Score

100/100

Audited on Mar 12, 2026

No findings