Наблюдаемость сети
Содержание
О DeepFlowЧто такое DeepFlowИспользование технологии eBPFАрхитектура программного обеспеченияУстановка DeepFlowВведениеТребования к ядруТопология развертыванияПодготовкаStorage ClassПакетУстановкаДоступ к веб-интерфейсу GrafanaДополнительные ресурсыО 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 имеют следующие требования к версии ядра:
Дополнительные примечания по версиям ядра:
- В 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
- Процессы Golang/OpenSSL внутри контейнеров не поддерживаются.
- В версии ядра 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.
Установка
-
Перейдите в Administrator > Marketplace > Cluster Plugins.
-
Найдите в списке плагинов "Alauda Container Platform Observability with DeepFlow".
-
Нажмите Install, чтобы открыть страницу конфигурации установки.
-
Заполните параметры конфигурации по необходимости. Подробное описание каждого параметра приведено в таблице ниже.
-
Дождитесь, пока состояние плагина не станет Installed.
Таблица: Параметры конфигурации
Доступ к веб-интерфейсу Grafana
Вы можете получить доступ к веб-интерфейсу Grafana через хосты и путь обслуживания, указанные в конфигурации Ingress, и войти, используя имя пользователя и пароль.
Настоятельно рекомендуется изменить пароль после первого входа.