Network monitoring
Last updated
Last updated
https://habr.com/ru/companies/ruvds/articles/712536/
Создание производительных сервисов и систем — основа любого бизнеса. Ежедневно появляются кучи новых технологий, которые обещают дать возможности, позволяющие превзойти ваши бенчмарки производительности. Однако продакшен-среды — это хаотичные системы, мониторинг и поддержка которых требует большой доли ресурсов.
Хотя Kubernetes при выборе системы управления контейнерами является стандартом «де факто», многим организациям не удаётся её реализовать. Растущие организации в процессе увеличения масштабов своих сервисов ненамеренно вносят в систему усложнения. Критически важно понимать, как настраивать инфраструктуру и как кластеры могут работать и взаимодействовать между собой.
Основная часть инфраструктуры упорядочивается в виде сети систем, обменивающихся данными и разделяющих рабочие нагрузки. Очень удобна возможность визуального наблюдения за соединением систем и выявления влияющих на них факторов. Создание карты сети при помощи эффективного инструмента визуализации и контроля является обязательной задачей для мониторинга и поддержки сервисов.
Создание карт сетей — это процесс выявления и каталогизации всех устройств и соединений в сети. Визуальная карта сети — это визуальное представление сети, отображающее устройства и связи между ними. Визуальные карты сетей обеспечивают понимание топологии сети и выявляют потенциальные проблемы или узкие места, что позволяет создавать планы модификации и расширения, способные существенно улучшить процесс устранения проблем, планирования, анализа и мониторинга.
Для картографирования сетей и генерации визуальных карт сетей можно использовать опенсорсные инструменты безопасности наподобие OpenVAS, Nmap и Nessus. Эти инструменты бесплатны, что делает их экономичным решением для организаций, стремящихся повысить безопасность сетей. Кроме того, многие опенсорсные инструменты безопасности имеют активную поддержку сообщества, позволяя пользователям делиться знаниями, советами и рекомендациями по реализации полного потенциала инструмента.
Визуальная карта сети — это эффективный инструмент для планирования и разработки новых сетей, расширения или модернизации имеющихся сетей и анализа сетевых проблем.
Правильная настройка визуальных карт сетей может существенно расширить возможности мониторинга, трекинга и устранения неполадок. Она предоставляет вам чёткую и полную картинку сети, позволяя выявлять потенциальные источники проблем и разрешать и их; также она помогает в мониторинге сетей в реальном времени и заранее уведомляет о любых изменениях или проблемах.
Caretta — это опенсорсный инструмент визуализации и мониторинга сетей, позволяющий просматривать и мониторить сети в реальном времени.
Grafana — это опенсорсная платформа визуализации и мониторинга данных, позволяющая создавать собственные дэшборды и алерты, а также исследовать и анализировать данные.
На основе Caretta и Grafana можно создать эффективное решение для понимания сети и управления ею.
Предназначение Caretta заключается в том, чтобы помочь в понимании топологии и взаимосвязи между устройствами в распределённых средах. Она предлагает различные возможности, например, выявление устройств, мониторинг в реальном времени, алерты, уведомления и отчётность. Для сбора и публикации своих метрик она использует Victoria Metrics, а результаты её работы можно использовать в любом совместимом с Prometheus дэшборде.
Благодаря обеспечению допусков (toleration) Carreta позволяет принимать типичные аннотации узлов уровня управления. Она собирает информацию сети, например, сведения об устройствах и соединениях, при помощи функциональности ядра eBPF (extended Berkeley Packet Filter), а затем использует платформу Grafana для отображения информации на визуальной карте.
Grafana спроектирована так, чтобы быть модульным и гибким инструментом, с лёгкостью интегрирующим и принимающим широкий диапазон источников данных и приложений.
Благодаря возможности настройки функций вы можете изменять способ отображения карты сети при помощи дэшборда Grafana. Кроме того, у вас есть широкий выбор из множества опций визуализации для отображения данных в понятном и полезном виде. Grafana критически важна и для демонстрации данных сетей, собранных Caretta, и для предоставления пользователям полной картины сети.
Чтобы использовать Caretta и Grafana в создании визуальной карты сети, их необходимо установить, внедрить и конфигурировать. Основной объект конфигурирования — это Caretta daemonset.
Для просмотра карты сети необходимо развернуть Caretta daemonset в выбранном кластере, который будет собирать метрики сети в базу данных, а также настроить источник данных Grafana так, чтобы указывал на базу данных Caretta.
Caretta — современный инструмент, интегрированный с расширенными функциями. Он использует версию ядра Linux от 4.16 и выше и helm chart для 64-битной системы.
Давайте разберёмся, как установить и сконфигурировать это сочетание инструментов.
При наличии заранее сконфигурированный 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 состоит из двух частей: 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 — помощь в понимании сетевой топологии, выявлении возможных узких мест или проблем и планировании и устранении сетевых проблем. Чтобы интерпретировать и использовать визуальную карту сети, нужно разобраться в компонентах карты и их значении.
Вот некоторые из типов информации, которые могут отображаться на карте:
Устройства: присутствующие на карте конечные точки сети, в том числе серверы, коммутаторы и роутеры.
Соединения: соединения между устройствами, например, сетевые кабели, беспроводные или виртуальные соединения; иногда тип соединения отображается на карте.
Данные: на карте отображаются показатели производительности, уведомления и информация о конфигурации.
Создание курируемой, информативной и масштабируемой карты сети — довольно сложная задача. Однако при наличии подходящего набора инструментов её вполне можно решить.
Мы уже увидели, чего можно добиться при использовании Caretta и Grafana. Теперь давайте посмотрим, что нужно учитывать при использовании карт сетей, отображающих метрики производительности кластеров Kubernetes.
Первое и самое главное: необходимо понять сетевую топологию кластера, в том числе физические и виртуальные сети, в которых выполняются ваши сервисы. Далее необходимо убедиться, что используемый вами сетевой плагин совместим с вашим приложением. Наконец, установите сетевые политики, чтобы обезопасить обмен данными между подами, контролировать входной и выходной трафик, выполнять мониторинг и устранять неполадки. Разберитесь, как выполняется обмен данными между подами и как устроена сеть подов.
Разбиение крупных систем на микросервисы, превращение систем в распределённые и управление ими — самый популярный подход для повышения производительности и аптайма. В этом лидерами рынка стали Kubernetes и Docker.
Несмотря на высокую производительность, проблемой крупномасштабных распределённых сетей является удобство наблюдения. Нам нужно учитывать все важные выбросы и аномалии, чтобы выполнять мониторинг и улучшать систему в целом с учётом оптимальной производительности. Новые технологии упрощают инновации и улучшения, однако вносят в систему неизвестные помехи. Необходим инструмент для наблюдений, способный отслеживать все операции в сети и презентовать их эффективным и информативным образом.
Grafana — лидирующий инструмент на рынке мониторинга. Соединив опенсорсный инструмент сетевой визуализации и мониторинга Caretta с Grafana, можно полностью раскрыть возможности своей инфраструктуры.