AdminClusterMonitor — учебный проект для администраторов 1С
Практическая реализация мониторинга и безопасного управления процессами кластера 1С с акцентом на Linux и инженерный подход к администрированию.
Исходная статья: «Кластер 1С на заводских настройках»
Авторы учебного проекта: Нинель и Николай Щербаковы
Обращение к автору исходной статьи Кластер 1С на заводских настройках: норма или мина на боевой базе
Уважаемый Коллега, вы написали превосходную статью. Она очень точно описывает проблемы, которые возникают, когда кластер 1С живёт на «заводских настройках» и администратор доверяет консоли больше, чем реальному поведению процессов.
Однако в текущем виде это - чистая умозрительная лекция. Поэтому мы с моими соавторами решили сделать следующий шаг: показать Вам и Вашим читателям практический, инженерный подход к инструментам администрирования описанных Вами проблем.
Мы подготовили учебный проект AdminClusterMonitor (https://github.com/NickScherbakov/infostart-gift) - набор из внешней обработки, скриптов и инструкций, который демонстрирует:
- как собирать информацию о процессах кластера 1С;
- как находить «перестарков» без соединений;
- как безопасно выполнять перезапуск (с dry-run и подтверждением);
- как логировать действия и ошибки;
- как настроить автоматическую проверку через
systemdна Linux; - как отправлять уведомления (почта, Telegram) при обнаружении проблем.
Всё это оформлено как пошаговый учебный проект, который можно изучать, повторять, дорабатывать и развивать вместе с сообществом Infostart.ru.
Обзор учебного проекта AdminClusterMonitor
Цель проекта: показать практическую реализацию мониторинга и безопасного управления процессами кластера 1С, с акцентом на Linux-окружение и воспроизводимые инженерные практики.
Основные задачи:
- Сбор списка процессов кластера 1С и их метрик (возраст, количество соединений, база, пользователь, хост).
- Выявление процессов, которые старше заданного периода и не имеют активных соединений («перестарки»).
- Реализация безопасного перезапуска: dry-run, фильтрация по соединениям, подтверждение перед действием.
- Экспорт отчётов (CSV/XLSX) для анализа и аудита.
- Интеграция с Linux: запуск по расписанию через
systemd, логирование вjournald, ротация логов. - Отправка уведомлений (почта, Telegram) при обнаружении проблем.
- Документация и тестовые сценарии для обучения администраторов.
Формат: учебный проект, который можно:
- развернуть в тестовой среде;
- пошагово пройти по инструкции;
- адаптировать под свои кластеры и инфраструктуру;
- использовать как основу для собственных инструментов администрирования.
Состав пакета для Infostart
Мы передаём сообществу архив ready_for_infostart.zip, содержащий следующие файлы:
AdminClusterMonitor.epf— внешняя обработка 1С (BSL), основная логика мониторинга.admincluster_run.sh— скрипт запуска проверки (wrapper для headless-запуска обработки).admincluster_notify.sh— скрипт отправки уведомлений (почта, Telegram).install_admincluster.sh— скрипт установки файлов, прав иsystemdunit/timer.admincluster-monitor@.service— шаблонsystemd-unit для профиля кластера.admincluster-monitor@.timer— шаблонsystemd-таймера для периодического запуска.config.conf.example— пример конфигурационного файла для уведомлений и путей.profiles.json.example— пример описания профилей кластеров (RasHost, RasPort, имя и т.д.).logrotate_admincluster— пример конфигурацииlogrotateдля ротации логов.README.md— краткая документация по установке и запуску.tests.md— тестовые сценарии и учебные задания.example_report.csv— пример отчёта по процессам.LICENSE.txt— лицензия (MIT-подобная, свободное использование и доработка).
Ниже приведены ключевые фрагменты кода и конфигураций, чтобы читатели могли видеть структуру проекта прямо в тексте.
Установка и настройка на Linux (Ubuntu/CentOS)
Шаг 1. Подготовка тестовой среды
Рекомендуется сначала развернуть проект в тестовой среде (отдельный сервер или тестовая копия базы), чтобы отработать сценарии без риска для продуктивного кластера.
- Убедитесь, что у вас есть доступ к кластеру 1С (RAS/ragent) и тестовая база.
- Создайте системного пользователя (например,
1c) для запуска задач мониторинга. - Подготовьте каталог для проекта:
/opt/adminclusterи конфигурации:/etc/admincluster.
Шаг 2. Установка файлов проекта
Скопируйте файлы из архива в соответствующие каталоги и выполните скрипт установки:
Шаг 3. Настройка конфигурации
Отредактируйте файл /etc/admincluster/config.conf и задайте параметры уведомлений и путей:
В файле /etc/admincluster/profiles.json опишите профили кластеров (пример структуры):
Шаг 4. Настройка systemd-unit и таймера
Пример systemd-unit для профиля кластера:
Пример таймера:
Активация таймера для профиля prod:
Шаг 5. Проверка логов и работы
Для проверки работы используйте:
В тестовом режиме можно запустить скрипт напрямую:
Примеры кода и скриптов
Фрагмент BSL-логики внешней обработки
Скрипт запуска проверки — admincluster_run.sh
Скрипт уведомлений — admincluster_notify.sh
Тестовые сценарии и учебные задания
Ниже приведены примеры тестовых сценариев, которые можно использовать как учебные задания для администраторов.
Сценарий 1. Базовая проверка «перестарков»
- Установите период перезапуска, например,
30минут. - Создайте в тестовой среде процессы с возрастом 10 и 90 минут (или смоделируйте их).
- Запустите проверку для тестового профиля.
- Убедитесь, что процесс старше периода и без соединений помечен как «перестарок».
Сценарий 2. Процесс с соединениями
- Создайте процесс с возрастом > периода и количеством соединений > 0.
- Запустите проверку и dry-run перезапуска.
- Убедитесь, что такой процесс не перезапускается и в логах есть запись о наличии соединений.
Сценарий 3. Уведомления
- Настройте
TELEGRAM_BOT_TOKEN,TELEGRAM_CHAT_IDиALERT_EMAIL. - Запустите проверку с искусственно созданными «перестарками».
- Убедитесь, что уведомления приходят в Telegram и на почту.
Сценарий 4. Автоматизация через systemd
- Активируйте таймер для профиля
test. - Проверьте логи через
journalctl. - Убедитесь, что проверки выполняются по расписанию.
Чек-лист администратора
- Проверена работа в тестовой среде, продуктивный кластер не затронут.
- Параметр периода перезапуска выбран осознанно (с учётом нагрузки и SLA).
- Dry-run режим протестирован, реальные перезапуски выполняются только после проверки.
- Процессы с активными соединениями не перезапускаются автоматически.
- Логи пишутся в
journaldи/или в отдельные файлы с ротацией. - Уведомления настроены и протестированы (Telegram, почта).
- Файлы конфигурации и секреты имеют корректные права доступа.
- Документация прочитана, тестовые сценарии пройдены.
Безопасность и работа с секретами
В проекте используются учётные данные для доступа к кластеру и для отправки уведомлений. Рекомендуется:
- Не хранить пароли в открытом виде; использовать системные механизмы (keyring,
gpg, Vault). - Ограничить права доступа к файлам конфигурации (
chmod 600, владелец — системный пользователь). - Проверить настройки SELinux/AppArmor, при необходимости добавить разрешающие правила.
- Разделять тестовую и продуктивную среду; сначала отрабатывать сценарии на тесте.
Лицензия и приглашение к доработке
Проект предлагается сообществу Infostart под свободной лицензией (MIT-подобной), допускающей:
- свободное использование в личных и корпоративных проектах;
- модификацию и доработку под свои нужды;
- распространение улучшенных версий с указанием авторства исходного проекта.
Мы будем рады, если вы и читатели статьи:
- добавите свои сценарии и улучшения;
- расширите поддержку других платформ и окружений;
- поделитесь опытом эксплуатации в продуктивных кластерах.
Вступайте в нашу телеграмм-группу Инфостарт