Network monitoring

https://habr.com/ru/companies/ruvds/articles/712536/

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

Хотя Kubernetes при выборе системы управления контейнерами является стандартом «де факто», многим организациям не удаётся её реализовать. Растущие организации в процессе увеличения масштабов своих сервисов ненамеренно вносят в систему усложнения. Критически важно понимать, как настраивать инфраструктуру и как кластеры могут работать и взаимодействовать между собой.

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

Введение в визуальное картографирование сетей

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

Для картографирования сетей и генерации визуальных карт сетей можно использовать опенсорсные инструменты безопасности наподобие OpenVAS, Nmap и Nessus. Эти инструменты бесплатны, что делает их экономичным решением для организаций, стремящихся повысить безопасность сетей. Кроме того, многие опенсорсные инструменты безопасности имеют активную поддержку сообщества, позволяя пользователям делиться знаниями, советами и рекомендациями по реализации полного потенциала инструмента.

Преимущества использования визуальных карт сетей

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

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

Знакомство с Caretta и Grafana

Caretta — это опенсорсный инструмент визуализации и мониторинга сетей, позволяющий просматривать и мониторить сети в реальном времени.

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

На основе Caretta и Grafana можно создать эффективное решение для понимания сети и управления ею.

▍ Как Caretta использует eBPF и Grafana

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

Благодаря обеспечению допусков (toleration) Carreta позволяет принимать типичные аннотации узлов уровня управления. Она собирает информацию сети, например, сведения об устройствах и соединениях, при помощи функциональности ядра eBPF (extended Berkeley Packet Filter), а затем использует платформу Grafana для отображения информации на визуальной карте.

▍ Роль Grafana в визуализации карт сетей Caretta

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

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

Использование Caretta и Grafana для создания визуальной карты сети

Чтобы использовать Caretta и Grafana в создании визуальной карты сети, их необходимо установить, внедрить и конфигурировать. Основной объект конфигурирования — это Caretta daemonset.

Для просмотра карты сети необходимо развернуть Caretta daemonset в выбранном кластере, который будет собирать метрики сети в базу данных, а также настроить источник данных Grafana так, чтобы указывал на базу данных Caretta.

▍ Обязательные требования для использования Caretta и Grafana

Caretta — современный инструмент, интегрированный с расширенными функциями. Он использует версию ядра Linux от 4.16 и выше и helm chart для 64-битной системы.

Давайте разберёмся, как установить и сконфигурировать это сочетание инструментов.

▍ Установка и конфигурирование Caretta и Grafana

При наличии заранее сконфигурированный helm chart для установки Caretta достаточно всего нескольких вызовов.

Рекомендуется устанавливать Caretta в новое уникальное пространство имён.

То же самое относится и к установке Grafana.

Наш файл custom-values.yaml будет выглядеть примерно так:

▍ Конфигурирование

Сконфигурировать Caretta можно при помощи значений helm. Значения в Helm — это позиции настройки chart. После установки chart можно изменить значения, перечисленные в файле values.yaml, являющемся частью пакета chart, и настроить конфигурации на основании своих требований.

Ниже представлен пример конфигурации с переписыванием стандартных значений:

pollIntervalSeconds задаёт интервал опроса метрик. В нашем случае метрики будут запрашиваться каждые 15 секунд.

В разделе tolerations можно указать допуски для подов. В показанном выше примере поды могут работать только в узлах, имеющих метку node-role.kubernetes.io/control-plane и с эффектом NoSchedule.

Раздел config позволяет указать собственные опции конфигурации для приложения.

Раздел victoria-metrics-single позволяет сконфигурировать сервер Victoria-metrics-single. В примере мы включаем использование постоянного хранилища (persistent volume).

Раздел eBPF позволяет включить eBPF и настроить его опции.

▍ Создаём визуальную карту сети с помощью Caretta и Grafana

Caretta состоит из двух частей: Caretta Agent и Caretta Server. Каждый узел в кластере выполняет Caretta Agent Kubernetes DaemonSet, собирающий информацию о состоянии кластера.

Для просмотра данных в виде карты сети и генерации карты сети необходимо добавить в Grafana данные, собранные Caretta.

Данные из Caretta Agent получаются Caretta Server (который является Kubernetes StatefulSet), после чего он сохраняет их в базу данных.

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

▍ Опции настройки для карты сети и как получить к ним доступ

Карту сети, созданную Caretta и Grafana, можно настраивать множеством разных способов. Мы можем изменять следующие параметры:

  • Опции отображения: при помощи опций настройки отображения вы можете управлять структурой карты, толщиной и цветом соединений и устройств.

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

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

  • Опции визуализации: при помощи опций визуализации можно представлять собранные данные понятным и полезным образом.

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

Интерпретация и использование визуальной карты сети

Основные задачи визуальной карты сети, созданной Caretta и Grafana — помощь в понимании сетевой топологии, выявлении возможных узких мест или проблем и планировании и устранении сетевых проблем. Чтобы интерпретировать и использовать визуальную карту сети, нужно разобраться в компонентах карты и их значении.

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

  • Устройства: присутствующие на карте конечные точки сети, в том числе серверы, коммутаторы и роутеры.

  • Соединения: соединения между устройствами, например, сетевые кабели, беспроводные или виртуальные соединения; иногда тип соединения отображается на карте.

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

▍ Советы по использованию карты сети для оценки производительности кластера K8s

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

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

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

Заключение

Разбиение крупных систем на микросервисы, превращение систем в распределённые и управление ими — самый популярный подход для повышения производительности и аптайма. В этом лидерами рынка стали Kubernetes и Docker.

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

Grafana — лидирующий инструмент на рынке мониторинга. Соединив опенсорсный инструмент сетевой визуализации и мониторинга Caretta с Grafana, можно полностью раскрыть возможности своей инфраструктуры.

Last updated

Was this helpful?