Сеть является основой для распределенных приложений. Распределенное приложение имеет несколько микросервисов, каждый из которых работает в наборе Подов, часто расположенных на разных Нодах. Проблемные области в распределенном приложении могут быть на уровне сети (Flow, сетевые журналы), или на уровне недоступности ресурсов приложения (Метрики) или недоступности компонентов (трассировка).
На связанность на сетевом уровне могут влиять различные факторы, такие как настройки маршрутизации, пула IP-адресов, сетевые политики и т.д. Когда сервис А не может общаться с сервисом В по сети или внешнее приложение не может подключиться к сервису А, сетевые журналы становятся важным источником данных, необходимых для устранения неполадок, связанных с подключениями. Как и в традиционной сети, сетевые журналы позволяют администраторам кластеров мониторить сеть микросервисов Kubernetes.
Сетевые Журналы Имеют Несколько Сценариев Использования
Сетевые журналы могут использоваться для выполнения уникальных требований различных команд (DevOps, SecOps, Platform, Network). Ценность сетевых журналов Kubernetes заключается в собранной информации, такой как подробный контекст о конечной точке / endpoint (например, поды, метки, пространства имен) и сетевые политики, развернутые при настройке соединения. В ИТ-среде команды DevOps, SecOps, Network и Platform могут использовать сетевые журналы для своих сценариев использования, которые полезны в их домене знаний. Ниже мы покажем несколько примеров.
Генерирование Политик и Обнаружение Угроз с Помощью Журналов Потоков Данных в Calico Enterprise.
Calico Enterprise генерирует контекстные журналы сетевых потоков при каждом подключении к поду. Журнал сохраняется в файл на ноде, который затем обрабатывается агентом fluentd и отправляется в настроенное место назначения.
Как показано на приведенной выше диаграмме, журналы по умолчанию отправляются в движок Elasticsearch, который поставляется с Calico Enterprise. Вы можете настроить пересылку журналов потоков на вашу SOC платформу. Мы рекомендуем Вам иметь единую платформу для всех ваших журналов. Журналы — это важнейший инструмент мониторинга и анализа для команды эксплуатации, которая уже имеет четко определенные процессы, построенные на централизованной платформе журналирования. Это важно для вашего планирования.
Характеристики Журнала Потока Данных
Журналы потоков имеют много накладных расходов на хранение. По умолчанию, Calico Enterprise хранит только данные за последние семь дней. Это позволяет Calico Enterprise предоставлять функции, специально предназначенные для упрощения разработки политик и устранения неполадок подключения практически в режиме реального времени.
- Предлагаемые рекомендации для создания политик позволяют разработчикам автоматически генерировать сетевые политики для защиты своих сервисов
- Рабочий процесс для политик (рекомендации, предварительный просмотр, поэтапные политики) позволяет командам SecOps и DevOps эффективно создавать политики и развертывать их ненавязчивым образом
- Обнаружение угроз позволяет командам SecOps отследить каждый flow по определенному IP-адресу или домену и выявить угрозы
Стандартный журнал потока в Calico Enterprise содержит в себе всю необходимую контекстную информацию:
- Контекст Kubernetes (под, пространство имен, метки, политики)
- IP-адрес отправителя для внешних источников, если он доступен через ingress
- Start_time, end_time, action, bytes_in, bytes_out, dest_ip, dest_name, dest_name_aggr, dest_namespace, dest_port, dest_type, dest_labels, reporter, num_flows, num_flows_completed, num_flows_started, http_requests_allowed_in, http_requests_denied_in, packets_in, packets_out, proto, policies, source_ip, source_name, source_name_aggr, source_namespace, source_port, source_type, source_labels, original_source_ips, num_original_source_ips
Журнал DNS агрегируется для каждого пода с течением времени и содержит следующую информацию:
- Start_time, end_time, type, count, client_ip, client_name, client_name_aggr, client_namespace, client_labels, qname, qtype, qclass, rcode, rrsets, servers
Записи журналов доступны в Kibana в виде индексов Elasticsearch. Вы полностью контролируете параметры индексации, время хранения и хранилище. Сохранение настроек по умолчанию хорошо подходит для большинства развертываний.
Сократите операционные расходы за счет оптимизации хранилища журнала потоков
Calico Enterprise собирает различные журналы (network / flow, audit, DNS). Журналы потоков являются самыми дорогими с точки зрения хранения, занимая более 95% общего объема хранилища. Нередко на каждую полностью загруженную ноду приходится 5k flow в секунду При скромных 200 байтах на flow это превращается в 1 МБ/с (мегабайт). Суточная потребность в хранилище для каждой ноды составляет 86 ГБ для журналов потоков. Для кластера из 100 узлов ежедневное требование к журналу потоков становится 8 ТБ+!!! Очевидно, что это не масштабируется. И что еще более важно, действительно ли вам нужно хранить так много данных? Как правило, ценность данных, содержащихся в журналах, экспоненциально уменьшается с течением времени и имеет значение только для устранения неполадок и обеспечения соответствия требованиям.
По этой причине Calico Enterprise имеет по умолчанию агрегацию, которая снижает требования к хранению журнала потоков более чем в 100 раз! Мы делаем это без ущерба для данных (видимость, мониторинг, поиск и устранение неисправностей), которые получают наши клиенты из журналов потоков. Журналы агрегируются по порту назначения в течение определенного периода времени. Таким образом, вам не нужно беспокоиться о стоимости хранения журналов потоков при использовании настроек по умолчанию в Calico Enterprise. Еще один способ, которым Calico Enterprise может помочь вам снизить требования к объему хранилища, это исключение. Вы можете легко настроить определенные пространства имен или инсталляции, которые будут исключены из создания журналов потоков.
Заинтересованы в детальном изучении журналов потоков?
Журналы потоков включены по умолчанию. Обратитесь к следующей документации для детальной настройки: