Почтатех. Эксплуатация высоконагруженных систем 1С в Почте России

24.05.24

Администрирование - Мониторинг

Возникновение нештатных ситуаций при эксплуатации высоконагруженных и распределенных систем неизбежно. Для снижения рисков, связанных с простоем системы, используется мониторинг. В статье речь пойдет о том, какие в Почте России ставятся задачи мониторинга, каким образом они решаются, и какие инструменты для этого используются.

Меня зовут Виталий Бусыгин. Я руководитель направления эксплуатации систем 1С в Почтатехе.

 

 

Почтатех – цифровая дочка Почты России, которая занимается разработкой и поддержкой абсолютно всех цифровых продуктов почты, которых уже на данный момент более ста. Некоторые из них вы, скорее всего, знаете – это портал pochta.ru и приложение.

Совместная аудитория портала и приложения уже превышает 20 миллионов человек.

Почтатех – это не только 1С. Это большой стек, разнообразные технологии. Суммарное количество сотрудников в Почтатехе – уже более полутора тысяч человек.

Сегодня мы поговорим о том, какие в Почте России ставятся задачи мониторинга, каким образом эти задачи решаются, и о некоторых инструментах, которые помогают нам в мониторинге и в процессе эксплуатации.

 

Контур эксплуатируемых систем и задачи мониторинга

 

Экосистема 1С в «Почте России».

Укрупненно, у нас эксплуатируются 10 информационных систем.

  • 17 баз – централизованные, поскольку почтовые отделения территориально распределены и работают в 17 централизованных информационных базах.

  • Пять баз из них мы можем назвать высоконагруженными – в них одновременно работают более тысячи активных пользователей.

  • Три информационных системы территориально распределенные – в них более 80 филиалов (узлов) от Калининграда и до Камчатки.

  • Платформа 1С 8.3 – от 8.3.10 до 8.3.21.

  • MS SQL Server 2016.

  • PostgreSQL 10 и 11 версии от 1С, а 13, 14, 15 на данный момент проходят тестирование.

На 2024 г. в эксплуатации PG 12, 14, 15 от 1С.

Пул задач мониторинга и эксплуатации можно поделить на две большие группы:

  • Снизить простой системы при возникновении внештатных ситуаций.

  • Предупредить появление этих внештатных ситуаций, чтобы уменьшить их количество.

 

Мониторинг в нашей компании разделен на три больших блока.

  • Мониторинг инфраструктуры.
    Сюда относится самый нижний уровень – это сеть и виртуализация.

  • Мониторинг оборудования.
    Все, что касается операционной системы, в т.ч. производительность, работа любого дополнительного ПО.

  • Мониторинг производительности, стабильности и функционирования 1С, в том числе бизнес-логики, про которую мы тоже поговорим.

 

Задачи службы эксплуатации

Одна из поставленных задач – контроль доступности информационных баз:

  • Есть пользователи, которые работают в базе по своему рабочему времени – условно, они подключаются с Дальнего Востока, а в Москве в это время ночь.

  • Есть службы, которые консолидируют данные, например, для аналитики.

Исходя из этих требований - база должна быть доступна круглосуточно – о любых проблемах нужно узнавать оперативно.

Инструментом для реализации данной задачи был выбран ЦКК – «Центр контроля качества» из «Корпоративного инструментального пакета».

Почему ЦКК? Потому что это все-таки 1С. Там большая часть задач уже решена «из коробки» – например, данная задача там решена контрольной процедурой «Контроль подключений». А если потребуется доработка – решается собственными силами.

Но у 1С есть особенность – графики, которые строятся в 1С, непрезентабельные, и их не очень удобно выводить в веб. Всю визуализацию мы перенесли в Grafana.

 

Итак, база работает, доступна – это мы уже мониторим.
В определенный момент начинает сыпаться много обращений с жалобами, что что-то работает не так. Пользователи массово жалуются – начинается эскалация наверх.

Анализируем проблему – снизилась производительность системы. Нужно придумать как контролировать производительность, чтобы предупредить подобные ситуации и обеспечить требуемый уровень производительности системы.

Для мониторинга использовали контрольную процедуру «Контроль производительности» в ЦКК и визуализацию в Grafana.

В ЦКК есть оповещения по снижению производительности APDEX, но они нам не совсем подошли, страдает оперативность – APDEX требуется предрассчитать, и только потом можно отправлять информацию по отклонениям.
Мы разработали свою небольшую подсистему, которая оперативно рассчитывает снижение APDEX за последние 15 минут. Доработан блок обнаружения инцидентов, который позволяет механизм гибко настраивать.

APDEX контролируется:

  • за последние 15 минут в целом;

  • по определенным важным пользователям.

(у них может быть другая картина производительности, нежели во всей базе)

Рассылка оповещений о снижении происходит штатными средствами ЦКК.

 

Базы растут, количество пользователей увеличивается.
С этим связаны две ключевых проблемы.

  • Лицензии могут закончиться.

  • Оборудование может оказаться перегружено, т.к. подбирается под определенное количество пользователей так, чтобы максимальная нагрузка на него не превышала 80% от возможной, а базовая была не выше 60%.

Решение – отслеживать количество одновременно работающих пользователей. Для этого использовалась контрольная процедура «Мониторинг кластера» в ЦКК.

Система, которая показана на слайде, была изначально рассчитана под 800 активных пользователей. И когда количество пользователей подобралось к 1000, появились проблемы производительности. Мы узнали о проблеме заранее и проработали ее – провели нагрузочное тестирование на увеличенное количество пользователей, оптимизировали выявленные узкие места.

 

Проблемы с лицензиями не исчерпываются тем, что они заканчиваются. Лицензия может стать невалидной.

Так как все в виртуализации, могут меняться диски, процессоры, виртуальная машина переезжает на другой хост. Как следствие, лицензия “слетает”.

В ЦКК из коробки есть возможность сбора данных лицензий. Этот механизм мы активно используем, но нам он подошел не полностью.

Для реализации всех наших потребностей был разработан инструмент «База учета лицензий». К нему мы еще вернемся.

На 2024 г. полностью отказались от сбора лицензий через агента КИП из-за некоторых проблем в его работе, разработали собственные скрипты.

 

Один из интересных случаев. Столкнулись с проблемой деградации производительности рабочего процесса, когда в результате роста потребления памяти производительность рабочего процесса значительно падает.

Кроме проблемы деградации производительности при наборе памяти, о которой известно, мы столкнулись еще и с аналогичной проблемой при освобождении памяти.

По результатам приняли решение контролировать производительность рабочих процессов. Для этого пришлось немного доработать процедуру контроля производительности рабочих процессов в ЦКК – по умолчанию производительность не собиралась.

В платформе 8.3.20 эту проблему уже решили, после обновления она больше не воспроизводится.

 

Для расследования проблем стабильности и производительности требуются логи ТЖ, журналы регистрации, собранные счетчики производительности и APDEX.

Баз много, они территориально распределены, за всеми базами и всеми настройками не уследишь – бывает, что базу могут перевести куда-то на другой кластер и даже на другой сервер. Публикация остается прежняя, выгрузки APDEX остаются – визуально и фактическа база работает корректно. Но когда возникает какая-то проблемная ситуация, выясняется, что нет данных для анализа.

Для решения проблем, связанных с изменением расположения баз, был реализован механизм контроля строк соединения в ЦКК. В случае изменения у базы строки соединения создается инцидент в ЦКК и приходит оповещение всем заинтересованным.

 

Одна из основных задач техэксперта – расследование проблем производительности. Как уже говорили, для этого минимально требуются логи ТЖ, ЖР и счетчики производительности.

Серверов у нас уже больше тысячи и требуется собирать информацию со всех. Чтобы все это как-то автоматизировать, был разработан скрипт, который собирает все эти счетчики и журналы в единое хранилище.

Скрипт на PowerShell для windows, 1С:Исполнитель для linux. Возможности:

  • Первые версии скрипта копировали данные Perflog, ТЖ, ЖР.

  • Данные передаются по протоколу HTTPS – требование информационной безопасности.

  • Актуализация и контроль настроек ТЖ.
    При помощи скрипта можно добавлять и модифицировать секции ТЖ. Если настройки сбора ТЖ отличаются от шаблона, скрипт создает инцидент в ЦКК.

  • Сбор данных о лицензиях.

  • Актуализация сборщиков счетчиков.

  • Контроль за работой скрипта, удаление устаревших логов, настройки хранения логов реализованы в ЦКК.

 

Для удобного и быстрого анализа логов был выбран ElasticSearch:

  • ТЖ;

  • Журнал регистрации;

  • логи СУБД.

Для получения консолидированных данных из ElasticSearch и 1С используется небольшая обработка 1С.

В примере на одной временной линии можно наблюдать:

  • событие CALL;

  • внутри этого CALL был DBPOSTGRS;

  • обновление динамического списка.

Таким образом можно увидеть, какие события вошли в обновление динамического списка.

 

Другой интересной проблемой эксплуатации 1С+PostgreSQL стала высокая загрузка дисковой подсистемы.

В MS SQL исследовать эту проблему просто – достаточно настроить Extended Events.

В PostgreSQL есть инструмент pg_stat_statements. Но возникла проблема с именованием временных таблиц, они часто не совпадают, в итоге получаются запросы отличающиеся только именами временных таблиц. Когда в системе большое количество пользователей и активно используются временные таблицы, pg_stat_statements быстро вытесняется. Базовое значение установлено 5000, мы его поэтапно увеличили до 500 тысяч записей, и пока остановились.

На 2024 г. данные pg_stat_statements+pg_stat_kcache раз в час агрегируются, нормализуются и грузятся в ElasticSearch. После этого статистика pg_stat_statements и pg_stat_kcache очищается.

Следующим шагом стало использование auto_explain. Auto_explain – это расширение PostgreSQL для получения фактических планов запросов. Мы настроили получение планов запросов длительностью более 3 секунд.

При передаче в ElasticSearch запрос нормализуется, по нормализованному запросу вычисляется хэш. По этому хэшу дальше можно получить контекст и сгруппировать по нему.

В результате в одном месте можно по запросу посмотреть его статистику выполнения, фактический план и данные из ТЖ.

 

Процесс мониторинга не ограничивается показателями производительности ИС, он также может включать в себя метрики бизнес-логики.

К примеру, у нас есть три распределенных ИС, более 80 баз каждая. И в каждой требуется контролировать версию релиза и своевременность обновления.

Для этого был реализован собственный механизм в ЦКК с выводом в Grafana.

 

Невидимая, но важная часть работы системы – интеграции.

Если система в целом работает корректно, но останавливается один из обменов, этого можно не заметить своевременно. Последствия могут быть как незначительные, так и довольно серьезные. Для предотвращения подобных проблем был разработан механизм контроля обменов.

Вся логическая и функциональная часть механизма, определяющая, корректно работает обмен или нет, находится на стороне самой информационной системы.
В ЦКК передаются следующие данные об обменах:

  • успешно ли прошел последний обмен;

  • дата последнего успешного обмена;

  • сколько данных загружено;

  • транспорт обмена;

  • иные важные данные об обмене;

  • Получатели оповещений и параметры оповещения;

ЦКК обрабатывает эти данные и на их основании оповещает получателей о проблемах.

 

Инструменты. ЦКК

 

В результате реализации поставленных задач мониторинга мы имеем большую и высоконагруженную базу ЦКК, в которой суммарно контролируется:

  • 92 площадки в разбивке по территориальным и по информационным системам;

  • более тысячи серверов – каждый сервер сообщает свои данные при помощи «Агента КИП» раз в 10-30 секунд;

  • более 250 кластеров, из которых раз в минуту примерно собираются данные по сеансам;

  • и около 300 контрольных процедур «Контроль производительности».

 

Количество транзакций в моменте превышает 300 тысяч в секунду.

Статистика по таблицам:

  • Размер таблицы мониторинг сеансов сейчас составляет почти 2 терабайта – данные сеансов по всем нашим базам за 2 недели.

На 2024 год объем данным уменьшен до 600 Гб за счет снижения частоты опроса.

  • Таблица мониторинга процессов – статистика по рабочим процессам.

  • Три первых таблицы «Мониторинг сеансов», «Мониторинг процессов» и «Число сеансов» используются в одной процедуре мониторинга.

  • Замеры производительности – APDEX.

На 2024 г. в процессе перевода в ClickHouse.

База ЦКК получилась очень большая, очень нагруженная. В связи с этим возникло несколько проблем:

  • Мы столкнулись с тем, что данные поступают очень быстро, в несколько потоков, а удаляются в один поток – мы не успевали удалять и распараллелили удаление по дням. Каждый день теперь удаляется в отдельном потоке.

  • Примерно такая же проблема возникла с разбором буфера. Сначала все данные поступают в буфер, а потом отдельно разбираются, но в буфер данные поступали в десятки потоков, а разбирались в один.
    Узнавали мы об этих проблемах, только когда уже было поздно – данные не загружаются, ЦКК лежит. Ты подключаешься, смотришь, а там данных – на неделю вперед разбирать можно.

  • Основная таблица по мониторингу сеансов почти 2 терабайта, и с запросами к ней надо быть очень аккуратным. Проанализировав все запросы, плюс запросы, которые делает Grafana, мы немного изменили структуру регистра – поменяли там пару полей, исключили лишние индексы и один индекс добавили. Теперь проблем с запросами к этой таблице у нас нет.

  • Иногда возникает другая проблема. Статистика по этой таблице не всегда успевает обновиться. И в этом случае планировщик запроса выбирает решение просканировать таблицу. А как мы будем сканировать таблицу 2 терабайта? Естественно он пытается включить параллелизм, но в нашем случае использование параллелизма скорее вредно. Лучше пускай этот запрос работает один, но медленно, чем все остальные не работают совсем.

  • Все эти проблемы нам указали на то, что нужно мониторить и саму систему мониторинга. Как результат был разработан дашборд, на котором были собраны все жизненно важные для ЦКК параметры.

На 2024 г. ЦКК практически не требует контроля

 

Инструменты. Grafana, БУБ, БУВОО и БУЛ

Grafana – это всего лишь визуализатор того, что уже чем-то собрано. Но очень удобный и гибкий визуализатор. Она умеет брать данные из разных источников и выводить их в удобном виде.

 

У нас огромное количество разработчиков и подрядчиков, и количество тестовых баз в определенный момент стало превышать тысячу.

Большое количество времени занимала работа с этими тестовыми базами. Для автоматизации этих работ разработан инструмент - база управления тестовыми базами, БУБ.

  • Около трех тысяч тестовых баз.

  • В тестовой среде сейчас производится более тысячи операций работы с тестовыми базами в день.

  • Количество восстановлений из бэкапов в день – более 200. Причем можно восстанавливать базу как планово, по регламенту, так и по запросу.

  • Реализована ролевая модель.

  • Интеграция с Active Directory.

  • Поддерживает работу с Linux и Windows.

  • Поддерживает MS SQL и PostgreSQL (ограниченно).

 

В определенный момент возникла задача контролировать внешние отчеты и обработки, которые запускают пользователи в базах. Был разработан инструмент «База учета внешних отчетов и обработок» – рабочее название БУВОО.

Сейчас мы в этой базе собирается информация по внешним обработкам. А в будущем планируем научить ее эти обработки доставлять – т.е. ими еще и управлять можно будет.

 

БУЛ – база учета лицензий.

База учета лицензий хранит данные по учету программных, аппаратных и иных лицензий (к примеру, отраслевых).
БУЛ автоматизирует процесс получения дополнительных PIN-кодов, процесс активации лицензий. БУЛ полностью интегрирована с ЦКК – информацию о фактической утилизации она получает из ЦКК.

 

Итог

 

Мониторинг позволяет решать очень много проблем до того, как они появятся – надеюсь, наш опыт кому-то поможет.

 

Вопросы

 

Вы сказали, что ЦКК не успевает разбирать из буфера. Скорость разбора – это прямо ахиллесова пята ЦКК, там все плохо. Что вы сделали, чтобы решить эту проблему?

При отставании более чем на час в сутки у нас автоматически подключаются дополнительные потоки.

А бизнес логику не пробовали мониторить? Например, в системе есть цепочка процессов – от заказа покупателя до заказа поставщику. И если цепочка рвется, возникает проблема. Можно было бы мониторить количество заказов или прослеживать какую-то взаимосвязь – проактивно видеть, что возникает резкий спад формирования заказов, значит, будет простой поставок или еще что-то такое.

У нас есть подобная задача – в базе Документооборота мониторится количество документов на согласование.

Я не вижу проблемы реализовать для этой цели в ЦКК что-то наподобие имеющегося у нас механизма контроля обменов. Там есть для этого гибкие инструменты. Плюс всю логику можно описать на нашем родном языке, мы все при необходимости сможем доработать.

Какая система у вас мониторит систему мониторинга?

У нас две ЦКК, первая контролирует все базы, а вторая контролирует первую ЦКК. И они друг друга перекрестно мониторят. Не подводило пока.

А почему бы просто не разделить все базы на два пула – один пул мониторит одна ЦКК, второй – вторая ЦКК и друг на друга они тоже смотрят? Вы же сможете снизить нагрузку в два раза.

Тогда мы лишим себя уникальной возможности расследовать все проблемы в одной базе.

Обратил внимание, что присутствует большое разнообразие платформ, СУБД и так далее. Вопрос по платформам – они действительно все одновременно поддерживаются? И по какой причине?

Хотелось бы, чтобы везде была одна платформа и самая новая. Но, к сожалению, процесс обновления платформы – это не так просто. В нем задействованы и функциональные специалисты, и аналитики, и методологи, которые должны проконтролировать, что все нормально будет. Там нужно провести полное функциональное сценарное тестирование и хорошее нагрузочное тестирование.

Мы не можем просто перевести – если мы прыгнем, не зная, какая там глубина, мы, может быть, утонем, а может быть, ударимся. Лучше подстраховаться.

Но постепенно у нас все переводится – база, которая была на 8.3.10, сейчас уже переехала на 8.3.21.

А какая основная платформа сейчас у вас используется? Самая нагруженная и стабильная.

Самая нагруженная сейчас 8.3.12. Но она не самая стабильная, к сожалению.

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции Infostart Event.

См. также

Журнал регистрации Мониторинг Системный администратор Программист Бизнес-аналитик Руководитель проекта Платформа 1С v8.3 Платные (руб)

В сферу обязанностей при работе с клиентами входит контроль работы баз данных и серверов 1С. Нужно понимать что происходит в базах, есть ли ошибки, зависания у пользователей и фоновых задач, блокировки или какое-то необычное поведение системы, получение информации о причинах возникновения проблем и их оперативное устранение и т.д. В качестве источников информации использую консоль кластеров 1С, технологический журнал 1С, журналы регистрации базы 1С. Для автоматизации части операций мониторинга и анализа создал инструмент на основе 1С.

9000 руб.

28.08.2019    34081    22    21    

75

SALE! 50%

Учет доходов и расходов Логистика, склад и ТМЦ Маркетплейсы Мониторинг Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Расширение модуля Synchrozon для удобного контроля габаритов на Ozon! Разработка позволяет мгновенно сравнивать установленные габариты товаров, с габаритами, указанными на Ozon, чтобы выявлять любые несоответствия. Поможет сократить расходы на логистику, гарантируя, что все данные о товарах остаются точными и актуальными.

3600 1800 руб.

31.10.2024    368    1    0    

3

Мониторинг Системный администратор Программист Платформа 1С v8.3 Россия Платные (руб)

Обработка позволяет использовать подобные КОРП-функциональности механизмы контроля расхода памяти (сеансом на 1 вызов и рабочими процессами), реагируя завершением "тяжелых" вызовов, перезапуском рабочих процессов при чрезмерном потреблении этого важного ресурса.

3600 руб.

03.05.2023    5153    3    0    

4

SALE! 50%

Логистика, склад и ТМЦ Мониторинг Маркетплейсы Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Платные (руб)

Расширение для 1С, которое автоматически «отлавливает» тарифы складов с наиболее выгодными коэффициентами для ваших товаров на маркетплейсе Wildberries. С помощью этого инструмента вы сможете легко находить и выбирать склады с лучшими условиями для максимизации своей прибыли. Удобная интеграция позволяет настроить регулярный поиск складов по выгодным коэффициентам в виде регламентного задания в 1С, что существенно экономит время и автоматизирует процесс принятия решений по размещению товаров. Всегда будьте на шаг впереди конкурентов и повышайте эффективность своего бизнеса с помощью «Ловца коэффициентов складов Wildberries»!

3600 1800 руб.

14.11.2024    319    1    0    

4

Мониторинг Инструменты администратора БД Системный администратор Платформа 1С v8.3 Россия Платные (руб)

Конфигурация Session Monitor предназначена для мониторинга сервера 1С с целью отслеживания чрезмерной нагрузки от конкретных сеансов и скорости реакции рабочих процессов.

1500 руб.

01.12.2020    16057    38    0    

56

Мониторинг Анализ продаж Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Розница 3.0 Управленческий учет Платные (руб)

Решение для управления ключевыми показателями компании, обеспечивающее гибкую настройку, визуализацию данных и эффективный контроль за достижением целей. Продукт сокращает трудозатраты на расчет и аналитику, позволяя быстрее принимать обоснованные решения. Легко интегрируется в любую конфигурацию 1С, предлагая интуитивный интерфейс, удобный для всех пользователей.

24000 руб.

11.11.2024    238    0    0    

0

Мониторинг Сервера Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

StartPlus и система контроля и сбора информации (настраиваем за час и пользуемся). Данное решение позволяет быстро собирать и анализировать различную информацию из разных источников данных (не обязательно серверов 1С). В любой момент можно менять состав сводной информации без сложной разработки на стороне 1С.

1 стартмани

18.07.2024    880    7    moolex    0    

5

Мониторинг Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Решение для автоматического отслеживания нагрузки на кластеры 1С различных версий, автоматического удаления сеансов по показателям кластера, удаления сеансов по показателям через телеграм бота, мониторинга журнала регистрации с возможностью блокирования входов и сброса сеансов для пользователей инициаторов событий, получение анализа ошибок журнала регистрации в телеграм.

1 стартмани

13.06.2024    5044    38    Garilia    3    

38
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kuzev 48 27.05.24 19:44 Сейчас в теме
2. AdepTcs 19 27.05.24 21:58 Сейчас в теме
(1) Исправлено, спасибо.
3. RustIG 1749 18.08.24 00:36 Сейчас в теме
1. Что за программа стоит у операторов Почты? Интерфейс мс-дос. Г. Казань, был в разных 5-6 отделениях... Давайте начнем с названия, а потом я по любому скажу Позор и стыд....
2. Терминалы оплаты эквайринга внедрили в некоторых отделениях Казани недавно , лет 5 назад наверное , помню начинали только для определенных операций, сейчас на все распространили....позорище
3. Копейки, бедные бабушки, уберите копейки из своих цен, очереди из-за копеек, поиск сдачи прям современно в наше время....
4. Монитор очереди , не везде работает, поломанные аппараты, с накленной бумажкой «не работает»... После такого читать про Цкк это просто жесть....
Помню в свое время писал во все инстанции Почты России, чтобы монитор очереди внедрили, поскольку сам пользуюсь Почтой России, внедрил к тому времени мониторы очередей своим клиентам, написал подробную инструкцию, как это сделать и почему выгодно...
У нас из -за очередей в разные кассы драки возникали , пока монитор очереди не поставили....
5.шел 2024 год, внедрили цкк, молодец, а зарплаты почтальонов настолько низкие, что у нас их просто нет, на почту ходит весь район самостоятельно....
6. Я минус не ставил, но 1500 ваших программистов и аналитиков кажется "не вывозят", и это видят все остальные 1 млн 1сников. Просто жаль вас...
Оставьте свое сообщение