1с центр администрирования настройка
Центр администрирования предназначен для автоматизации задач администрирования и эксплуатации информационных систем, построенных на платформе 1С:Предприятие 8. На сегодняшний день, когда системы становятся все более сложными, проекты масштабными, а контуры, где развернуты информационные системы, все более распределенными, остро встает вопрос автоматизации задач администрирования таких систем. Администрирование вручную и/или при помощи нетиповых средств показывают себя тем менее эффективными и тем более затратными, чем крупнее информационная система и администрируемый контур.
Состав
- конфигурацию (прикладное решение) Центр администрирования;
- расширение Центр администрирования;
- демонстрационную базу Центр администрирования (демо);
- комплект поставляемых скриптов и сценариев;
- дистрибутивы Python для быстрого развертывания;
- комплект документации.
Центр администрирования может работать как самостоятельная программа, как подсистема прикладного решения, а также может быть подключен как расширение конфигурации. Преимущества использования Центра администрирования:
- снижение стоимости владения системой за счет сокращения трудозатрат на ее администрирование;
- сокращение времени обновления на новые версии платформы и конфигураций;
- снижение рисков ошибок администрирования при выполнении задач эксплуатации системы за счет стандартизации сценариев;
- автоматизация процессов тестирования версий конфигурации перед обновлением;
- единый интерфейс для контроля состояния задач администрирования всего контура.
Центр администрирования будет наиболее полезен при внедрении и эксплуатации крупных корпоративных информационных систем с большим количеством рабочих мест и распределенной структурой контура:
- КОРП-внедрения;
- крупный распределенный контур с большим количеством информационных баз и серверов;
- крупная распределенная информационная база, например, розничная сеть.
Ключевые плюсы
- Продукт отлично масштабируется
- Функции управления и контроля централизованы
- Все автоматизируемые операции выполняются на удаленных машинах
- Максимальная гибкость в использовании:
- можно использовать как самостоятельный продукт или интегрировать в состав уже существующей системы;
- o можно использовать поставляемые «из коробки» сценарии или дополнять их в режиме конструктора собственными сценариями администрирования;
- o можно использовать поставляемые скрипты на Python или подключать и использовать собственные наработки на любом удобном вам языке.
- может одинаково применяться для задач администрирования контура, развернутого как на ОС Windows, так и на Linux (Ubuntu 16.04 и выше; Centos 7 и выше).
- работа через дружественный интерфейс 1С:Предприятия 8;
- архитектура контура и реализация сценариев не выносится «наружу».
Архитектура
Центр администрирования — это многокомпонентный продукт. Логически он состоит из управляющей части — единого рабочего места администратора, и исполняющей части, устанавливаемой на компьютеры автоматизируемого контура.
Управляющая конфигурация разработана на встроенном языке 1С:Предприятия 8 и выполняет следующие функции:
- единый интерфейс для управления, планирования и контроля задач автоматизации (рабочее место администратора);
- создание и редактирование сценариев автоматизации;
- контроль выполнения и оркестрация сложных распределенных сценариев (например, обновление платформы на кластере из нескольких серверов);
- анализ результатов выполнения сценариев автоматизации.
Исполняющая часть состоит из Агента, устанавливаемого на каждой машине автоматизируемого контура и комплекта скриптов и конфигурационных файлов для них, расположенных вместе с агентом.
Функциональные возможности
Центр администрирования содержит набор готовых для использования наиболее распространенных сценариев автоматизации. При этом пользователь может создавать собственные и изменять существующие сценарии автоматизации в соответствии со спецификой задач на разных проектах, а также конструировать из простых сценариев более сложные. Центр администрирования предоставляет следующие основные функциональные возможности работы со сценариями:
- запуск сценариев автоматизации в тестовом режиме (контроль корректности сценария, окружения, настроек без изменения состояния системы);
- запуск сценариев автоматизации в рабочем режиме (изменение состояния системы);
- автоматический откат сценариев в случае неудачи;
- планирование и отслеживание работ в календаре;
- разделение на контуры автоматизации (проекты), в рамках которых можно разделять выполнение сценариев и доступ к различным блокам автоматизации;
- формирование отчетов о выполненных работах (чек-листы, сводная статистика и т. д.).
Основные сущности
Центр администрирования работает с командами и скомпонованными из них сценариями. Основное правило — сценарий переводит систему в новое состояние (state). Команда — это максимально простое, но при этом самодостаточное действие, которое можно произвести над системой для перевода ее из состояния «1» в состояние «2» (запуск службы, обновление конфигурации информационной базы, изменение настройки кластера и т. п.). Команда фактически является простым сценарием автоматизации. Сценарий автоматизации — это последовательность команд автоматизации выстроенных в порядке, необходимом для перевода системы из состояния «1» в состояние «2».
Основные сценарии автоматизации в виде скриптов и поставляемых данных доступны в составе Центра администрирования «из коробки». Также пользователям решения предоставляется возможность расширять как состав команд, так и создавать в режиме конструктора новые или менять существующие сценарии.
Со временем набор поставляемых сценариев предполагается расширять.
Выполнение плановых работ
- добавить новый экземпляр сценария;
- скопировать существующий сценарий (через мастер копирования);
- стартовать выполнение сценария;
- стартовать тест сценария;
- запланировать сценарий;
- прервать сценарий;
- продолжить выполнение неуспешного сценария (продолжение выполнения с повтором неуспешного шага);
- вернуть сценарий к начальному состоянию;
- сформировать чек-лист выполнения по выбранным сценариям.
- просматривать запланированные и завершенные задания администрирования за выбранный период;
- открывать элемент задания/экземпляра двойным кликом мыши на элементе календаря;
- создавать/удалять/задавать расписание периодического запуска сценария из контекстного меню.
Выполнение регулярных задач обслуживания
Запуск сценариев через функционал планирования удобен в случае с регламентными сценариями, ассоциированными с плановыми работами по изменению состояния системы (обновление, изменение настроек и т. п.). Но для выполнения регулярных операций обслуживания такой функционал не очень удобен.
- создание резервных копий;
- регулярный перенос технологических данных с сервера в сетевое файловое хранилище;
- регулярный запуск внешней обработки для целей мониторинга системы.
Для выполнения регулярных однотипных операций обслуживания создана подсистема «Планировщик заданий». Подсистема оперирует понятиями Действие планировщика и Задание планировщика
Действие планировщика — это тот сценарий, который должен выполняться с определенной периодичностью.
Задание планировщика описывает, на каких машинах и по какому расписанию будет выполняться заданное действие. В задании планировщика указываются действие для выполнения, задается расписание задания и список машин, на которых предполагается выполнение данного задания.
Расписание задается в форме редактирования расписания регламентного задания и может быть задано с большой точностью.
Для каждого задания ведется журнал выполнения.
Другие возможности
- администрирование нескольких контуров за счет функционала разделения на проекты;
- разделение полномочий администраторов вплоть до использования разных комплектов сценариев;
- возможность выполнить тестовый прогон сценария без изменения состояния системы и т. д.
Назначение Состав Ключевые плюсы Архитектура Функциональные возможности Основные сущности Выполнение плановых работ Выполнение регулярных задач обслуживания Другие возможности
Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.Мы готовим к выпуску beta-версию нового прикладного решения. Рабочее название продукта 1С:Центр администрирования (недавно мы называли его «Библиотека автоматизации», но нам разонравилось :-).
Для кого и для чего предназначен продукт
Если вы занимаетесь задачами администрирования, эксплуатации, сопровождения, вы знаете насколько трудоемким и затратным может стать процесс, например, обновления на новый релиз конфигурации или платформы 1С:Предприятие. Если в вашем контуре количество машин и информационных баз можно сосчитать по пальцам одной руки, то такая задача может быть успешно и в срок выполнена администратором вручную. А если в вашем контуре 100 или 1000 машин?
1С:Центр администрирования предназначен для автоматизации задач администрирования и эксплуатации информационных систем, построенных на платформе 1С:Предприятие 8. На сегодняшний день, когда системы, становятся все более сложными, проекты масштабными, а контуры, где развернуты информационные системы, все более распределенными, остро встает вопрос автоматизации задач администрирования таких систем. Администрирование вручную и/или при помощи нетиповых средств показывают себя тем менее эффективными и тем более затратными, чем крупнее информационная система и администрируемый контур.
- КОРП внедрения,
- облачные решения,
- крупный контур с большим количеством баз, серверов,
- крупная распределенная информационная база (например, розничная сеть),
- централизованный процесс эксплуатации большого числа мелких клиентов (вне облака).
Преимущества продукта
- Универсальное решение для автоматизации любых задач администрирования. Да, вам больше не придется для каждого нового проекта писать автоматизацию «на коленке»;
- Набор сценариев может расширяться администратором. Мы постарались предусмотреть и подготовить набор основных сценариев для использования «из коробки», но если ваши сценарии очень специфичны, вы легко сможете адаптировать продукт под них;
- Возможность создания сложных сценариев из более простых (да, там есть конструктор!);
- Простота встраивания в имеющийся IT-ландшафт. 1С:Центр администрирования можно использовать как самостоятельную конфигурацию или встроить как подсистему в уже существующую.
- Единое рабочее место и единая точка контроля. Системы любого объема может администрировать один (!) человек;
- Количество автоматизируемых единиц оборудования не имеет значения.
Концепция и возможности продукта
1С:Центр администрирования работает с командами и скомпонованными из них сценариями. Основное правило – сценарий переводит систему в новое состояние (state).
Команда – это максимально простое, но при этом самодостаточное действие, которое можно произвести над системой для перевода ее из состояния "1" в состояние "2" (запуск службы, обновление конфигурации информационной базы, изменение настройки кластера и т.п.). Команда фактически является простым сценарием автоматизации.
Сценарий автоматизации – это последовательность команд автоматизации выстроенных в порядке, необходимом для перевода системы из состояния "1" в состояние "2".
Основные сценарии автоматизации в виде скриптов и поставляемых данных будут доступны в составе 1С:Центр администрирования «из коробки». Также пользователям решения предоставляется возможность расширять как состав команд, так и создавать в режиме конструктора новые или менять существующие сценарии.
С помощью 1С:Центр администрирования в планируемой к выпуску версии будет предоставлена возможность централизованного выполнения следующих сценариев:
- скачивание обновлений прикладных конфигураций, технологической платформы 1С:Предприятие 8, PostgreSQL,
- установка/обновление/удаление технологической платформы 1С:Предприятие 8,
- обновление прикладных решений (конфигураций) на новые релизы,
- удаленная настройка кластера серверов 1С:Предприятия 8,
- настройка программных компонент через централизованное развертывание файлов настроек,
- выполнение таких типовых задач администрирования как:
- перезапуск служб,
- сбор, копирование, архивирование технологических данных (журналы, счетчики и т.д.),
Со временем мы будем расширять набор поставляемых сценариев.
Архитектура решения
1С:Центр администрирования – это многокомпонентный продукт. Логически он состоит из управляющей конфигурации (рабочее место администратора) и исполняющей части (те программные компоненты, которые устанавливаются на машины автоматизируемого контура).
Управляющая конфигурация разработана на 1С:Предприятии и выполняет следующие функции:
- единый интерфейс для управления, планирования и контроля задач автоматизации (рабочее место администратора),
- создание и редактирование сценариев автоматизации,
- контроль выполнения и оркестрация сложных распределенных сценариев (например, обновление платформы на кластере из нескольких серверов),
- анализ результатов выполнения сценариев автоматизации.
Важным преимуществом является абсолютная автономность данной конфигурации. За счет этой особенности она может использоваться как самостоятельный продукт, а также быть встроенной в виде подсистемы (библиотеки) или расширения в любую имеющуюся в вашем IT-ландшафте конфигурацию.
Исполняющая часть состоит из Агента, устанавливаемого на каждой машине автоматизируемого контура и комплекта скриптов и конфигурационных файлов для них, расположенных вместе с агентом.
На основании принятой на вход команды Агент запускает необходимый для ее выполнения скрипт.
Исполняющие скрипты реализованы на Python. Соответствие команд и скриптов расположено в специальном конфигурационном файле, называемом словарем. Конфигурационные файлы, поставляемые вместе со скриптами, написаны на YAML. В них содержится формальное описание параметров скрипта, которые могут быть переданы на вход. С помощью этих файлов происходит валидация входящей команды на предмет корректности.
Предвкушая возможные вопросы вида " - Теперь нам еще Python и YAML учить?", напоминаем: знание этих языков вам потребуется только в том случае, если поставляемый с 1С:Центр администрирования набор скриптов вас не будет устраивать, и вы решите написать собственные.
Некоторые интересные возможности управляющей конфигурации
Базовый функционал - создание сценариев автоматизации из существующих шаблонов.
Доступно конструирование новых сценариев.
Параметры команд можно заполнять из данных конфигурации, в которую встроен 1С:Центр администрирования.
Есть возможность планирования и контроля задач автоматизации с использованием календаря.
… в том числе с возможностью создания задач с регулярным запуском.
Для распределенных контуров, а также консолидации процессов автоматизации нескольких проектов, доступна возможность разграничения полномочий ответственных сотрудников в рамках контуров/проектов.
Планируемый комплект поставки beta-версии
- Конфигурация «1С:Центр администрирования»;
- Расширение конфигурации «1С: Центр администрирования» (функционально идентичное конфигурации);
- Агент;
- Набор скриптов и конфигурационных файлов;
- Поставляемые данные: набор сценариев автоматизации, готовых к запуску «из коробки»;
- Комплект документации.
Что в планах к выпуску «финалки»
В планах на развитие у нас много задумок, которые мы планируем вносить в продукт уже после выпуска beta-версии:
За несколько лет сначала вынужденного, а потом и вполне занимательного администрирования 1С у меня накопился набор решений под большинство особенностей продукта. Предлагаю отложить в сторону высокие материи про кластеры и тюнинг SQL, и перетряхнуть запасы скриптов и механизмов, которые облегчают жизнь с 1С.
Будут как простые инструменты создания новых пользователей и мониторинга "все ли вышли из базы", так и более изощренные интерфейсы проверки целостности базы и ее перемещения.
Как у большинства сложных приложений, у 1С через некоторое время работы вылезают странные ошибки, и возникает порой необъяснимое поведение. Специальные люди по 1С советуют в таких случаях почистить кэш.
Если запустить 1С с параметром /ClearCache, то будут очищены только клиент-серверные запросы. Локальные метаданные останутся и их нужно удалять отдельно на уровне файлов и папок. Эти данные хранятся в профиле пользователя, в папках с длинными названиями из GUID баз данных. Если баз на сервере немного, то такой кэш нетрудно удалить руками. Но если БД исчисляется десятками, то чистке вручную вы не обрадуетесь.
В подобных ситуациях выручит скрипт на Powershell, который запускается каждый раз при выходе пользователя из системы:
И никаких связанных со старым кэшем проблем.
Для исправления испорченной файловой базы в поставку 1С входит утилита chdbfl.exe, которая просто считывает содержимое базы во временный файл. Если какие-то данные считать не может — пропускает. При этом у нее нет ключей запуска для автоматизации, и проверку приходится запускать вручную.
Вообще, правильнее запускать проверку БД конфигуратором, но этот процесс проходит значительно дольше. Если же использовать только проверку физической целостности средствами chdbfl.exe, то не забывайте делать резервную копию из-за возможной потери данных.
Для баз 8.1 Андрей Скляров создал хороший инструмент Check1CD, с двумя параметрами запуска: "исправлять найденные ошибки" и “путь к базе”.
Но в Check1CD не хватает двух вещей:
Раз есть "хотелка" и немного свободного времени, то почему бы не попробовать решить вопрос самостоятельно?
Доработать код для передачи параметров через ключи командной строки — дело техники.
С выходом 1С 8.2 возникла проблема — путь к chdbfl менялся с установкой нового релиза. Что ж, дополним скрипт:
Надо сказать, недавно был опубликован исходный код Check1CD. Да, тоже на AutoIT.
Аналогичный механизм можно применять и для автоматического запуска различных регламентных механизмов, где нужно запускать 1С и ждать завершения операции.
При различных регламентных операциях с 1С (ночное обновление конфигурации или бэкап в .dt) важно обеспечить отсутствие подключенных к ней пользователей. Можно конечно запускать 1С: Предприятие с ключом /C ЗавершитьРаботуПользователей, но это не всегда удобно, да и хочется же потом написать личное письмо с рекомендациями по устранению склероза.
Можно использовать штатную возможность подключения к 1С через COMConnector и скрипт на AutoIT. Код написан под 1С 8.1 и позволяет выкинуть пользователей из базы с записью в журнал.
Но операцию иногда нужно проворачивать по просьбе самого пользователя, который запустил "тяжелый" отчет и повесил 1С. Если не хотите решать эти вопросы самостоятельно, то просто выведите любителям “тяжелых” отчётов ярлык на скомпилированный скрипт:
Еще COMConnector помогает проверить наличие обновлений конфигурации, получить какую-то информацию из базы, и автоматизировать заведение пользователей в 1С.
На мой взгляд, создавать новых пользователей 1С должен системный администратор, а не программист 1С. Но последнему нужно сделать процесс максимально простым. Чтобы администратору не приходилось "заглядывать" в каждую базу отдельно, можно использовать еще один скрипт.
Юрлиц развелось слишком много — нужно разбивать на столбцы.
Занятно, но после смены нескольких поколений администраторов в одной компании из далекого прошлого новенькие уже не знали как создать пользователя вручную.
Если нужно перенести базу 1С: Предприятия вместе с ее данными в SQL на другой сервер, то делать это вручную целесообразно только для 1-2 БД.
Список баз для миграции можно брать и из файла, а лог выводить в текстовый файл. Аналогичным образом можно конвертировать несколько десятков баз из файловых в SQL простой выгрузкой-загрузкой в .dt
Конечно, это далеко не все, что можно автоматизировать в связке с 1С. Но разного рода обмены, получение real-time информации из 1С в других приложениях и прочие сценарии не попали в этот обзор из-за узкой направленности и специфики.
Наверняка у вас тоже есть свой набор "ноу хау" для администрирования 1С — будет здорово если поделитесь с коллегами в комментариях.
Скрипты и ноу-хау предоставлены avelor, за что ему огромное спасибо!
В этой статье выражено личное мнение автора, его видение мира, его путь, и это все не претендует на абсолютную верность и объективность. Автор не несет никакой ответственности за последствия использования данной информации, он только надеется что эта информация поможет сделать кому-то жизнь проще.
Предисловие
Сначала я просто хотел написать небольшую статью о том, как мы разносили базы по службам, но в ходе углубления в этот процесс мы добавляли всякие разные штуки (мониторинг служб, потом мониторинг пользователей внутри 1С, потом прикрутили заббикс, и, наконец, пришли к CI/CD на базе 1С). В итоге я понимаю что пихать это в одну статью будет слишком — решил разделить на несколько. Ну а название навеяно циклом статей "сети для самых маленьких", которые принесли мне много приятных минут и к которым я отсылаю всех, кто "хочет изучить сети". Итак, мы приступаем!
Когда ты признаешь проблему, значит ты на половину уже вылечился (с) один знакомый психиатр
В этой статье я хочу поделиться своим опытом администрирования большого числа 1С в корпоративном секторе. Базы все разные, есть разработка, есть тестовые, все как у всех. Но их просто достаточно много. И все было хорошо, но в определенный момент проводить какие-то админские работы стало крайне тяжело и рискованно.
Какие у нас были сложности:
- Подвисшая база тянула за собой перезапуск службы, а значит страдали невинные (пользователи других баз)
- Было тяжело понять кто сегодня "герой дня" — какая база заняла все ресурсы
- Обновление релизов — обновление одной тянуло за собой автоматическое обновление всех баз на этой службе
- Ручное подключение баз пользователям, ручное изменение в случае переездов
- Мониторинг
И только сейчас я понимаю что это была только вершина айсберга.
Акт первый, действие нулевое
Небольшое отвлечение на основные постулаты, осознание которых далось большой кровью и болью.
- Старые версии 1С (до 8.3.11+) имеют просадку по производительности при работе в виртуализированной среде. (Источник — Гилев и собственные тесты)
- Кластер есть, но с ним все крайне не просто. Возможно его доработают потом, но пока он в основном для галочки. (источник — собственный опыт)
- При выборе процессора смотрите только на частоту. Процессор в 6 ядер по 3,4Ггц порвет в куски процессор на 20 ядер по 2Ггц. Проблема в том, что 1С вообще ничего не знает про параллельные вычисления. По сути это работает так — у нас есть определенное число воркеров для каждой службы, их раскидывают по процессорам, и если в каком то воркере пользователь запустил какой-то тяжелый отчет то в системе будет загружено только одно ядро процессора. Именно то, на котором работает воркер с запущенным заданием… Для БД ситуация кстати ровно обратная. (источник — Гилев, собственный опыт, опыт коллег)
- Не используйте логи в "новом" формате (запись в SQLLite) — вы очень быстро столкнетесь с тем, что производительность этого решения еще хуже чем файлового варианта. (Источник — собственный опыт, опыт коллег).
По подсказкам из комментариев есть вариант вынести логи на отдельный инстанс.
В 8.3.12 обещали логи в нормальный скуль. - 1С оооочень не любит IPv6. На всех серверах с 1С лучше сразу понижать приоритет IPv6 до минимума. (Источник — Гилев, собственный опыт)
- Используйте для виртуальных серверов виртуальные сетевые карточки E1000. С остальными проблема по производительности (Источник — Гилев, но на собственном опыте не подтвердилось, хотя особо и не тестили)
- Обслуживание баз дает хороший прирост производительности, особенно периодический пересчет итогов, а так же обслуживание индексов SQL (Источник — собственный опыт, Гилев)
- Поиск причин падения 1С сродни поеданию неочищенного кактуса. Выяснить что-то толком можно только через боль, унижения и страдания. (Источник — собственный опыт)
- Нет ни одного официального образа ни под один гипервизор. Про докер я вообще молчу. (Источник — сайт 1С)
- Программная лицензия для сервера привязывается к — сюрприз, сюрприз — серийному номеру процессора (и еще огромному количеству параметров сервера). В эпоху повсеместной виртуализации ход потрясающий. Поясняю — активировали сервер, переехали на другую ноду, перезагрузили машину — 1С не запуститься. Расчехляйте новый активационный код. (Источник — собственный опыт, болтливая техническая поддержка 1С =))
- 1С — это учетная система, а не отчетная. Хотите много нормальных жирных отчетов и быстро — выводите это за рамки 1С. (Источник — собственный опыт)
- У 1С есть два неоспоримых достоинства, за счет которых она будет процветать еще долго:
- стоимость самого продукта/разработчиков
- скорость разработки
и к сожалению для российского бизнеса они являются первоочередными. А зачастую и единственными, на что вообще смотрят. (Источник — печальная реальность)
- Никогда не используйте файловую шару как место под хранилище конфигураций 1С. Только службу. Иначе маты со стороны разработки о упавшем черт знает когда хранилище станут вашим неизменным спутником по жизни. (Источник — собственный опыт, опыт коллег)
Акт первый, действие первое
Первая короткая сценка из корпоративной жизни
На сцене — Админ (А), программист 1С (П1С) и представитель бизнеса (ПБ)
ПБ — У нас медленно работает программа!
А — у меня в системе все хорошо!
П1С — я все написал правильно, у меня на компьютере все работает быстро!
ПБ (робко и растерянно) — но она же долго…
А и П1С хором — у нас все хорошо, проблема на вашей стороне!Проблемы всегда случаются не вовремя (с) (5-летний философ)
И вот в одно прекрасное солнечное утро (на самом деле это была глубокая зимняя ночь) мы поняли что завтра надо запустить новую базу. Завтра наступал тот прекрасный день, который уже много раз описывался тысячами авторов и имя ему — легион! Тьфу, простите, занесло. Имя этому дню был дедлайн. Час ночи, завтра на 200 компах должна запуститься новая база." Да не проблема, у нас же все компы в домене! Сейчас быстренько сделаем логин-скрипт и дело в шляпе!" подумаете вы. И будуте правы — так же подумали и мы. И сделали. Только, как обычно это бывает, погорели на мелочи — я в логон-скрипте я прописал %filename%.bat а коллега выложил %filename%.cmd.
Ну и понятное дело с утра хелпдеск побежал делать все руками, а мне было очень стыдно за такой тупой фейл. Извинялся перед парнями тортиком.
Но мысль автоматизации этого процесса у меня в голове засела очень крепко и стал даже вырисовываться план внедрения.
В итоге мы пришли к следующей идеологии:
- Все раздается через AD — создаются группы вида 1cbases-%версия платформы%-%имя базы% и туда силами хелпдеста добавляются пользователи, которым нужна база.
- одна группа — одна база
- 1cbases — это префикс по которому удобно искать группы
- версия платформы 81, 82 и 83 (релиз не принципиален)
- название базы соответствует имени файла с настройками
Как мы это делали:
- Через групповые политики добавляется новое задание в планировщик (задача планировщика прописать пользователю путь к файлу подключения базы):
- запускать от имени пользователя
- событие — разблокировка компьютера
- действие — запуск нашего скрипта
- Создаем нужные группы в АД и заполняем их пользователями
- Создаем нужные файлы для запуска самих 1С. Тут остановлюсь чуть поподробнее. Изначально мы долго мучили интернет своими запросами и нашли полное описание структуры файлов *.v8i. Но потом нашелся способ проще и гениальнее.
- запускаем 1С
- настраиваем подключение к базе
- проверяем что все работает
- кликаем правой клавишей по названию базы и выбираем пункт — "Сохранить ссылку в файл"
- Добавление баз теперь не было морокой — просто делали группу, добавляли файл с настройками — дальше все происходило автоматом
- Могли спокойно переносить базы куда угодно, просто меняя конфигурацию в файле с настройками подключения к базе (как показала практика — очень удобно)
- Сберегли обувь хелпдеску
Акт первый, действие второе
Вторая короткая сценка из корпоративной жизни
И с этой стороны ни чуть не лучше… (с) печальный ослик Иа-Иа в свой собственный день рождения
Вот представьте себе — сидите вы в удобном кресле, в одной руке чашка вкусного чая, в другой пышущая жаром и свежестью булочка из кулинарии ближайшего магазина, за окном приятно пахнет весной… И это, конечно же, самое подходящие время для звонка с проблемой! Коллега — Байконур, у нас %@па!
Я — я так понимаю что стадию Хьюстона с проблемами мы уже успешно пролетели?
Коллега — да. База %имя базы% подвисла, вообще не отвечает, ТОПы уже рвут и мечут. 3 раза мне уже звонили. Надо перезагружать службу.
Я — так там же еще пачка баз на этой службе.
Коллега — да, поэтому вторая половина ТОПов тоже рвет и мечет что их отключат.В итоге конечно все согласовали, перезапустили, но осадочек остался.
- В продуктовой среде мы должны следовать правилу — одна база — одна служба с разнесением по портам
- Запускаться службы должны исключительно из-под доменных учеток. Одна служба — одна учетка. Это удобно для раздачи прав на шары, доступ в скуль и прочее. Так же, если у вас внедрена RBAC то вы можете очень оперативно посмотреть куда имеет доступ конкретный экземпляр 1С
- Логи нужно вынести на отдельный диск и включить на эти папки сжатие (при разбитии по дням это очень сильно экономит место и ускоряет (незначительно) поиск по логам)
- Каждой службе выдается alias в DNS для того, чтобы отвязать разработку от ip и/или dns сервера (в этом случае разработка вообще не волнуется на предмет того, где фактически находится сервер — физика, виртуальная машина в приватном облаке или вообще в публичном облаке)
- На каждую службу мы выделяем 500 портов для пользовательских соединений (наше внутреннее решение)
Как мы это делали (для нового сервера. для уже существующего часть шагов не актуальны):
- Создаются учетки под каждую службу
- На машине, где они будут работать им выдаются права на "запуск как службе"
- Ставиться MS офис, обязательно с активацией по MAK-ключу
- Ставится sqlncli — утилита из набора MS SQL Native Client. На данный момент выше 2012 не появлялось
- Создается папка C:\Windows\SysWOW64\config\systemprofile\Desktop — в противном случае есть проблемы с выгрузками в Word/Excel
- Для Windows 2016 и 1С 8.1 нужно скопировать старую версию dll (В папке C:\Program Files\Common Files\System\Ole DB надо заменить два файла sqloledb.dll и sqloledb.rll взятых со старых серверов)
- Ставятся дополнительное ODBC драйверы, если нужно подключатся к MySQL/PostgreSQL
Настройка папки для службы и логов:
- Создается папка на отдельном диске называется в формате 1CServer%basename% (в стандартном случае это делает сама служба, ибо у нее есть в настройках запуска путь к логам)
- Если внутрь каталога только что созданной службы переносятся данные из другого каталога (другой службы, другого сервера), то необходимо заменить владельцев (иначе служба не получит к ним доступа) с заменой владельца подконтейнеров
- Владельцем папки делается учетная запись службы
- Для того, чтобы в службах не было кроказябр
- в cmd ввести команду chcp 1251
- файл надо сохранить в ANSI кодировке
- Обязательно надо проверить на отсутствие дублирующих ключей в строке запуска — служба с ними не стартует.
- Для того, чтобы удалить службу, можно воспользоваться командой — sc delete «Имя заданное в переменной name»
- Добавить порты используемые 1С в разрешения в firewall
- Нужен всего один физический ключ на сервер — все службы будут активироваться им
После проведения всех мероприятий в итоге мы пришли к:
- Базы можно спокойно перезагружать, не трогая другие базы
- Всегда можно найти "героя" — базу, которая съедает все ресурсы
- Любые работы с базой касаются только одной конкретной базы
В следующих статьях я планирую рассказать (если эта статья народу зайдет):
При размещении 1С в облачной инфраструктуре и среде виртуализации наиболее важными и непростыми задачами являются повышение скорости работы платформы «1С» и настройка СУБД. Для достижения максимальной производительности инфраструктуры 1С рекомендуется правильно выбирать архитектуру инфраструктуры, режимы работы, проверить и выполнить ряд важных настроек.
В зависимости от количества пользователей, размера баз данных и ограничений бюджета (с учетом стоимости дополнительных лицензий на сервер «1С:Предприятие 8» и лицензий на СУБД) платформа «1С» может работать в файловом и клиент-серверном вариантах (на основе трехуровневой архитектуры «клиент-сервер» (рис. 1): клиентское приложение, кластер серверов «1С:Предприятия 8», СУБД).
Рис. 1
Как правильно выбрать вариант/режим работы 1С: файловый или SQL?
Обычно для 1-10 пользователей выбирается файловый режим
От 10 и более пользователей выбирается режим работы с использованием SQL
В файловом варианте все пользователи могут работать на одной виртуальной машине в облаке, например на терминальном сервере.
Для клиент-серверного варианта лучше выбрать не менее двух виртуальных машин:
Сервер с клиентским приложением, например терминальный сервер с клиентской частью «1С» (толстый клиент)
Сервер «1С» и СУБД (MS SQL или PostgreSQL)
Как рассчитать мощности сервера для 1С в файловом режиме работы?
В обоих вариантах: файловом и SQL, для работы с пользовательским приложением 1С в классическом режиме, например, «удаленного рабочего стола» (так называемый «толстый клиент»), необходимы следующие минимальные ресурсы виртуального сервера:
Количество виртуальных ядер CPU = 1 или 2 для ОС + 0,25 * количество пользователей
Объем памяти RAM = 1 или 2 ГБ для ОС + 0,5 ГБ * количество пользователей
Размер диска/хранилища HDD = 20-40 ГБ для ОС и приложений + (0,1-10) ГБ * количество пользователей. Для ОС и 1С рекомендуется использовать самые быстрые диски
Как рассчитать мощности сервера для 1С в варианте работы с SQL?
В клиент-серверном варианте работы 1С, в котором используется СУБД SQL, рекомендуется разместить 1С Сервер и сервер SQL на отдельном виртуальном сервере в общей с клиентским сервером локальной подсети. Необходимы следующие минимальные мощности для этого виртуального сервера:
Размер диска/хранилища HDD = 20-40 ГБ для ОС и приложений + (10-1000) ГБ в зависимости от объема и количества баз данных. Для ОС и СУБД рекомендуется использовать самые быстрые диски
------------
ОС - операционная система, например, Windows Server
Здесь Сервер 1С - ПО "сервер "1С:Предприятия 8"Наиболее важными и непростыми задачами являются повышение продуктивности использования платформы «1С» в облаке и настройка СУБД. Типичные проблемы при развертывании и эксплуатации облачной инфраструктуры для «1С» следующие:
Неправильный выбор мощностей
Неквалифицированная настройка сервисов виртуальной инфраструктуры
Недостаточное внимание к тестированию производительности платформы «1С»
Для достижения максимальной производительности рекомендуется проверить и выполнить ряд настроек. Прежде всего необходимо исключить свопинг, для чего с помощью системы мониторинга следует обязательно удостовериться в том, что объем оперативной памяти достаточен для работы ВМ. Кроме того, файл подкачки ОС, профили пользователей, файлы баз данных, файлы логов транзакций (SQL) и tempDB (SQL) лучше разместить на дополнительных SSD-дисках, а для файла подкачки установить фиксированный размер.
На SQL-сервере необходимо выключить все ненужные службы, например FullText Search и Integration Services, установить максимально возможный объем оперативной памяти, максимальное количество потоков (Maximum Worker Threads) и повышенный приоритет сервера (Boost Priority), задать ежедневную дефрагментацию индексов и обновление статистики, настроить автоматическое увеличение файла базы данных (не менее 200 Мбайт) и файла лога (не менее 50 Мбайт), а также полную реиндексацию не реже одного раза в неделю. При размещении серверов SQL и «1С:Предприятие» на одной ВМ следует включить протокол Shared Memory.
Следуя перечисленным выше рекомендациям, можно добиться увеличения быстродействия платформы «1С» в облаке в 1,5–2 раза.
Квалифицированное размещение ИТ-сервисов, в том числе «1С», на облачной платформе позволяет:
Существенно сократить расходы
Повысить уровни безопасности (доступ к данным, резервное копирование, антивирусная защита и др.) и технического обслуживания
Обеспечить централизованное администрирование и мониторинг
Организовать эффективную и безопасную удаленную работу
Воспользоваться гибкими возможностями масштабирования, лицензирования и оперативного перехода на необходимые версии конфигураций «1С»
ЧЕК-ЛИСТ ПО ОПТИМИЗАЦИИ ИНФРАСТРУКТУРЫ 1С С MS SQL
1. Включить возможность мгновенной инициализации файлов (Database instant file initialization)
Это позволяет ускорить работу таких операций как:
Создание базы данных
Добавление файлов, журналов или данных в существующую базу данных
Увеличение размера существующего файла (включая операции автоувеличения)
Восстановление базы данных или файловой группы
Для включения настройки:
На компьютере, где будет создан файл резервной копии, откройте приложение Local Security Policy (secpol.msc)
Разверните на левой панели узел Локальные политики, а затем кликните пункт Назначение прав пользователей
На правой панели дважды кликните Выполнение задач по обслуживанию томов
2. Включить параметр «Блокировка страниц в памяти» (Lock pages in memory)
Эта настройка определяет, какие учетные записи могут сохранять данные в оперативной памяти, чтобы система не отправляла страницы данных в виртуальную память на диске, что может повысить производительность.
Для включения настройки:
В меню Пуск выберите команду Выполнить. В поле Открыть введите gpedit.msc
В консоли Редактор локальных групповых политик разверните узел Конфигурация компьютера, затем узел Конфигурация Windows
Разверните узлы Настройки безопасности и Локальные политики
Выберите папку Назначение прав пользователя
Политики будут показаны на панели подробностей
На этой панели дважды кликните параметр Блокировка страниц в памяти
В диалоговом окне Параметр локальной безопасности — блокировка страниц в памяти выберите «Добавить» пользователя или группу
В диалоговом окне Выбор: пользователи, учетные записи служб или группы добавьте ту учетную запись, под которой у вас запускается служба MS SQL Server
Чтобы изменения вступили в силу, перезагрузите сервер или зайдите под тем пользователем, под которым у вас запускается MS SQL Server
3. Включить каталоги с файлами базы данных в правила исключения для антивируса.
Если антивирус будет сканировать файлы базы, это может сильно замедлить работу СУБД.
Для опытных администраторов: антивирус на сервер СУБД лучше не устанавливать.
4. Включить каталоги с файлами базы данных в список исключений для системы автоматического копирования.
Если на сервере установлена система автоматического копирования файлов, то, когда она будет копировать файлы базы, это может привести к замедлению работы. Копии базы необходимо делать средствами самой СУБД.
5. Отключить механизм DFSS для дисков.
Механизм Dynamic Fair Share Scheduling отвечает за балансировку и распределение аппаратных ресурсов между пользователями. Иногда его работа может негативно сказываться на производительности 1С.
Чтобы отключить его только для дисков, нужно:
Найти в реестре ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk
Установить значение параметра EnableFairShare в 0
6. Отключить сжатие данных для каталогов, в которых лежат файлы базы.
При включенном сжатии ОС будет пытаться дополнительно обрабатывать файлы при модификации, что замедлит сам процесс записи, но сэкономит место.
Чтобы отключить сжатие файлов в каталоге, необходимо:
Открыть свойства каталога
На закладке Общие нажать кнопку Другие
Снять флаг «Сжимать» содержимое для экономии места на диске
7. Установить параметр «Максимальная степень параллелизма» (Max degree of parallelism) в значение 1.
Данный параметр определяет, во сколько потоков может выполняться один запрос. По умолчанию параметр равен 0, это означает, что сервер сам подбирает число потоков. Для баз с характерной для 1С нагрузкой рекомендуется поставить данный параметр в значение 1, т.к. в большинстве случаев это положительно скажется на работе запросов.
Для настройки параметра необходимо:
Запустить Management Studio и подключиться к нужному серверу
Открыть свойства сервера и выбрать закладку Дополнительно
Установить значение параметра равное единице
8. Ограничить максимальный объем памяти сервера MS SQL Server.
Необходимо ограничить максимальный объем памяти, потребляемый MS SQL Server, особенно это критично, если роли сервера 1С и сервера СУБД совмещены. Максимальный объем памяти, рекомендуемый для MS SQL Server, можно рассчитать по следующей формуле:
Память для MS SQL Server = Память всего – Память для ОС – Память для сервера 1С
Например, на сервере установлено 64 ГБ оперативной памяти, необходимо понять, сколько памяти выделить серверу СУБД, чтобы хватило серверу 1С.
Для нормальной работы ОС в большинстве случаев более чем достаточно 4 ГБ, обычно – 2-3 ГБ.
Чтобы определить, сколько памяти требуется серверу 1С, необходимо посмотреть, сколько памяти занимают процессы кластера серверов в разгар рабочего дня. Этими процессами являются ragent, rmngr и rphost, подробно данные процессы рассматриваются в разделе, который посвящен кластеру серверов. Снимать данные нужно именно в период пиковой рабочей активности, когда в базе работает максимальное количество пользователей. Получив эти данные, необходимо прибавить к ним 1 ГБ – на случай запуска в 1С «тяжелых» операций.
Чтобы установить максимальный объем памяти, используемый MS SQL Server, необходимо:
Запустить Management Studio и подключиться к нужному серверу
Открыть свойства сервера и выбрать закладку Память
Указать значение параметра Максимальный размер памяти сервера
9. Включить флаг «Поддерживать» приоритет SQL Server (Boost SQL Server priority).
Данный флаг позволяет повысить приоритет процесса MS SQL Server над другими процессами.
Имеет смысл включать флаг только в том случае, если на компьютере с сервером СУБД не установлен сервер 1С.
Для установки флага необходимо:
Запустить Management Studio и подключиться к нужному серверу
Открыть свойства сервера и выбрать закладку Процессоры
Включить флаг «Поддерживать приоритет SQL Server (Boost SQL Server priority)» и нажать Ок
10. Установить размер авто увеличения файлов базы данных.
Автоувеличение позволяет указать величину, на которую будет увеличен размер файла базы данных, когда он будет заполнен. Если поставить слишком маленький размер авторасширения, тогда файл будет слишком часто расширяться, на что будет уходить время. Рекомендуется установить значение от 512 МБ до 5 ГБ.
Для установки размера авторасширения необходимо:
Запустить Management Studio и подключиться к нужному серверу
Открыть свойства нужной базы и выбрать закладку Файлы
Напротив каждого файла в колонке Автоувеличение поставить необходимое значение
Данная настройка будет действовать только для выбранной базы. Если вы хотите, чтобы такая настройка действовала для всех баз, нужно выполнить эти же действия для служебной базы model. После этого все вновь созданные базы будет иметь те же настройки, что и база model.
11. Разнести файлы данных mdf и файлы логов ldf на разные физические диски.
В этом случае работа с файлами может идти не последовательно, а практически параллельно, что повышает скорость работы дисковых операций. Лучше всего для этих целей подходят диски SSD.
Для переноса файлов необходимо:
Запустить Management Studio и подключиться к нужному серверу
Открыть свойства нужной базы и выбрать закладку Файлы
Запомнить имена и расположение файлов
Отсоединить базу, выбрав через контекстное меню Задачи – Отсоединить
Поставить флаг Удалить соединения и нажать Ок
Открыть Проводник и переместить файл данных и файл журнала на нужные носители
В Management Studio открыть контекстное меню сервера и выбрать пункт Присоединить базу
Нажать кнопку Добавить и указать файл mdf с нового диска
В нижнем окне сведения о базе данных в строке с файлом лога нужно указать новый путь к файлу журнала транзакций и нажать Ок
12. Вынести файлы базы TempDB на отдельный диск.
Служебная база данных TempDB используется всеми базами сервера для хранения, промежуточных расчетов, временных таблиц, версий строк при использовании RCSI и многих других вещей. Обычно обращений к этой базе очень много, и если она будет лежать на медленных дисках, это может замедлить работу системы.
Рекомендуется хранить базу TempDB на отдельном диске для повышения производительности работы системы.
Для переноса базы TempDB на отдельный диск необходимо:
Запустить Management Studio и подключиться к нужному серверу
Создать окно запроса и выполнить скрипт:
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = 'Новый_Диск:\Новый_Каталог\tempdb.mdf')
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = 'Новый_Диск:\Новый_Каталог\templog.ldf')
Перезапустить MS SQL Server
13. Включить Shared Memory, если сервер 1С расположен на том же компьютере, что и сервер СУБД.
Протокол Shared Memory позволит общаться приложениям через оперативную память, а не через протокол TCP/IP.
Для включения Shared Memory необходимо:
Запустить диспетчер конфигурации SQL Server
Зайти в пункт SQL Native Client – Клиентские протоколы – Общая память – Включено
Поставить значение Да и нажать Ок
Протокол Именованные каналы нужно выключить аналогичным образом
14. Перезапустить службу MS SQL Server
Внимание! Когда все настройки выполнены, необходимо перезапустить службу MS SQL Server
Читайте также: