Hubble 基础

Hubble 概述

Hubble 是一个完全分布式网络和安全可观测平台。它构建在 Cilium 和 eBPF 之上,能够以完全透明的方式深入了解服务的通信和行为以及网络基础设施。
通过构建在 Cilium 之上,Hubble 可以利用 eBPF 来提高可观测性。通过依赖 eBPF,所有可观测性都是可编程的,并允许采用动态方法,最大限度地减少开销,同时根据用户的要求提供深入而详细的可观测性。Hubble 的创建和专门设计就是为了充分利用这些新的 eBPF 能力。
默认情况下,Hubble API 在 Cilium agent 运行的单个节点的范围内运行。这将网络洞察限制为本地 Cilium agent 观察到的流量。Hubble CLI ( hubble) 可用于查询通过本地 Unix 域套接字提供的 Hubble API。Hubble CLI 二进制文件默认安装在 Cilium 代理 Pod 上。
部署 Hubble Relay 后,可以为整个集群甚至 ClusterMesh 场景中的多个集群提供网络可见性。在此模式下,可以通过将 Hubble CLI (hubble) 定向到 Hubble Relay 服务或通过 Hubble UI 来访问 Hubble 数据。Hubble UI 是一个 Web 界面,可以自动发现 L3/L4 甚至 L7 层的服务依赖图,从而允许用户友好地可视化和过滤数据流作为服务图。
它还与 Prometheus 和 Grafana 等流行的监控工具集成,以实现高级指标收集和可视化。

Hubble 功能

服务依赖关系和通信图

1. 哪些服务正在相互通信?多久一次?服务依赖图是什么样的?
2. 正在进行哪些 HTTP 调用?服务从哪些 Kafka 主题消费或生成哪些主题?

网络监控与警报

1. 是否有网络通讯失败?为什么通信失败?是DNS问题?是应用程序问题还是网络问题?第 4 层 (TCP) 或第 7 层 (HTTP) 上的通信是否中断?
2. 哪些服务在过去 5 分钟内遇到了 DNS 解析问题?哪些服务最近经历过 TCP 连接中断或连接超时?未答复的 TCP SYN 请求的比率是多少?

应用监控

1. 特定服务或所有集群的 5xx 或 4xx HTTP 响应代码的比率是多少?
2. 集群中 HTTP 请求和响应之间的 95% 和 99% 延迟是多少?哪些服务表现最差?两个服务之间的延迟是多少?

安全可观察性

哪些服务的连接因网络策略而被阻止?从集群外部访问了哪些服务?哪些服务解析了特定的 DNS 名称?

Hubble 组件架构图

Hubble 工作逻辑

Hubble 建立在 Cilium 和 eBPF 之上,分为三个独特的部分,概述如下:

Hubble UI

Hubble UI 是一个基于 Web 的界面,可让您探索和可视化收集的数据。它提供交互式拓扑视图、网络策略实施信息和流详细信息,以实现实时洞察。

Hubble Metrics

Hubble 公开了大量的指标,包括数据包丢失、延迟和策略执行。这些指标可以由 Prometheus 使用,并使用 Grafana 进行可视化,可以轻松跟踪集群的运行状况和性能。

Hubble Alerts

当满足特定事件或条件(例如过多的数据包丢失或违反策略)时,Hubble 警报会提供实时通知。这些警报可以与您首选的监控和警报系统(例如 Slack 或 PagerDuty)集成,以确保您随时了解情况并能够快速响应潜在问题。

Hubble 和 grafana 集成

参考文档

https://docs.cilium.io/en/latest/overview/intro/#what-is-hubble

posted @ 2023-12-27 17:49  小吉猫  阅读(106)  评论(0编辑  收藏  举报