• Русский
  • Наблюдаемость сети

    О DeepFlow

    Что такое DeepFlow

    Проект с открытым исходным кодом DeepFlow направлен на обеспечение глубокой наблюдаемости сложных облачных и AI-приложений. DeepFlow реализует сбор данных без написания кода с помощью eBPF для метрик, распределённого трассирования, логов запросов и профилирования функций, а также интегрируется с SmartEncoding для достижения полной корреляции Full Stack и эффективного доступа ко всем данным наблюдаемости. С DeepFlow облачные и AI-приложения автоматически получают глубокую наблюдаемость, снимая с разработчиков тяжёлую нагрузку постоянного инструментирования кода и предоставляя возможности мониторинга и диагностики, охватывающие всё от кода до инфраструктуры для команд DevOps/SRE.

    Использование технологии eBPF

    Предполагая, что у вас есть базовое понимание eBPF, это безопасная и эффективная технология расширения функциональности ядра путём запуска программ в песочнице, что является революционным новшеством по сравнению с традиционными методами изменения исходного кода ядра и написания модулей ядра. Программы eBPF являются событийно-ориентированными, и когда ядро или пользовательские программы проходят через eBPF Hook, выполняется соответствующая программа eBPF, загруженная в точку Hook. Ядро Linux заранее определяет ряд часто используемых точек Hook, а также можно динамически добавлять пользовательские точки Hook в ядро и приложения с помощью технологий kprobe и uprobe. Благодаря технологии Just-in-Time (JIT) эффективность выполнения кода eBPF может быть сопоставима с нативным кодом ядра и модулями ядра. Благодаря механизму Verification код eBPF выполняется безопасно, не вызывая сбоев ядра или бесконечных циклов.

    Архитектура программного обеспечения

    DeepFlow состоит из двух компонентов: Agent и Server. Агент запускается на каждом узле K8s, устаревшем хосте и облачном хосте, и отвечает за сбор данных AutoMetrics и AutoTracing всех процессов приложений на хосте. Server запускается в кластере K8s и предоставляет управление агентами, внедрение тегов, приём и запрос данных.

    Установка DeepFlow

    Введение

    Требования к ядру

    Возможности eBPF (AutoTracing, AutoProfiling) в DeepFlow имеют следующие требования к версии ядра:

    АрхитектураДистрибутивВерсия ядраkprobeGolang uprobeOpenSSL uprobeperf
    X86CentOS 7.93.10.0

    1

    YY

    2

    Y

    2

    Y
    RedHat 7.63.10.0

    1

    YY

    2

    Y

    2

    Y
    *4.9-4.13Y
    4.14

    3

    YY

    2

    Y
    4.15YY

    2

    Y
    4.16YYY
    4.17+YYYY
    ARMCentOS 84.18YYYY
    EulerOS5.10+YYYY
    KylinOS V10 SP24.19.90-25.24+YYYY
    KylinOS V10 SP34.19.90-52.24+YYYY
    Другие дистрибутивы5.8+YYYY

    Дополнительные примечания по версиям ядра:

    1. В CentOS 7.9 и RedHat 7.6 некоторые возможности eBPF (opens new window) были обратно портированы в ядро 3.10. В этих двух дистрибутивах поддерживаемые DeepFlow версии ядра (зависимые точки hook) следующие:
      • 3.10.0-957.el7.x86_64
      • 3.10.0-1062.el7.x86_64
      • 3.10.0-1127.el7.x86_64
      • 3.10.0-1160.el7.x86_64
    2. Процессы Golang/OpenSSL внутри контейнеров не поддерживаются.
    3. В версии ядра 4.14 к одному tracepoint нельзя прикрепить несколько программ eBPF (например, два или более deepflow-agent не могут работать одновременно), в других версиях этой проблемы нет.
    ПРИМЕЧАНИЕ

    Заявление RedHat:

    eBPF в Red Hat Enterprise Linux 7.6 предоставляется как Tech Preview и поэтому не имеет полной поддержки и не подходит для использования в продуктивной среде. Он предоставляется с основной целью расширения охвата и потенциального перехода к полной поддержке в будущем. eBPF в Red Hat Enterprise Linux 7.6 включён только для целей трассировки, что позволяет прикреплять программы eBPF к пробам, tracepoint и perf-событиям.

    Топология развертывания

    Подготовка

    Storage Class

    MySQL и ClickHouse в DeepFlow требуют выделенного хранилища Persistent Volume, созданного с помощью Storage Class.

    Для получения дополнительной информации о конфигурации хранилища обратитесь к документации по Storage.

    Пакет

    Загрузка пакета DeepFlow

    Посетите Customer Portal для загрузки пакета DeepFlow.

    Если у вас нет доступа к Customer Portal, обратитесь в техническую поддержку.

    Загрузка пакета на платформу

    Используйте инструмент violet для публикации пакета на платформе.

    Подробные инструкции по использованию этого инструмента см. в разделе CLI.

    Установка

    1. Перейдите в Administrator > Marketplace > Cluster Plugins.

    2. Найдите в списке плагинов "Alauda Container Platform Observability with DeepFlow".

    3. Нажмите Install, чтобы открыть страницу конфигурации установки.

    4. Заполните параметры конфигурации по необходимости. Подробное описание каждого параметра приведено в таблице ниже.

    5. Дождитесь, пока состояние плагина не станет Installed.

    Таблица: Параметры конфигурации

    ПараметрНеобязательноОписание
    ReplicasНетКоличество реплик для сервера ClickHouse и сервера DeepFlow. Рекомендуется устанавливать нечётное число, не меньше 3, для обеспечения высокой доступности.
    Storage ClassДаStorage Class, используемый для создания Persistent Volumes для MySQL и ClickHouse. Если не указан, будет использован Storage Class по умолчанию.
    MySQL Storage SizeНетРазмер постоянного тома для MySQL.
    ClickHouse Storage SizeНетРазмер хранилища для ClickHouse.
    ClickHouse Data Storage SizeНетРазмер хранилища для данных ClickHouse.
    UsernameНетИмя пользователя для веб-консоли Grafana.
    PasswordНетПароль для веб-консоли Grafana. Настоятельно рекомендуется изменить этот пароль после первого входа.
    Confirm PasswordНетПодтверждение пароля для веб-консоли Grafana.
    Ingress Class NameДаИмя Ingress Class, используемое для создания Ingress для веб-консоли Grafana. Если не указано, будет использован Ingress Class по умолчанию.
    Ingress PathНетПуть Ingress для веб-консоли Grafana.
    Ingress TLS Secret NameДаИмя TLS-секрета, используемого Ingress для веб-консоли Grafana.
    Ingress HostsДаСписок хостов, используемых Ingress для веб-консоли Grafana.
    Agent Group ConfigurationНетКонфигурация группы агентов DeepFlow по умолчанию.

    Доступ к веб-интерфейсу Grafana

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

    ВНИМАНИЕ

    Настоятельно рекомендуется изменить пароль после первого входа.

    Дополнительные ресурсы