Предыстория.
Для администрирования серверов 1С: Предприятие с версии 8.0 поставляется консоль «Администрирование серверов 1С Предприятия» (оснастка для Microsoft Management Console). Инструмент вполне функциональный и удобный, развивавшийся вместе с версиями платформы и служащий верой и правдой администратору.
С версии 8.1 появился вариант дистрибутива сервера для ОС, основанных на Linux (на базе deb и rpm). Это дало возможность потребителям уменьшить использование стека технологий Microsoft и значительно экономить на лицензиях и ПО. А что же для администратора? Все та же оснастка для MMC. Сложно обвинить разработчика в консерватизме, ведь прогресс в развитии платформы выглядит впечатляющим на протяжении многих лет (что часто становится поводом для упрека — стабильность приносится в жертву прогрессу). Но факт остается фактом — администрировать сервера версий 8.1 и 8.2 предлагалось из под Windows.
В версии 8.3 появились новые кроссплатформенные средства управления кластером серверов — ras (сервер управления) и rac (клиент управления). Даже среди людей, постоянно работающих с платформой 1С: Предприятие, многие о них просто не знают или едва слышали. Т.е. популярности такой метод управления не получил. И причиной видится то, что rac — консольное приложение. Ленивому администратору проще запустить mmc и накликать мышкой все, что нужно. Но есть еще одна возможность…
Парни из 1С, вы серьезно?
Почему бы не использоваться сервер ras без rac? Благо, компания 1С опубликовала «Administrative Service API» для Java.
В итоге нам понадобится:
1. Установленный и настроенный ras. По умолчанию это приложение устанавливается вместе с серверной частью (в один каталог с ragent.exe), но по умолчанию не работает. Исправим этот недостаток.
Можно настроить запуск при загрузке сервера:
ras cluster --port=<port> <host[:port]>
(если не задать порт, по умолчанию используется 1545)
Или установить ras как сервис Windows (пример файла register-ras.bat для регистрации от компании 1С):
@echo off
rem %1 – полный номер версии 1С:Предприятия
set SrvUserName=<имя пользователя>
set SrvUserPwd=<пароль пользователя>
set CtrlPort=1540
set AgentName=localhost
set RASPort=1545
set SrvcName="1C:Enterprise 8.3 Remote Server"
set BinPath="\"C:\Program Files\1cv8\%1\bin\ras.exe\" cluster --service --port=%RASPort% %AgentName%:%CtrlPort%"
set Desctiption="Сервер администрирования 1С:Предприятия 8.3"
sc stop %SrvcName%
sc delete %SrvcName%
sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Desctiption%
2. Клиент для ras под Android DroidRAC2 пришлось написать самому. На мой взгляд там все интуитивно понятно по настройке и подключению. Приложение старается повторять стиль и UI привычной консоли для MMC. Бесплатно и без смс, как говорится. Поддерживаются возможности по просмотру всего дерева компонентов и по редактирования основных настроек, которые нужно изменять в процессе эксплуатации.
Дополнение к версии 0.2 (немного о счетчиках потребления ресурсов сервера 1С и мониторинге производительности)
С версии 8.3.13 в платформу 1С:Предприятие добавлены интересные механизмы
Счетчик потребления ресурсов,
Ограничение потребления ресурсов.
С помощью них предложено решать следующие задачи
Автоматический мониторинг потребления ресурсов на сервере 1С:Предприятия.
Повышение безопасности сервера за счет прерывания операций, выполнение которых влияет на производительность сервера в целом.
Сбор статистики потребления ресурсов за произвольный промежуток времени.
Подробно и с примерами можно познакомиться в большом исследовании коллеги Capitan Nemo
Инструменты замечательные, но если подумать немного о сценариях использования, то
1) Доступно только для лицензии КОРП. Т.е. возможность качественной работы платформы 1С нужно докупать… А из коробки – и так сойдет. Недальновидное решение, субъективно
2) «Автоматический мониторинг потребления ресурсов на сервере 1С:Предприятия».
Где посмотреть графики потребления? Нигде. Cогласно документации, замеры производительности сохраняются в каталог центрального рабочего сервера в файл rescntsrv.lst (используется для восстановления значений счетчиков после перезапуска кластера серверов) и обновляются каждые 20 секунд - т.е. затираются.
С одной стороны, это не дает разрастаться временным файлам, но с другой значения счетчиков исчезают в никуда.
3) «Повышение безопасности сервера за счет прерывания операций, выполнение которых влияет на производительность сервера в целом.»
Да, теперь на сервере 1С может включить режим самозащиты от пользователей, запускающих тяжелые задачи. Что можно с ними сделать (действия при превышении ограничения потребления ресурсов)
- ничего не делать (факт превышения счетчика будет записан в ТЖ (событие <ATTN>), который потом можно не спеша проанализировать)
- понижение приоритета потока. Казалось бы, логично, но… Если в этот момент выполняется транзакция, она будет выполняться дольше и здравствуйте таймауты по блокировкам у других пользователей. Не убивайте параллельность работы пользователей, оно того не стоит
- прерывание серверного вызова/завершение сеанса. Наверное, чересчур жестоко для работающей системы. Можно директора или главбуха красным крестом осенить…
4) «Сбор статистики потребления ресурсов за произвольный промежуток времени».
Т.е. можно настроить счетчик с большой длительностью сбора и иногда поглядывать на его значения. Это как интеграл от кардиограммы – средние значения за длительный промежуток времени не скажут ничего без учета временных выбросов/пиков. В среднем ведь ваш сервер работает, иначе его давно бы поменяли.
В итоге в DroidRAC2 начиная с версии 0.2.0 добавлена возможность получать уведомления о состоянии сервера 1С, в том числе о превышении ограничений потребления ресурсов кластера.