2.5K Star!Kyanos:eBPF网络神器,让你告别抓包烦恼!

B站影视 2024-12-04 11:14 2

摘要:大家好,我是小墨。本期给大家分享一个超级实用的开源工具——Kyanos,它可以帮我们高效地分析网络问题,尤其是在微服务架构盛行的当下,网络请求错综复杂,定位问题变得越来越困难,Kyanos 就显得尤为重要了。 它可以捕获 HTTP、Redis、MySQL 等网

「小墨是前端」专注分享前端技术,推荐优秀的开源项目,展示Github、Gitee上的创意作品,带你深入前端底层,一起成长。

大家好,我是小墨。本期给大家分享一个超级实用的开源工具—— Kyanos,它可以帮我们高效地分析网络问题,尤其是在微服务架构盛行的当下,网络请求错综复杂,定位问题变得越来越困难,Kyanos 就显得尤为重要了。 它可以捕获 HTTP、Redis、MySQL 等网络请求,并进行深度分析,让你无需再经历繁琐的抓包、下载、分析过程,轻松定位网络瓶颈和异常! 近年来,eBPF 技术火热,Kyanos 正是基于 eBPF 技术构建,这也让它具备了强大的性能和灵活性。

Kyanos 是一个基于 eBPF 的网络问题分析工具, 它就像一个网络世界的 “显微镜”,可以帮你捕捉和分析各种网络请求,比如 HTTP、Redis、MySQL 等。 想象一下,线上服务突然变慢,到底是哪个环节出了问题?有了 Kyanos,你就可以轻松地捕获并分析相关的网络请求,快速定位到问题根源。 Kyanos 的设计理念是 “ 快、准、狠”, 它可以让你不用再经历繁琐的抓包、下载、分析过程,直接在命令行界面看到关键的网络指标和数据。

Kyanos 不仅仅能抓包,还能帮你分析数据、定位问题,它有以下几个突出的特点:

强大的流量过滤: 不像传统的抓包工具只能基于 IP/ 端口过滤,Kyanos 可以基于进程/容器 ID、L7 协议信息、请求/ 响应大小、延迟等多种维度进行过滤。 比如,你可以只关注某个特定容器的网络请求,或者只捕获延迟超过 1 秒的请求。 这款工具在过滤规则的灵活性和多样性方面具有独特的优势,大大提升了问题排查的效率。# 根据进程ID过滤./kyanos watch --pids 1234# 根据容器ID过滤./kyanos watch --container-id abc# 根据Redis Key过滤./kyanos watch redis --keys my-key1,my-key2# 根据响应大小过滤./kyanos watch --resp-size 10000高级分析能力: 传统的 tcpdump 只能提供细粒度的抓包数据,而 Kyanos 支持对抓包数据进行聚合分析, 让你能更快地看到关键指标。 举个例子,如果你的 HTTP 服务带宽突然被打满了, 你会怎么快速分析是哪个 IP 或者哪个请求导致的呢? 有了 Kyanos,你只需要一个命令: kyanos stat http --bigresp , 就能找出发送给远程 IP 的最大响应数据包,并查看具体的请求和响应指标。深入内核级别的延迟详情: 在实际场景中, 像 Redis 这样的远程服务慢查询问题往往很难精准诊断。 Kyanos 提供了从网卡接收请求/ 响应到内核 socket 缓冲区的内核跟踪点, 并以可视化方式展示这些细节。 这样你就能精确地知道 request 过程中,究竟是哪个环节耗时比较长。轻量级且无依赖: Kyanos 几乎没有任何依赖, 就是一个单一的二进制文件, 一个命令就能跑起来, 所有结果都直接在命令行里展示。自动SSL流量解密: Kyanos 会自动解密 SSL 流量, 让你可以直接看到明文的请求和响应内容。

Kyanos 的使用非常简单, 下载解压后, 直接运行二进制文件即可。

1、下载 Kyanos

你可以从 发布页面 下载与 x86_64 和 arm64 架构兼容的静态链接二进制文件:

tar xvf kyanos_vx.x.x_linux_x86.tar.gz

2、基本使用:

捕获所有 Kyanos 当前支持的协议:

./kyanos watch

每个请求- 响应记录都会以一行的形式显示在表格中, 每一列都捕获了该请求的基本信息。 你可以使用方向键或 j/k 上下移动来浏览记录:

第二部分提供 详细的请求和响应内容 ,分为请求和响应两部分,并截断超过 1024 字节的内容。

3、捕获特定协议流量:

比如,只捕获 HTTP 流量:

./kyanos watch http更精细的过滤:

你可以进一步缩小范围, 捕获特定 HTTP 路径的流量:

./kyanos watch http --path /abc

Kyanos 工作原理简析: Kyanos 基于 eBPF 技术,它允许在内核空间运行小程序,动态地跟踪和分析系统行为。 Kyanos 利用 eBPF 钩子,在网络请求的关键路径上插入探测点, 从而捕获网络数据包、延迟等信息, 并对这些信息进行处理和分析,最终以用户友好的方式呈现出来。

Kyanos 作为一款基于 eBPF 技术的网络问题分析工具,以其强大的流量过滤、高级分析能力、深入内核的延迟细节、轻量级无依赖以及自动 SSL 流量解密等特点,在网络问题排查领域展现出独特的优势。 它能帮助开发者快速定位网络瓶颈,提升故障排查效率, 尤其在微服务架构和复杂网络环境中, Kyanos 的价值更加凸显。

来源:小墨是前端

相关推荐