что такое сетевая связанность

Что такое сетевая связанность

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

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

Существуют детерминированные и вероятностные оценки связности сети.

Детерминированные оценки связности сети

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

Удаление узлов 1 и 4 разрывает граф. Вершинная связность k = 2. Удаление ребер, входящих в узел 3 делает граф несвязным Реберная связность графа равна l = 3.

Реберная связность рассматривается как мера защищенности графа сети от распада при удалении из него вершин или ребер. На предыдущем рисунке удаление ребер входящих в узел 3 делает граф несвязным.

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

Вероятностные оценки связности сети

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

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

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

где i = 1, 2,3,…,l
P – вероятность связности всех вершин графа,
Аi – благоприятные состояния, в которых граф оказывается связанным,
P(Ai) – вероятность благоприятного состояния,
l – число благоприятных состояний.

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

Другой характеристикой надежности сети является вероятность связности 2-х вершин. Две вершины будут связаны тогда, когда в графе существует хотя бы один путь Mi (где i=1…k), связывающий рассматриваемые вершины.
Если Bi – событие, состоящее в том, что хотя бы один такой путь существует, а P(Bi) – вероятность такого события, то вероятность связности 2-хвершин:

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

где k- количество цепей или благоприятных случаев).

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

Метод простых сечений удобно рассмотреть на примере:

что такое сетевая связанность. 037. что такое сетевая связанность фото. что такое сетевая связанность-037. картинка что такое сетевая связанность. картинка 037. Понятие связности имеет для сети фундаментальное значение. Высокая связность сети предполагает, что такая сеть надежна. Высокая связность, достигаемая при минимальной стоимости сети делает сеть оптимальной.
Рис.1

На приведенном рисунке требуется определить связность вершин s и t. Для этого надо определить сечения из 2, 3, 4 и более ребер сети, удаление которых разрывает связь между вершинами s и t. Количество сечений по 2, 3, 4 и т.д. ребер подставляется в формулу:

В нашем примере разъединение сети произойдет, если выйдет из строя не менее 2-х ребер, таких сечений 6 и 5 сечений по 3 ребра.

Источник

Инфраструктура в разных концах города: как не проворонить сетевую связность

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

В октябре по просьбе наших подписчиков мы обсудили тему сетевой связности на эфире в Салатовой телеге. Здесь решили продолжить обсуждение в двух частях:

в первой части покажем сценарии георезервирования и варианты связности в рамках одной сети дата-центров в одном городе;

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

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

Кому и какое георезервирование нужно

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

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

На какие вопросы нужно ответить перед разработкой решения:

Какие площадки связываем: ЦОДы или собственные площадки клиента?

Между крупными дата-центрами уже проложены каналы и есть телеком-операторы на выбор. На базе этих каналов можно выбрать разные услуги. А вот для связи с клиентской серверной, возможно, потребуется достроить канал от ближайшей точки присутствия провайдера.

Какое расстояние между площадками?

Даже если резерв находится в пределах одного города, важно выяснить расстояние. От этого зависит задержка сети и скорость.

Средневзвешенная задержка в пределах одного города будет меньше 10 миллисекунд — этот показатель растет при расстояниях в тысячу и более километров. Но для предсказания фактической задержки важно знать топологию сети и маршрут между узлами присутствия.

А в случае со скоростью многое зависит и от оборудования. Например: дальнобойные трансиверы дают максимальную скорость на расстоянии до 40—50 км.

Какие нужны показатели допустимого времени восстановления (RTO) и допустимой потери данных (RPO) исходя из задачи?

Резервная площадка может понадобиться для хранения бэкапов, когда важно сохранить максимум информации, а скорость развертывания вторична. Тогда мы задаем строгий RPO и не так требовательны к RTO.Или, наоборот, клиент может держать площадку в другом ЦОДе, чтобы максимально быстро поднять свой сервис при аварии. Тогда выбираем решение с предсказуемым RTO: отказоустойчивый кластер между двумя дата-центрами, послеаварийное восстановление как сервис (DRaaS) или катастрофоустойчивое облако.

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

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

Дальше мы уточняем детали и предлагаем решения по ситуации.

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

Резервируем ресурсы и трассы внутри Москвы

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

Вот какие способы организации сети и резервирования тут есть.

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

Кажется, что для георезервирования даже в пределах города не подходит. Но есть сценарии, когда требования к RTO и RPO не такие высокие, а риски этого варианта компенсируются дополнительными инструментами:

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

Тянуть каналы L2 в каждую точку нет смысла: так магазин никогда не окупится. Компания готова мириться с небольшой временной деградацией трафика — главное, чтобы связь с магазинами была.

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

А для защиты от угроз ИБ затем можно использовать фаерволы и подключение по шифрованному каналу: классический IPsec site-to-site, IPsec с GRE и так далее. Подробнее об их настройке мы рассказывали здесь:

Как ритейлер в этом примере может проверить телеком-операторов? Во-первых, запросить карту сети и убедиться, что маршруты выбранных провайдеров не пересекаются. Еще лучше, если удастся изучить схему прокладки оптического кабеля в офисном здании. Так можно проверить, насколько кабельные вводы далеко друг от друга и застрахованы от “шального экскаватора”.

что такое сетевая связанность. image loader. что такое сетевая связанность фото. что такое сетевая связанность-image loader. картинка что такое сетевая связанность. картинка image loader. Понятие связности имеет для сети фундаментальное значение. Высокая связность сети предполагает, что такая сеть надежна. Высокая связность, достигаемая при минимальной стоимости сети делает сеть оптимальной.Пример схемы прокладки оптики в здании.

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

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

Для проверки можно использовать сервисы Looking Glass, они есть даже у небольших телеком-провайдеров. По названию провайдера можно проверить, в каком состоянии находится пиринг — обмен трафиком между операторами. Для примера поищем по названию DataLine в сервисе от Hurricane Electrics:

что такое сетевая связанность. image loader. что такое сетевая связанность фото. что такое сетевая связанность-image loader. картинка что такое сетевая связанность. картинка image loader. Понятие связности имеет для сети фундаментальное значение. Высокая связность сети предполагает, что такая сеть надежна. Высокая связность, достигаемая при минимальной стоимости сети делает сеть оптимальной.На графе видим кликабельные обозначения провайдеров, с которыми настроен обмен.

Более интересный кейс: можно выходить в интернет с помощью протокола маршрутизации BGP. Для этого у клиента должна быть своя автономная система (АС) — система IP-сетей и маршрутизаторов, которыми управляют операторы связи. При наличии у клиента АС и независимых адресов сервис-провайдер может поднять BGP-пиринг, то есть организовать обмен маршрутами с клиентом и отдавать их в сторону собственных апстримов. При этом для резервирования можно поднять второй пиринг с другим телеком-провайдером.

Возможен и более экзотический кейс георезервирования. Клиент может поднять BGP-сессии на серых АС с IP-адресами, которые выделяет сервис-провайдер. В этом случае организовать пиринг с другим провайдером уже не получится.

Вот как мы реализуем эту схему. Вы анонсируете эти адреса нам из двух ЦОДов. Если что-то случилось в одном из ЦОДов, то другой берет на себя эти адреса, и даунтайм минимален.

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

В целом, наш опыт подсказывает, что вполне можно использовать интернет в связке с VPN для доступа к легкому статичному контенту. А вот нагруженные решения уже стоит связывать по-взрослому.

Использование каналов сервис-провайдера между площадками. Когда две площадки для резервирования расположены в одной сети дата-центров, можно воспользоваться готовой связностью между ними. Например, первые проекты с резервированием внутри Москвы мы начинали на базе двух площадок: NORD и OST. Для обеспечения связности между ними была построена наша собственная оптоволоконная сеть.

Какие есть варианты связывания площадок с использованием такой сети:

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

Если клиент подключает площадку в дата-центре со своим физическим оборудованием, то можно взять канал L2 Ethernet в аренду. Тогда в конечных точках сразу будет установлен коммутатор. Чаще всего этот вариант берут компании с объемом трафика до 1 гигабита между площадками с “физикой” — так получается выгоднее всего. На самом деле, в таком сценарии мы можем предоставить порт и на 10 гигабит. А вот все, что больше, нужно прорабатывать отдельно. Не всегда IP-транспорт способен обеспечить передачу такого объема трафика без потерь.

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

Облачные сервис-провайдеры строят DWDM-системы между своими площадками, чтобы с запасом обеспечить транспорт для всех “растянутых” облачных сервисов. Но и некоторые крупные клиенты могут создать DWDM-решение для собственных нужд.

Внутри DWDM уже заложена отказоустойчивость. Каждый трансивер подключен сразу к двум непересекающимся трассам. Для переключения между ними используется коммутатор L1, в котором установлен датчик света. Если датчик “не видит” света в волокне, то переводит трафик на резервный канал (на самом деле все чуть сложнее, но об этом как-нибудь в следующий раз).

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

Поверх транспортной сети также возможны дополнительные услуги: VPN, Anti-DDoS и так далее.

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

На уровне опорной сети связь идет по нескольким трассам непересекающимися маршрутами.

На уровне каждой площадки есть резервирование трасс и оборудования. Например, у нас на OST есть 3 независимых узла связи: по одному кластеру в каждом энергоцентре. На второй площадке NORD независимых кластеров еще больше, все они соединены друг с другом и с узлами дата-центра OST. При падении целого сетевого сегмента нагрузка перераспределяется на другие узлы.

На уровне самих каналов достаточная пропускная способность обеспечивается за счет оборудования Enterprise-уровня. Например, у нас на этом уровне предусмотрено двойное резервирование сети. Что это значит: мы наблюдаем за утилизацией сети на мониторинге и следим, чтобы ее загруженность не превышала 50%. При такой загрузке даже падение половины линков нам не страшно. Как только загрузка начинает регулярно превышать 50%, пора модернизировать сеть. Где-то наращивать линки, где-то менять оборудование на более мощное.

Если нужно соединить с облаком собственную площадку клиента, вопрос стоимости резерва может встать чуть острее. Достраивать оптику до клиента бывает недешево само по себе, а нам вдобавок нужно продумать резервирование этого канала. Здесь уже есть варианты: достроить второй канал, арендовать второй канал у подрядчиков на площадке клиента или обойтись резервом через интернет с учетом его издержек.

Посмотрим, как можно применить сразу несколько вариантов в конкретном проекте.

У одного из крупных клиентов на территории Москвы было 2 офиса с собственными серверными. Изначально инфраструктура не предполагала других площадок.

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

Но затем произошла авария и компания задумалась о послеаварийном восстановлении за пределами офиса. Резервную инфраструктуру решили разместить в защищенном облаке DataLine Cloud-152. В случае падения виртуальной машины на одной из клиентских площадок резервная ВМ должна мгновенно подниматься в Cloud-152.

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

В итоге к офисам компании подключились через 2 канала: один канал арендовали у DataLine, а второй у другого оператора связи. Получилось резервирование сети за счет двух независимых телеком-операторов.

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

Из-за особенностей клиентской инфраструктуры нужно было минимизировать возможные проблемы единого растянутого L2-домена. Мы посоветовали клиенту разделить домен на два сегмента с его стороны. К нам на площадку NORD приходят оба VLAN’а, и, в случае падения ВМ на одной из основных площадок заказчика, на нашей они поднимутся сразу в нужном IP-сегменте.

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

В следующий раз поговорим, какие риски и особенности могут возникнуть у межпровайдерского георезервирования:

какие есть варианты для связи независимых дата-центров по России;

какие трудности появляются на больших расстояниях и как их преодолеть;

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

Источник

Мониторинг связности в сети сервисов

Предисловие

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

Структура сети: фронтенды, бэкенды, сервисы

Как и многие другие веб-приложения, наше состоит из фронтендов(FE), бэкендов(BE), сервисов. Фронтенд принимает соединение от клиента и пробрасывает его на бэкенд, который обращается к сервисам за помощью и отвечает клиенту. В нашем случае FE — почти всегда — nginx, BE — tomcat. Эта архитектура достаточно стандартна, нестандартности начинаются тогда, когда нужно прнять решение о том, как маршрутизировать запросы между фронтендами, бэкендами и сервисами.

Информация CMDB может использоваться двумя способами. Первый — условно «оффлайн», заключается в том, что по крону, раз в несколько минут, скрипт выбирает нужную информацию из CMDB и строит актуальные конфиги, например, для nginx, включая в них нужные апстримы. О том, как работает второй способ обращения к CMDB — в следующем разделе.

CMDB, короткие имена, поиск сервиса по имени

Физическая структура сети, проблемы связи

что такое сетевая связанность. image loader. что такое сетевая связанность фото. что такое сетевая связанность-image loader. картинка что такое сетевая связанность. картинка image loader. Понятие связности имеет для сети фундаментальное значение. Высокая связность сети предполагает, что такая сеть надежна. Высокая связность, достигаемая при минимальной стоимости сети делает сеть оптимальной.Мы арендуем сервера у хостинг-провайдеров. Структура в различных датацентрах одинаковая — набор физических хостов, в которых запущены контейнеры с фронтендами, бэкендами или сервисами. Запрос от любого компонента может уйти на любой другой хост и даже в другой датацентр, если по каким-то причинам нужный сервис есть только в другом датацентре. Всего мы размещаемся в шести датацентрах, в каждом датацентре работает порядка сотни-двух серверов, на каждом сервере до четырех-пяти контейнеров. В общей сложности получаем около тысячи хостов и около пяти тысяч контейнеров.

Поскольку вся сетевая структура находится не в наших руках, мы не можем мониторить линки, свитчи, загруженность каналов и т.д. По той-же причине (сеть не в наших руках) мы используем ipsec для связи между серверами. Ipsec иногда преподносит сюрпризы в виде потери связи между двумя хостами (или только между контейнерами). Аналогичные сюрпризы преподносит инфраструктура провайдера. В любом случае — всё что мы можем обнаружить, это факт недоступности одного хоста (или его контейнеров) со стороны какого-то множества хостов или контейнеров. Причем сам факт недоступности не всегда проявляется на уровне приложения: сервисы дублированы, запрос может быть удовлетворён с доступного сервера. Так-же мы не можем мониторить такого рода проблемы с помощью пингов с центрального сервера — он их просто не заметит.

Для того что-бы решить все эти проблемы одним ударом нам нужно мониторить не «всё», а только связь между компонентами, которые обращаются друг к другу. Так что первая задача, которая тут возникает — как узнать к каким компонентам обращается данный компонент. Точно это знают только девелоперы, но и они не всегда могут представить актуальную информацию, поэтому особенного смысла спрашивать их об этом, или просить вести какой-то реестр, нет — в реальности это не работает

Тут нам приходит на помощь знание того, как сервисы находят друг-друга: те компоненты, которые не используют резолвинг, а вычисляют партнёров через прямое обращение к CMDB мы попросим сохранять результат этого вычисления не только в своих конфигах, но и в каком-то общедоступном месте в оговоренном формате. А для сервисов, которые используют CMDB через резолвинг — мы будем парсить логи PowerDNS и выяснять что PowerDNS ответил на запрос. Таким образом мы сможем собрать полный список того, на какие IP могут обращаться те или иные компоненты.

Мониторинг, тесты

Мы собираем полный список актуальных связей между контейнерами в одном месте, для задачи мониторинга свзяей это одно место играет роль «сервера». Вся информация представлена на сервере в виде словаря:

контейнерсписок связей
be5.host58192.168.5.1 192.168.5.2 10.1.2.3 10.2.3.4
be8.host100010.0.0.1 10.0.100.5

Сервер делает доступной эту информацию через REST-интерфейс.

Вторая половина мониторинга расположена в каждом контейнере — эту часть назовём «агентом». Агент не знает о контейнере, в котором он расположен, ничего кроме имени, не хранит никакого текущего состояния. Раз в две минуты агент обращается к серверу за списком своих связей и сервер отвечает ему строкой из приведенной выше таблицы. Обычно длина списка IP-адресов не превышает десяти. По этим адресам агент отправляют пинги. Результат, содержащий список проблем (если такие обнаружены), через POST сообщается обратно на сервер. Поскольку все операции выполняемые сервером для агентов очень просты, он легко может обслужить большое их число — для этого ему просто нужно успеть принять запрос GET,POST и выполнить поиск в словаре или добавление данных в словарь несколько десятков раз в секунду.

Кроме того, раз уж агент всё-равно запускается раз в пару минут — есть смысл собрать еще какие-то текущие показатели работы компонента и передать их на сервер. Мы мониторим очень много всего через мунин, но мунин даёт достаточно большую задержку в представлении данных, а здесь мы можем получить кое-что прямо в режиме «real time». Поэтму агент собирает заодно и такие показатели как LA в компоненте, темп запросов к nginx, если он есть и число ошибок nginx с разбивкой по кодам.

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

Мониторинг, представление и анализ результатов

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

namedisconnectsDCroleloadnginxErrRateconnectivitynginxAccessRate
be1.host1230TXbe0.2115.5531.38
be1.host1220TXbe0.11|18.2834.61
fo1.host1612VAfo0.020.1110.1.1.4,10.1.2.414.1
fo1.host1600VAfo0.00.000.0
fo1.host1622VAfo0.010.1810.2.1.4,10.2.4.317.56

Часть информации в этой таблице прислана агентами(disconnects, load, nginx. ), часть (DC, role) — заполняется из CMDB. Поскольку данные в этой таблице очень короткоживущие и число строк в ней — порядка тысяч, есть смысл оформить её как часть базы sqlite типа «:memory:».

Основное ради чего городился весь этот огород — мониторинг проблем связи. Поэтому в первую очередь нас интересуют только колонки disconnects и connectivity — число оборванных связей и соответствующий список контейнеров, но в целом мы можем получать разные интересные факты из такой таблицы c помощью простых SQL-запросов. «SELECT name FROM data ORDER by disconnects DESC» — даёт нам список серверов с проблемами связи которые мы должны решать в первую очередь. Результаты этого запроса, если они не пусты — отправляются в Nagios в виде алерта с приложенным списком проблемных серверов. Дежурный инженер, получив информацию о проблеме предпринимает дальнейшие меры — снимает траффик с проблемных серверов, создаёт тикет в системе хостинг-провайдера и т.д.

У нас иногда возникает ситуация при которой общий уровень ошибок в системе начинает расти. Это может происходить по разным причинам, связанным как с нашими операционными проблемами, так и с внешними по отношению к нам причинами. Абстрактный пример — маршрутизация между датацентрами изменилась, в результате кросс-датацентровые запросы перестали вписываться в лимиты по времени, что приводит к росту 504 ошибок в nginx. Запрос «SELECT SUM(nginxAccessRate),SUM(nginxErrorRate),dataCenter FROM data GROUP by dataCenter ORDER BY SUM(nginxAccessRate)» даёт нам общую картину ошибок с разбивкой по датацентрам. Эта общая картина потом может детализироваться с помощью запросов работающих только с 504-ми ошибками и т.д.

Другой пример — допустим мы хотим выяснить, есть ли корреляция между загруженностию сервера и числом ошибок, которые на нем возникают. Запрос «SELECT load,nginxErrorRate FROM data WHERE role=»be1″ ORDER by nginxErrorRate DESC» даёт нам возможность построить график или аналитически обнаружить такую зависимость.

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

Это не есть решение заменяющее связки типа statsd+graphite, хотя-бы потому что тут нет ведения истории, возможность быстро получить разные срезы поведения системы здесь просто бонус к анализу коннективити между сервисами.

Заключение

Описанная система на сегодня мониторит связь для примерно тысячи контейнеров. Никаких проблмем с производительностью пока не обнаружено. С другой стороны обнаружена слишком высокая чувствительность к кратковременным пропаданиям связи, перегрузке каналов или увеличению времени отверта на ping. С этим мы боремся настройкой чувствительности алертов Nagios.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *