rssd 1919

Все статьи

Все материалы - Московский Комсомолец

Израильская армия обнаружила склады оружия «Хезболлы» у позиций ООН в Южном Ливане

Израильские военные выявили склады оружия и оперативные квартиры «Хезболлы» и «Амаль» в непосредственной близости от позиций миротворцев ООН в южноливанских деревнях, что вновь подчеркивает сложность и многослойность противостояния на северной границе Израиля.В последние дни Армия обороны Израиля (ЦАХАЛ) провела серию целенаправленных операций в южном Ливане, в ходе которых были обнаружены склады

Официальный сайт ОАО ТРК "Петербург-Пятый канал", Новости

Отпускные задержались? Как не остаться без денег перед отдыхом

Отпускные нужно выплачивать не позднее чем за три календарных дня до начала отдыха, причем день перевода денежных средств в этот срок не входит. О нюансах рассказали в пресс-службе Министерства труда РФ. «Чтобы отдых начался без переживаний, отпускные должны прийти на счет не позднее чем за три календарных дня до первого дня оплачиваемого отпуска. В этот срок не включается день выплаты», — говорит

EADaily:все новости

Трамп заявил о возможном изменении границ Украины после завершения конфликта

Президент США Дональд Трамп завил, что по итогам мирного урегулирования конфликта Украина может не сохраниться в существующих границах обрести другие территориальные очертания. В интервью американскому телеканалу CBS News глава Белого дома выразил уверенность в том, что стороны вооруженного противостояния очень близки к заключению соглашения. Трамп в очередной раз пообещал, что завершение боевых д

Официальный сайт ОАО ТРК "Петербург-Пятый канал", Новости

«Мы относимся к этому серьезно»: Куба готовится к возможной военной операции США

Куба готовится к возможному военному противостоянию с США. Об этом ТАСС сказал представитель Кубы при ООН Эрнесто Соберон Гусман. По его словам, власти острова серьезно относятся к тому, что происходит в отношениях между Кубой и США. «Каждую пятницу на Кубе мы посвящаем день обороне, чтобы подготовить весь народ к защите нашего суверенитета, независимости и территориальной целостности», — отметил

Главное сегодня - ИА REGNUM

Трамп: расходы на войну с Ираном возместят страны, которых защищали США

Расходы на конфликт с Ираном возместят США другие страны — Трамп Трамп: расходы на войну с Ираном возместят страны, которых защищали США Вашингтон, 9 ноября, 2026, 07:24 — ИА Регнум. Другие страны должны компенсировать США расходы за военную операцию против Ирана. Об этом 8 ноября заявил президент США Дональд Трамп . «В конце всего этого страны, которые мы защищали, возместят нам все без исключени

Российская Газета

В Nvidia начали расследовать связь гендиректора Хуанга с иностранкой

В воскресенье технологическая компания Nvidia заявила, что "начинает независимое расследование в свете недавних сообщений о том, что основатель и генеральный директор Дженсен Хуанг стал целью усилий иностранной разведки".В октябре газета The New York Times сообщила, что Дональд Трамп был проинформирован в прошлом году о наличии разведданных на предмет того, что Хуанг имеет близкие отношения с кита

Все материалы - Московский Комсомолец

Вражеские БПЛА атаковали промзону Киришей

Вражеские БПЛА атаковали промзону Киришей Фото: Архив МК в Ленобласти. Сегодня ночью украинские дроны атаковали Ленобласти. Губернатор 47-го региона Александр Дрозденко объявил режим беспилотной опасности в 02:16 ночи 9 ноября. «Внимание, объявлена опасность БПЛА в воздушном пространстве Ленинградской области. Возможно понижение скорости мобильного интернета», — заявил глава региона.К 3:46 в возду

Все материалы - Московский Комсомолец

Четыре человека пострадали в ДТП с грузовиком и автобусом в Уссурийске

Четыре человека пострадали в ДТП с грузовиком и автобусом в Уссурийске Четыре пассажира получили травмы в аварии с участием грузовика в Уссурийске Четыре пассажира получили травмы в результате столкновения грузовика, автобуса и легкового автомобиля в Уссурийске. Авария произошла на перекрёстке улиц Комарова и Некрасова, сообщили в пресс-службе УМВД по Приморскому краю «Водитель грузовика не выдерж

Все материалы - Московский Комсомолец

В страшном ДТП под Боровском погиб ребенок

В страшном ДТП под Боровском погиб ребенок Фото: УМВД по Калужской области Авария произошла на 404 км автодороги «А-108 МБК».По предварительным данным, автомобилист на «БМВ» выехал на встречку и столкнулся с «КамАЗ», который от удара опрокинулся на автомобиль «Черри».В результате ДТП погиб восьмилетний пассажир автомобиля «Черри».«Также пострадали водитель и несовершеннолетние пассажиры указанного

Официальный сайт ОАО ТРК "Петербург-Пятый канал", Новости

Питомец выдрессировал вас? Почему кошки и собаки постоянно клянчат еду

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

Главное сегодня - ИА REGNUM

Значительные потери на сумском направлении несет 71-я бригада ВСУ

Значительные потери на сумском направлении несет 71-я бригада ВСУ Москва, 9 ноября, 2026, 07:16 — ИА Регнум. 71-я отдельная аэромобильная бригада ВСУ, которую командование активно задействовало в попытках проникновения, несет большие потери на сумском направлении. Об этом сообщили российские силовики. «Множество боевиков 71-й бригады пропадает без вести», — сказал силовик «РИА Новости». Ранее в си

Все материалы - Московский Комсомолец

Суд в Кологриве по иску прокуратуры обязал зарегистрировать водопровод

Прокуратура Кологривского района провела проверку соблюдения законодательства в сфере жилищно-коммунального хозяйства. В ходе надзорных мероприятий установлено, что на территории города Кологрива расположены и эксплуатируются сети холодного водоснабжения на улицах Алексинская, Котлова, Нагорная, Механизаторов, Комсомольская, Ладыженского, а также в переулках Лесной, Унженский и Безымянный.Данные о

Русская семерка

Как в СССР встречали демобилизованных: бытовые правила после войны

Возвращение с войны — это не только слёзы на перроне и объятия. Это ещё и суровая проза: куда идти, где жить, чем кормить семью. В 1945 году в СССР демобилизация растянулась на несколько лет. Всего из армии уволили около 8,5 миллионов человек . И каждый из них возвращался в страну, которая лежала в руинах, где жилья катастрофически не хватало, а чиновники не всегда спешили помочь. Государство пыта

Взгляд

Разведка «Ахмата» предрекла снижение возраста мобилизации на Украине до 18 лет

Власти Украины готовятся к длительным боевым действиям и планируют существенно понизить возраст для мобилизации в ряды вооруженных сил, сообщил начальник разведки спецназа «Ахмат» с позывным Аид. Украинское руководство намерено продолжить снижение возраста призывников, что свидетельствует о подготовке Киева к долгосрочному противостоянию. В скором времени в ряды армии начнут призывать 21-летних, а

EADaily:все новости

В Московской области закрылись все 53 автозаправочные станции сети «Трасса»

В Московской области полностью прекратили работу все 53 автозаправочные станции сети «Трасса». В региональном Минэнерго подтвердили Интерфаксу, что собственник имущества «Газпромбанк Лизинг» начал принудительное изъятие объектов. К настоящему моменту 40 комплексов уже опечатаны, а оставшиеся АЗС холдинга будут изъяты до конца недели. Причиной краха оператора после 30 лет деятельности стали глубоки

Взгляд

Критики властей Украины начали попадать в сеть тайных секретных тюрем

Критиков Владимира Зеленского и недовольных украинскими правоохранителями отправляют для расправы в секретные пыточные, сообщили представители антифашистского подполья. Несогласные с действиями киевских властей граждане попадают в сеть тайных тюрем на Украине, передает РИА «Новости» со ссылкой на участников одесского сопротивления. «Это же «рука руку моет» – в тюрьмы эти попадают и несогласные с р

Все материалы - Московский Комсомолец

В Курске удалось взять под контроль распространение опасного сорняка-аллергена

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

Все материалы - Московский Комсомолец

Три человека погибли при пожаре в Красноярском крае

Три человека погибли при пожаре в Красноярском крае Тётя и двое племянников погибли при пожаре в Красноярском крае В ночь с 8 на 9 ноября в посёлке Камарчага сгорел жилой дом. В результате пожара погибли три человека, ещё один человек получил травмы, сообщила пресс-служба в ГУ МЧС России по Красноярскому краю в Max. «Короткое замыкание электропроводки стало причиной возгорания», — говорится в сооб

РИАМО

До +7 градусов ожидается в Московском регионе в понедельник

Сетевое издание «портал Региональное информационное агентство Московской области (РИАМО)» Соучредители: Министерство информации и молодежной политики Московской области Государственное автономное учреждение Московской области «Цифровые Медиа» Государственное автономное учреждение Московской области «Информационное агентство «Контент-Центр» Государственное автономное учреждение Московской области «

Все материалы - Московский Комсомолец

Шесть беспилотников сбили в воронежском небе перед новой рабочей неделей

Шесть беспилотников сбили в воронежском небе перед новой рабочей неделей Фотоархив "МК в Воронеже" Режим опасности атаки БПЛА действовал на территории Воронежской области двенадцать часов. Его объявили в 19:02 в воскресенье, 8 ноября, и отменили в 07:02 в понедельник, 9 ноября.Сегодня утром губернатор Александр Гусев сообщил о количестве сбитых беспилотников:– Минувшей ночью в небе над Воронежем и

Российская Газета

Омич провалился в колодец и просидел в нем полтора дня

По предварительным данным, 45-летний мужчина провалился в открытый колодец на пересечении улиц Смирновской и Сиреневой. Он просидел в нем полтора суток, пока его разыскивали. Пропавшего нашли волонтеры поискового отряда "ДоброСпас-Омск". В настоящее время он находится в больнице с признаками переохлаждения."Следственным управлением Следственного комитета Российской Федерации по Омской области по и

Официальный сайт ОАО ТРК "Петербург-Пятый канал", Новости

Дети не спасли от колонии: Блиновской отказали в отсрочке наказания

Кассационный суд оставил без удовлетворения жалобу «королевы марафонов» Елены Блиновской и ее защиты на отказ в отсрочке исполнения наказания. Об этом говорится в судебных материалах, которые оказались в распоряжении ТАСС. Блогер, осужденная за уклонение от уплаты налогов и отмывание средств, просила отложить реальное наказание до того, момента, пока ее младшей дочери не исполнится 14 лет. Однако

Военное обозрение

США считают требования Ирана «неприемлемыми», переговоры снова в тупике

США считают требования Ирана «неприемлемыми», переговоры снова в тупике Переговоры США и Ирана о мирном соглашении пока не продвинулись из-за иранских требований. Как заявил глава американского Госдепа Марко Рубио, они просто «неприемлемы». США и Иран ведут переговоры при посредничестве Катара, но прийти к общему знаменателю пока не могут. Как подчеркнул Рубио, всё упирается в иранские требования,

Красная весна

Сыграно пять туров чемпионата Бразилии по шахматам среди женщин

Сыграно пять туров чемпионата Бразилии по шахматам среди женщин Со стопроцентным результатом в чемпионат Бразилии по шахматам среди женщин во Флорианополисе (Бразилия) идет Джулиана Саюми Терао после пятого тура 8 ноября, итоги тура опубликованы на специализированном сервере шахматных результатов chess-results.com.После пятого тура с 5 очками турнирную таблицу возглавляет Джулиана саюми Терао (рей

Взгляд

Российский рынок акций вырос почти на 1% в начале утренних торгов

Украина Россия и США Президент Путин Евросоюз Нефть и рубль Армия и вооружение Смена декораций в США надувает Лондону щекиЕсть Запад, где все ходят строем и подчиняют свои интересы одному лидеру – Вашингтону. Но внутри этой казарменной системы остается много место для интриг и противоречий. 5 комментариев Ольга Андреева Парад 7 ноября 1941 года вселил уверенность в ПобедеСталин выступил со странно

Все материалы - Московский Комсомолец

Учёные выяснили, почему ядерный взрыв может не спасти Землю от астероида

Учёные выяснили, почему ядерный взрыв может не спасти Землю от астероида Icarus: обнаружена опасная особенность уничтожения космических угроз Американские физики установили, что эффективность отклонения астероида с помощью ядерного взрыва может различаться почти в пять раз в зависимости от направления воздействия. Результаты исследования опубликованы в научном журнале Icarus. Исследователи изучали

Все материалы - Московский Комсомолец

Днем 9 ноября в Астрахани воздух прогреется до +8 градусов

Осадков не прогнозируется. По данным синоптиков «Гисметео», сегодня днем в Астрахани установится облачная погода. В период с 10 до 19 часов осадков не ожидается.Температура воздуха будет постепенно расти. К 13 часам столбики термометров достигнут максимума и покажут плюс 8 градусов. К вечеру похолодает до плюс 4 градусов.Ветер южный и юго-западный будет дуть со скоростью 3-4 м/с.Как сообщает Астра

Все материалы - Московский Комсомолец

Известный ресторатор Александр Белькович попробовал легендарную орловскую пиццу в арке

Известный ресторатор Александр Белькович посетил Орёл. В выпуске шоу под названием «100 мест, где поесть» на федеральном телеканале СТС ресторатор Александр Белькович зашёл в ту самую арку за пиццей, которую в столице 57-го региона знают, кажется, все. Местный житель Сергей рассказал, что ест её с детства.Шефу понравилось: пицца мягкая, воздушная и тёплая, а тесто тает во рту. «Да за такую пиццу в

Взгляд

На Украине под мобилизацию попали сотрудники оборонных предприятий

Военный эксперт Андрей Марочко заявил, что сотрудники территориальных центров комплектования начали забирать в ряды украинской армии специалистов военно-промышленного комплекса из-за снижения квот на бронь от мобилизации. На Украине территориальные центры комплектования (ТЦК) стали призывать на службу специалистов, работающих на предприятиях оборонного сектора, передает ТАСС . «ТЦКшники охотятся и

Российская Газета

На Алтае врачи удалили у курильщика гигантскую буллу

Жителя Барнаула около двух недель беспокоили давящая боль и необъяснимая тяжесть в правой половине груди. В поликлинике мужчину экстренно направили в БСМП №2 с подозрением на пневмоторакс.Во время обследования торакальные хирурги обнаружили у пациента тонкостенный "воздушный мешок" диаметром 16 сантиметров. Гигантская булла занимала половину грудной клетки и сдавливала легкое."Такой воздушный "пуз

Взгляд

Над Воронежем и областью за ночь поразили шесть дронов

Украина Россия и США Президент Путин Евросоюз Нефть и рубль Армия и вооружение Смена декораций в США надувает Лондону щекиЕсть Запад, где все ходят строем и подчиняют свои интересы одному лидеру – Вашингтону. Но внутри этой казарменной системы остается много место для интриг и противоречий. 5 комментариев Ольга Андреева Парад 7 ноября 1941 года вселил уверенность в ПобедеСталин выступил со странно

Интерфакс

В Воронежской области уничтожены шесть БПЛА

Copyright © 1991—2026 Interfax. Все права защищены. Сетевое издание "Интерфакс.ру". Свидетельство о регистрации СМИ ЭЛ № ФС 77 - 84928 выдано Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор) 21.03.2023. Вся информация, размещенная на данном веб-сайте, предназначена только для персонального пользования и не подлежит дальнейшему воспроизв

Интерфакс

Международная конференция ООН по климату начинается в Турции

Международная конференция ООН по климату начинается в Турции Москва. 9 ноября. INTERFAX.RU - Международная конференция ООН по изменению климата (СОР31) начинает работу в Анталье (Турция). Российскую делегацию возглавит помощник и специальный представитель президента РФ по вопросам климата и водных ресурсов Руслан Эдельгериев. В состав российской делегации входят 16 человек. Министр экономического

Все материалы - Московский Комсомолец

В Нальчике откроется выставка «Инфраструктура ожидания»

В Нальчике 14 ноября начнёт работу выставка «Инфраструктура ожидания» — первая передвижная экспозиция исследовательского проекта «Архив высоты» о советском наследии Приэльбрусья. Площадкой станет Павильон современного искусства в Парке 100-летия Кабардино-Балкарской Республики.Как сообщили организаторы, посетители смогут увидеть реальные приборы физиков Баксанской нейтринной обсерватории, впервые

Как научить HAProxy снижать на проблемный backend

Открыть на сайте ↗

Два backend-узла Directum RX сами по себе еще не гарантируют отказоустойчивость. Один из них может продолжать отвечать на HTTP-запросы с кодом 200, одновременно испытывая нехватку памяти, перегрузку CPU или проблемы с отдельными сервисами. В этот момент обычная проверка доступности продолжает считать узел исправным и направлять на него пользовательский трафик. В статье расскажем, как реализовать health-agent, который помогает HAProxy учитывать не только доступность, но и фактическую степень деградации backend-узла.

Когда HTTP 200 уже недостаточно

При построении отказоустойчивого контура Directum RX недостаточно просто развернуть несколько экземпляров приложения и поставить перед ними балансировщик нагрузки. Нужно понимать, способен ли конкретный узел нормально обрабатывать запросы в конкретный момент времени.

Классический health-check отвечает на бинарный вопрос: сервис доступен или нет. Например, HAProxy отправляет HTTP-запрос на заданный URL и, получив ожидаемый код ответа, считает backend работоспособным. Если проверка не проходит, узел исключается из балансировки.

Но между состояниями «полностью исправен» и «полностью недоступен» есть промежуточная зона. Узел может продолжать отвечать HTTP 200 и при этом:

  • находиться под высокой загрузкой CPU;
  • испытывать нехватку оперативной памяти;
  • активно использовать swap;
  • иметь заканчивающееся место на диске или inode;
  • потерять связь с PostgreSQL;
  • частично потерять связь с RabbitMQ;
  • иметь недоступный PreviewService, IntegrationService или LogService;
  • содержать контейнер Directum RX в состоянии Restarting или Exited.

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

Именно для этой задачи появился проект Self-Healing Directum RX.

Что было предложено

Текущая версия проекта — v0/MVP, реализованная в виде Bash health-agent. Ее задача не в том, чтобы самостоятельно перезапускать каждый проблемный компонент, а в том, чтобы дать HAProxy более точную информацию о состоянии backend-узла.

RX-health-agent работает непосредственно на backend-узлах, выполняет локальные и сетевые проверки, объединяет результаты и передает итоговое состояние HAProxy через механизм agent-check.

В результате балансировщик получает не только сигнал «сервер доступен или недоступен», но и рекомендацию по весу backend-а:

СостояниеРеакция
Нормаbackend работает с весом 100%
Мягкая деградациявес backend-а уменьшается до 75% или 50%
Критический отказbackend переводится в down и исключается из балансировки
Плановое обслуживаниеиспользуется maint
Мягкий административный выводиспользуется drain
Восстановлениеузел проходит recovery window и возвращается к рабочему весу

Такой подход позволяет не отключать backend полностью при каждой проблеме. Если узел еще способен обслуживать запросы, но давать ему полную нагрузку уже нежелательно, HAProxy снижает его вес и отдает предпочтение более здоровому серверу.

Что проверяет health-agent

В версии v0 реализованы проверки:

  • проверка доступности ключевых HTTP endpoint Directum RX;
  • проверка /client/api/health;
  • проверка /client/health;
  • проверка StorageService;
  • проверка PreviewService;
  • проверка IntegrationService;
  • проверка LogService;
  • проверка состояния контейнеров Directum RX;
  • проверка доступности Docker daemon;
  • проверка свободного места на файловой системе;
  • проверка inode;
  • проверка CPU и load average;
  • проверка RAM;
  • проверка swap;

Кроме того, агент:

  • формирует причину деградации;
  • рассчитывает итоговый вес узла;
  • поддерживает мягкую деградацию без полного отключения backend-а;
  • позволяет вручную перевести узел в maintenance;
  • поддерживает режим drain;
  • использует recovery window перед полноценным возвратом backend-а в балансировку.

При этом уже сейчас важно четко обозначить границу возможностей это версии.

Health-agent не является системой общего мониторинга и не заменяет HAProxy, Keepalived, Patroni, RabbitMQ или решение «Мониторинг Directum RX». Его задача — максимально быстро принять решение о пригодности конкретного RX backend-а для дальнейшей обработки пользовательского трафика.

Архитектура тестового стенда

Для разработки и тестирования проекта развернут отдельный стенд Directum RX 26.1 на РЕД ОС 8.

В составе стенда для первой версии агента используются следующие группы узлов.

УзелНазначениеМинимальные ресурсы
dev-ddc-hap-01HAProxy + Keepalived, node 12 vCPU, 4 ГБ RAM
dev-ddc-hap-02HAProxy + Keepalived, node 22 vCPU, 4 ГБ RAM
dev-ddc-rx261aDirectum RX 26.1 backend 16 vCPU, 16 ГБ RAM
dev-ddc-rx261bDirectum RX 26.1 backend 26 vCPU, 16 ГБ RAM


Для кластера балансировки используются два HAProxy-узла и Keepalived. Пользовательский трафик поступает на виртуальный IP и далее распределяется между backend-узлами Directum RX.

Для взаимодействия HAProxy с health-agent используется TCP-порт 9505.

Кто за что отвечает

В текущей архитектуре важно не смешивать функции 3-х компонентов.

rx-health-agent

Агент работает в контексте backend-узла Directum RX и оценивает:

· состояние самого RX;

· состояние контейнерной среды;

· ресурсы операционной системы.

Результатом становится агрегированное состояние узла, например 100%, 75% или 50%, down, maint или drain.

HAProxy

HAProxy выполняет две проверки:

· штатный HTTP health-check конкретного сервиса Directum RX;

· получение дополнительного состояния backend-а через agent-check.

Именно HAProxy принимает окончательное решение о доступности узла и его весе в балансировке.

Keepalived

Keepalived отвечает не за отдельный backend Directum RX, а за доступность самого слоя балансировки. Если первый HAProxy-узел перестает выполнять свою функцию, Keepalived должен переключить виртуальный IP на второй HAProxy.

Проверку состояния HAProxy и Keepalived не следует смешивать с проверками RX health-agent. Для балансировщиков планируется отдельный локальный механизм.

Как устроена версия v0

Health-agent устанавливается непосредственно на backend-узлы Directum RX. В тестовом контуре это dev-ddc-rx261a и dev-ddc-rx261b. Для взаимодействия с HAProxy используется TCP-порт 9505.

Состав файлов

Основной сценарий агента располагается в:

Конфигурационный файл:

Текущее состояние агента сохраняется в:

Для административного управления backend-узлом дополнительно используются marker-файлы:

Режимы maintenance, drain и механизм recovery уже входят в возможности Bash-версии v0.

В конфигурации задаются проверяемые endpoint-ы Directum RX, допустимые HTTP-коды, таймауты, пороги ресурсов операционной системы и параметры инфраструктурных проверок.

Для Client API используется endpoint:

с ожидаемым HTTP-кодом 200.

Отдельные warning- и critical-пороги предусмотрены для диска, inode, CPU/load average, RAM и swap.

Основная логика v0 реализована на Bash. За один вызов агент выполняет проверки, определяет найденные проблемы и формирует итоговое решение для HAProxy. Затем результат передается через systemd socket activation на TCP-порту 9505.

Для подключения к HAProxy используются agent-check и отдельный период проверки agent-inter.

После изменения конфигурации HAProxy она проверяется командой:

После успешной проверки конфигурацию можно применить через:

Политика для сервисов Directum RX

Для разных компонентов используются разные реакции на отказ:

ПроверкаЧто контролируетсяРеакция
Client API/client/api/healthdown
Web Client/client/healthdown
StorageService/storage/healthdown
PreviewService/preview/health50%
IntegrationService/integration/health50%
LogService/log/health75%
Dockerdaemon и состояние контейнеров50% / down
CPU / Loadнагрузка операционной системы50% / down
RAMиспользование памяти50% / down
Swapиспользование swap50%
Diskзаполнение файловой системы50% / down
Inodeдоступные inode50% / down

На выходе агент может сформировать несколько состояний.

РезультатЗначение
100%узел полностью работоспособен
75%небольшая деградация
50%существенная деградация
downузел необходимо исключить
maintплановое обслуживание
drainмягкий административный вывод
up / readyпереходное состояние восстановления

Client API, Web Client и StorageService считаются критичными. Если проверка одного из них не проходит, backend исключается из балансировки.

PreviewService и IntegrationService переводят узел в состояние с весом 50%, а LogService — с весом 75%. Пользовательский трафик продолжает обслуживаться обоими серверами, но HAProxy отдает предпочтение полностью исправному backend-у.

Административные режимы

Для планового вывода узла используется режим maintenance:

После этого агент возвращает состояние maint, а HAProxy переводит backend в MAINT.

После окончания работ marker-файл удаляется:

Для более мягкого вывода используется режим drain:

touch /var/lib/rx-health-agent/drain

В этом случае агент возвращает drain, а HAProxy не должен направлять на backend новые обычные запросы.

После окончания работ файл также удаляется:

В v0 предусмотрен и recovery window. После состояния down агент не сразу возвращает backend к полной нагрузке. Сначала узел проходит переходное состояние восстановления, после чего возвращается к рабочему весу.

Это снижает риск ситуации, когда недавно восстановившийся сервер мгновенно получает весь доступный объем трафика.

Пример мягкого вывода с помощью drain

Пример мягкого вывода с помощью recovery window

Как проверять работу

На стенде проверяются три сценария: деградация из-за ресурсов, полный отказ критичного компонента и частичный отказ отдельного сервиса.

Сценарий 1: Высокая загрузка CPU

Приложение может продолжать отвечать HTTP 200, хотя сервер уже находится под высокой нагрузкой. Для теста на RX-узле создается CPU-нагрузка:

Агент контролирует load average и при превышении warning-порога уменьшает вес backend-а.

Ожидаемый результат:

При этом первый сервер не переводится в DOWN: он продолжает работать, но HAProxy начинает отдавать предпочтение второму backend-у.

HAProxy Stats во время CPU-теста

Сценарий 2: Остановка критичного контейнера

Второй сценарий — отказ компонента, без которого RX backend уже нельзя считать нормально работоспособным.

На одном из RX-узлов останавливаем нужный критичный контейнер:

Его состояние можно проверить командой:

Если контейнер Web Client или другого критичного компонента переходит в Exited либо другое проблемное состояние, соответствующий health-check перестает проходить. Backend переводится в down, а трафик продолжает обслуживаться вторым RX-узлом.

Ожидаемое состояние:

HAProxy Stats после остановки контейнера веб-сервера

После завершения теста контейнер запускается обратно:

После успешных проверок и прохождения recovery window backend возвращается в балансировку.

Сценарий 3: Отказ PreviewService

Не каждый отказ должен приводить к полному отключению узла. Для PreviewService используется endpoint:

Если проверка перестает проходить, backend не переводится в down. Вместо этого агент уменьшает его вес до 50%:

Оба сервера продолжают обслуживать трафик, но HAProxy отдает предпочтение полностью исправному backend-у.

Почему для v0 выбрали Bash

На первом этапе нужно было быстро проверить саму концепцию: можно ли использовать фактическое состояние RX-узла для динамического управления балансировкой.

Для этого Bash оказался достаточным. Необходимые данные уже доступны штатными средствами Linux:

· HTTP-проверки выполняются через curl;

· состояние файловой системы получают через df;

· сведения о памяти — через free;

· load average — из /proc;

· состояние контейнеров — командами Docker.

Bash-агент не требует тяжелого runtime и может быть размещен непосредственно на RX-узле. Сценарий легко изменить, проверить через bash -n, выполнить на сервере и сопоставить результат с состоянием HAProxy.

Для MVP этого оказалось достаточно. При этом Bash-версия рассматривается именно как v0 и проверка работоспособности идеи, а не как финальная реализация. По мере усложнения логики становятся важными история состояний, сложные API, статистика за временное окно и дополнительные механизмы стабилизации.

Что планируется дальше

В следующих версиях планируется:

· развить более глубокую диагностику RabbitMQ и PostgreSQL;

· учитывать время ответа сервисов;

· анализировать HTTP-ошибки за временной интервал;

· хранить историю состояний;

· улучшить защиту от частого изменения веса;

· реализовать полноценную проверку очередей RabbitMQ и SQL-проверка PostgreSQL;

· рассчитывать p95/p99 времени ответа HTTP-сервисов.

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

Наши рекомендации

При построении отказоустойчивого контура не ограничивайтесь проверкой доступности приложения: заранее определите, какие компоненты являются критичными, какие проблемы допускают мягкую деградацию, а какие требуют полного исключения узла из балансировки. Начинайте с минимального набора проверок и понятной матрицы реакций, тестируйте каждое состояние на стенде и отделяйте health-check от общего мониторинга и автоматического восстановления. Такой подход позволяет сначала проверить саму логику маршрутизации трафика, а затем последовательно расширять self-healing без преждевременного усложнения архитектуры.