Классическая консоль администрирования серверов, поставляемая вместе с платформой, имеет некоторое количество недостатков:
- Она требует регистрации COM-компоненты radmin.dll, которая для каждой версии сервера своя. Если нужно запустить консоль версии 8.3.11.2699, а затем 8.3.17.2231, то перед каждым запуском нужно регистрировать radmin.dll соответствующей версии.
- В одном окне консоли нельзя администрировать сервера разных версий.
- Работает только под Windows.
- Для запуска требует прав администратора ОС
Также есть внешняя обработка от фирмы 1С, но запускать ее нужно в информационной базе, что может быть неудобно, к тому же эта база должна быть на платформе 8.3.15 и выше, т.е. администрирование серверов 8.3.14 и ниже не поддерживается.
Для исправления этих недостатков я решил написать собственную консоль для администрирования кластера серверов 1С.
Консоль работает не только в Windows, но и в Linux, и MacOS.
Управление всеми серверами происходит в одном окне.
Также сейчас в разработке плагин для EDT интегрирующий в нее весь функционал консоли администрирования. Плагин пока не получается.
Консоль для взаимодействия с серверами использует "Сервер администрирования (RAS)".
Моя консоль администрирования серверов не является оберткой над RAC, как может показаться, а написана полностью на Java и взаимодействует с сервером администрирования через "Программный Java-интерфейс для административного сервера", который опубликован в свободном доступе на сайте ИТС в разделе "Методическая поддержка для разработчиков и администраторов 1С:Предприятия 8" (https://its.1c.ru/db/metod8dev#content:4985:hdoc).
Описание интерфейса и настроек
Основное окно программы похоже на штатную консоль администрирования: слева панель со списком серверов, справа - панель с информацией об активированном в левой панели элементе. На скриншоте показано окно программы, в котором выполнен клик на узле "Инфобазы".
Справа показана информация по всем информационным базам, зарегистрированным на кластере "Локальный кластер (1341)": сеансы, соединения и блокировки - как в штатной консоли администрирования, и дополнительно вкладки "Рабочие процессы" и "Рабочие серверы" с детальной информацией по ним. Тот же результат будет, если кликнуть на узле "Локальный кластер (1341)". Клик по одной информационной базе ожидаемо покажет информацию только по ней:
Новые сеансы, соединения, блокировки и рабочие процессы выделяются зеленым шрифтом. Длительность подсветки регулируется в настройках.
Спящие сеансы выводятся в список с собственной иконкой . Так же в настройках можно включить затенение, для улучшения визуального просмотра списка.
Для отслеживания деятельности отдельных сеансов можно включить режим слежения - поставить флаг слева от сеанса . Тогда при обновлении списка эти сеансы будут выделяться синим шрифтом.
Добавление, удаление серверов и редактирование настроек подключения осуществляется через контекстное меню сервера:
Есть два режима подключения:
1. Использовать удаленный RAS
2. Запускать локальный RAS
Подробнее об обоих режимах:
1. Использовать удаленный RAS
Этот режим подключения используется в случае, если на сервере приложений 1С уже запущен RAS. Не важно как он запущен: как служба или как приложение. На самом деле он может быть запущен даже не на сервере приложений, а на другом хосте. Тут важно то, что мы подключаемся к уже существующему запущенному экземпляру RAS, который связан с определенным агентом сервера 1С.
Обязательным для подключения является группа настроек "Параметры удаленного RAS".
Группа параметров "Параметры агента сервера" не являются обязательными, но используется для отображения элемента в дереве серверов, поэтому желательно тоже их заполнить.
2. Запускать локальный RAS (пока поддерживается только для Windows)
Бывает, что сервер администрирования RAS не запущен на сервере приложений 1С и у нас нет возможности сделать так, что бы он регулярно запускался. В таком случае можно возложить на утилиту обязанность его запускать локально каждый раз при подключении к серверу. Естественно, на нашем ПК, должен быть установлен компонент "Администрирование сервера 1С:Предприятие" (об этом компоненте писалось в начале статьи).
Для этого режима подключения необходимо заполнить группу параметров "Параметры запуска локального RAS" выбрав версию платформы и порт для запуска. Порт является локальным и может быть указан абсолютно любой. Доступные версии платформы берутся поиском файла "ras.exe" в каталогах "C:\Program Files\1cv8" и "C:\Program Files (x86)\1cv8". В дальнейшем добавится поддержка Linux и MacOS.
На вкладке "Учетные данные" хранятся логины и пароли для подключения к центральному серверу и кластерам. Сами данные хранятся в том же файле config.json в открытом виде, так что каждый сам решает, хранить их или вводить каждый раз при подключении. В будущем здесь же будут храниться логин/пароли для подключения к информационным базам.
На текущий момент консоль администрирования поддерживает:
- просмотр соединений и сеансов по инфобазе или по всем инфобазам в кластере и их принудительное завершение
- создание, удаление и редактирование настроек кластеров:
- создание, удаление и редактирование настроек информационных баз. Фича - быстрое создание новой информационной базы на основании другой, останется только поменять имя базы и указать пароль пользователя СУБД:
- создание, удаление и редактирование настроек рабочих серверов:
В окнах редактирования настроек кластера и рабочего процесса добавлены кнопки:
"Сброс" - сброс параметров на сохраненные на сервере (это не те настройки, что были при открытии, ведь кто-то может их поменять пока у нас открыто окно).
"Сброс на ПРОФ" - сброс параметров относящихся к лицензии ПРОФ на значения по-умолчанию.
Меню информационной базы дополнено функциями быстрого управления сеансами:
- Немедленно заблокировать сеансы. Выполняется установка флагов "Блокировка начала сеансов включена" и "Блокировка регламентных заданий включена"; поля "Начало блокировки", "Конец блокировки", "Сообщение блокировки", "Код разрешения" и "Параметр блокировки" очищаются.
- Завершить все сеансы. Выполняется принудительное завершение всех сеансов
- Завершить пользовательские сеансы. Выполняется принудительное завершение всех пользовательских сеансов - тонких и толстых клиентов. Конфигуратор, а так же все служебные сеансы (например сеанс утилиты администрирования) не завершаются.
В версии 0.4.0 добавились удобные поля для установки времени блокировки информационной базы, а так же возможность установить шаблон для подстановки в сообщение блокировки:
Скриншот окна настроек:
Все настройки сохраняются в файле config.json, расположенном в том же каталоге, что и программа.
Программа ведет собственный список серверов, который сохраняет в том же файле config.json.
Скачивание
Скачать консоль можно в разделе "Релизы" публикации, либо в репозитории, опубликованном на GitHub:
1. Утилита "OneS_ClusterAdmin":
https://github.com/YanSergey/OneS_ClusterAdmin
2. Плагин (в разработке) для 1C:Enterprise Development Tools (2021.1+):
https://github.com/YanSergey/edt.clusterAdmin
Доступно 3 версии утилиты:
- для Windows x64
- Linux (тестировалось на Ubuntu 18.04)
- MacOS (проверено на MacOS Monterey).
Для запуска консоли должна быть установлена Java 11, например "BellSoft Liberica Java JDK 11".
Запуск:
Для Windows и Linux открыть консоль в каталоге с утилитой и выполнить команду:
java -jar OneS_ClusterAdmin-0.2.0-windows-x64.jar
java -jar OneS_ClusterAdmin-0.2.0-linux.jar
Для запуска в MacOS необходимо запускать с параметром "--XstartOnFirstThread"
java --XstartOnFirstThread -jar OneS_ClusterAdmin-0.2.0-macOS.jar
В ОС Windows можно сопоставить тип файлов jar с приложением Java и запускать как обычное приложение (двойным кликом).
Обновление 0.1.1 (только для Windows):
Исправлены ошибки:
- Если отсутствовал файл config.json, то не определялась текущая ОС, и как следствие - список локальных RAS не формировался
- Если отсутствовал один из каталогов платформы ("C:\Program Files\1cv8" или "C:\Program Files (x86)\1cv8"), то не открывалась форма редактирования настроек сервера
Обновление 0.2.0:
- Списки (сеансы, соединения, блокировки, рабочие процессы, рабочие сервера) дополнены всеми столбцами из штатной консоли.
Порядок и ширина столбцов сохраняется.
Добавлены пункты контекстного меню с горячими клавишами:
- обновление списков (F5)
- удаление сеансов, соединений, рабочих серверов (DEL)
- просмотр свойств сеанса, рабочего сервера (F2)
- Добавлены возможности:
- включать подсветку новых сеансов/соединений и т.д. (длительность настраивается)
- затенять спящие сеансы
- отмечать сеансы для отслеживания активности (остаются подсвеченными при обновлении списка)
- Добавлена возможность при создании подключения к серверу зачитать из буфера обмена адрес и порт сервера. Из буфера обмена читается строка подключения к инфобазе вида:
Srvr="server1c:1341";Ref="ssl_3.0"; - При ошибке подключения теперь выводится окно с сообщением об ошибке. В случае настроенного автоподключения к инфобазе сообщение не выводится автоматически, просмотреть сообщение можно через контекстное меню сервера.
Обновление 0.3.0:
- Реализована сортировка столбцов всех списков. В каждом списке запоминается столбец и направление сортировки.
Добавлена настройка "Направление сортировки строк".
Влияет на то, какое направление сортировки будет при смене сортируемого столбца:
"Как предыдущая" / "По убыванию" / "По возрастанию" - Реализована сортировка списка серверов: сдвиг элементов вверх/вниз и автосортировка по имени
- Реализована возможность добавлять инфобазы в избранное, сортировка информационных баз (по-умолчанию / по имени / по избранному и имени)
- Проверка (при запуске) и скачивание (через форму "О программе") обновлений
- Открытие элемента дерева (сервер/кластер/инфобаза) двойным кликом мыши (ранее открывалось только через контекстное меню, а по двойному клику разворачивался/сворачивался узел дерева)
- Добавлена панель инструментов с частыми кнопками (создание/изменение/удаление элемента дерева, обновление активного списка)
- Варианты сохранения данных доступа к центральному серверу, кластеру, инфобазам изменены на:
"Не сохранять" / "Только имя" / "Имя и пароль"
Добавлена возможность сохранения данных доступа к инфобазам.
Добавлена возможность управлять данными доступа (удалять, менять имя/пароль)
Обновление 0.4.0:
1. Автообновление активного списка (сеансы, соединения и т.д.) с интервалом 1, 2, 5 или 10 секунд
https://github.com/YanSergey/OneS_ClusterAdmin/issues/5
2. Подключение к серверам теперь происходит в фоне (не блокируется интерфейс)
3. Добавлена возможность запускать произвольные скрипты (bat/cmd) для инфобаз.
https://github.com/YanSergey/OneS_ClusterAdmin/issues/20
Скрипты выполняются в фоне
Примеры скриптов прилагаются. В скриптах автоматически подставляются параметры (имя и порт сервера, имя базы, логин и пароль к базе).
В случае если параметр невозможно заполнить автоматически, будет выведено диалоговое окно.
4. Добавлена возможность запускать конфигуратор, предприятие, выгрузка/загрузка DT, выгрузка/загрузка CF.
5. В меню кластера добавлен пункт "Перезапустить рабочие процессы"
https://github.com/YanSergey/OneS_ClusterAdmin/issues/4
6. В главное меню добавлен пункт поиска новых серверов.
Выполняется импорт:
- из списка зарегистрированных в штатном стартере
- из зарегистрированных в штатной консоли администрирования
https://github.com/YanSergey/OneS_ClusterAdmin/issues/10
7. В окно редактирования инфобазы добавлены удобные поля установки даты запрета входа в базу.
Возможно переключаться между стандартным текстовым полем и удобным.
Добавлена возможность задать шаблон сообщения блокировки инфобазы
https://github.com/YanSergey/OneS_ClusterAdmin/issues/3
8. Редактирование администраторов центрального сервера и кластера
https://github.com/YanSergey/OneS_ClusterAdmin/issues/23
9. Работа с Требованиями назначения функциональности
https://github.com/YanSergey/OneS_ClusterAdmin/issues/24
10. Добавлена настройка, при включении которой в списках для полей с типом ДатаВремя у значений текущего дня будет отображаться только время
11. Переключение уровней логирования работы программы (info, debug, error, off)
12. В контекстное меню списков добавлен пункт копирования значения ячейки (копирование по Ctrl+C уже было сделано в прошлой версии)
13. В контекстное меню сеансов добавлен пункт "Следить за сеансом" (аналог установки флажка в первом столбце).
14. Исправлена ошибка отображения "Веб-клиента" и "Фонового задания" в списке сеансов как "Неизвестного клиента"
15. Исправлена ошибка: после нажатии ОК в окне редактирования настроек кластера создавался узел инфобаз внутри узла инфобаз
16. Исправлена ошибка неправильной сортировки дат
17. Исправлена ошибка, если при подключенном сервере сменить вариант подключения
https://github.com/YanSergey/OneS_ClusterAdmin/issues/25