Чёрный пояс 1С. AdminClusterMonitor: открытый учебный проект для безопасного администрирования кластера 1С на Linux
Разбор проблемы «кластер 1С на заводских настройках» из статьи infostart.ru доведён до рабочего инструмента: открытый учебный проект AdminClusterMonitor - внешняя обработка 1С и набор Linux-скриптов, которые находят «перестарков» (рабочие процессы без активных соединений старше заданного порога), безопасно перезапускают их в режиме dry-run с подтверждением, логируют действия и уведомляют администратора в Telegram или почту. Ниже - архитектура, установка на Ubuntu/CentOS, ключевые фрагменты BSL и bash-кода, тестовые сценарии и чек-лист администратора.
Контекст: от разбора проблемы к рабочему инструменту
Статья infostart.ru «Кластер 1С на заводских настройках: норма или мина на боевой базе» точно описывает проблему: кластер 1С живёт на «заводских настройках», а администратор доверяет консоли больше, чем реальному поведению процессов.
Но в исходном виде это - умозрительный разбор без готового инструмента. Ниже - следующий шаг: открытый учебный проект AdminClusterMonitor, который показывает практический, инженерный подход к администрированию описанных в той статье проблем, с реальным кодом и командами для проверки на своём кластере.
Мы подготовили учебный проект AdminClusterMonitor - набор из внешней обработки, скриптов и инструкций, который демонстрирует:
- как собирать информацию о процессах кластера 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-подобной), допускающей:
- свободное использование в личных и корпоративных проектах;
- модификацию и доработку под свои нужды;
- распространение улучшенных версий с указанием авторства исходного проекта.
Проект открыт для доработки сообществом:
- добавите свои сценарии и улучшения;
- расширите поддержку других платформ и окружений;
- поделитесь опытом эксплуатации в продуктивных кластерах.
Полный код проекта - в открытом репозитории github.com/NickScherbakov/infostart-gift, лицензия MIT-подобная, свободна для доработки.