分享微软刚开源的Retina:云原生网络可观察性平台

Retina 是一个开源的 Kubernetes 网络可观察性平台,旨在为应用健康、网络健康和安全提供集中化的监控中心。它支持多云环境,能够收集可定制的遥测数据,并将其导出到多种存储选项中(如 Prometheus、Azure Monitor 等),同时支持多种可视化工具(如 Grafana、Azure Log Analytics 等)。

基础知识点

  1. eBPF技术:Retina 利用 eBPF(extended Berkeley Packet Filter)技术来实现网络可观察性。这是一种高效的数据包捕获和分析方法,能够在不影响系统性能的情况下提供详细的网络流量信息。

  2. 可定制遥测:Retina 允许用户根据需要定制遥测数据的收集和导出。这意味着用户可以选择哪些指标需要监控,并将这些数据发送到不同的存储系统中。

  3. 云环境支持:Retina 支持多种云环境和操作系统(如 Linux、Windows、Azure Linux),使其在不同部署场景中都能有效工作。

主要功能

  • 指标监控:Retina 提供可行的、符合行业标准的 Prometheus 指标,帮助用户实时监控网络和应用的健康状况。
  • 数据包捕获:通过流线化的数据包捕获功能,用户可以深入分析网络流量,诊断问题。

安装和使用

1. 使用 Helm 安装 Retina

首先,获取最新的 Retina 版本:

bash 复制代码
VERSION=$(curl -sL https://api.github.com/repos/microsoft/retina/releases/latest | jq -r .name)

然后,使用 Helm 安装 Retina:

bash 复制代码
helm upgrade --install retina oci://ghcr.io/microsoft/retina/charts/retina \
    --version $VERSION \
    --set image.tag=$VERSION \
    --set operator.tag=$VERSION \
    --set logLevel=info \
    --set enabledPlugin_linux="[dropreason,packetforward,linuxutil,dns]"

2. 安装 Retina CLI

使用 Krew 安装 Retina CLI:

bash 复制代码
kubectl krew install retina

验证安装:

bash 复制代码
kubectl retina

3. 创建数据包捕获

使用 CLI 创建数据包捕获:

bash 复制代码
kubectl retina capture create --pod-selectors app=my-app

示例代码

Prometheus 配置示例

在安装完 Retina 后,需要配置 Prometheus 来收集指标。以下是一个基本的 Prometheus 配置示例:

yml 复制代码
# prometheus.yml
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'retina'
    static_configs:
      - targets: ['retina-prometheus:9090']

Grafana 可视化

在 Grafana 中创建一个仪表盘来可视化这些指标。首先,添加一个 Prometheus 数据源,然后创建一个新面板,选择需要展示的指标。

为什么选择 Retina?

Retina 提供了灵活的网络可观察性解决方案,允许用户按需调查网络问题,并持续监控集群。它支持多种云环境和操作系统,使其适用于广泛的部署场景。

相关推荐
weixin_545019324 分钟前
Spring Boot 项目开启 HTTPS 完整指南:从原理到实践
spring boot·后端·https
拉不动的猪28 分钟前
闭包实际项目中应用场景有哪些举例
前端·javascript·面试
掘金一周43 分钟前
第一台 Andriod XR 设备发布,Jetpack Compose XR 有什么不同?对原生开发有何影响? | 掘金一周 10.30
前端·人工智能·后端
张乔2443 分钟前
spring boot项目快速整合xxl-job实现定时任务
spring boot·后端·xxl-job
程序定小飞1 小时前
基于springboot的论坛网站设计与实现
java·开发语言·spring boot·后端·spring
PFinal社区_南丞1 小时前
测试驱动开发(TDD):以测试为引擎的软件工程实践
后端
Fox爱分享1 小时前
腾讯面试:都知道0.1+0.2≠0.3,为啥 0.1+0.1 却等于 0.2?
面试
初学者,亦行者1 小时前
Rust 模式匹配的穷尽性检查:从编译器证明到工程演进
后端·rust·django
IT_陈寒1 小时前
React性能翻倍!3个90%开发者不知道的Hooks优化技巧 🚀
前端·人工智能·后端
逛逛GitHub1 小时前
推荐 11 个本周 yyds 的 GitHub 开源项目。
github