网络分析神器——kyanos

29次阅读
没有评论

共计 1446 个字符,预计需要花费 4 分钟才能阅读完成。

  • 网络分析神器——kyanos
  • 2025-06-23 12:05

1、简介

Kyanos 是一个基于 eBPF 技术的开源协议可观测工具,它无需修改应用代码即可在内核层捕获和分析常见协议(如 HTTP、Redis、PostgreSQL、DNS 等)的实时通信数据,并提供详细的延迟拆解、请求响应内容和性能指标统计功能。

其设计目标是帮助开发、运维和 SRE 工程师更清晰地了解系统中请求的真实流向、性能瓶颈以及潜在的异常行为。

项目地址:https://github.com/hengyoush/kyanos

2、特点

  • 零侵入部署: Kyanos 基于 eBPF 内核探针,无需修改业务应用或中间件配置,不影响业务性能。

  • 丰富的协议支持,当前已支持:

    • HTTP(含 path 提取)
    • Redis
    • PostgreSQL
    • DNS
    • HTTP2,未来计划支持更多协议(如 Kafka、MySQL 等)。
  • 精细的延迟分析: 可展示一次请求在不同节点(用户态、内核态、网络栈等)的耗时,辅助排查瓶颈是否出现在网卡、进程、Socket 等环节。

  • 强大的统计分析能力: 支持通过命令行按客户端 IP、服务端 IP、请求路径等维度聚合,获取最大耗时、平均延迟、请求 / 响应大小等指标。

  • 丰富的交互操作: 可通过方向键、Enter 键等在终端内浏览请求详情,查看原始请求内容(最多 1024 字节)和每一步耗时。

3、典型使用场景

  • 请求性能分析: 想了解“为什么服务响应慢”?用
    kyanos watch http
    可捕获延迟拆解信息,精准定位瓶颈(如网络慢、Socket 阻塞、应用处理耗时高等)。

  • 服务负载统计: 通过
    kyanos stat
    结合 -m

    -g

    参数,可实现对不同 IP、路径、协议的流量和响应情况统计,判断热点流量来源、流量分布和大请求 IP。

  • 排查慢请求: 通过
    kyanos stat --slow --time 5
    可获取最近 5 秒内最慢的请求,便于快速聚焦异常。

  • 安全审计与追踪: 实时捕获 Redis 或 PostgreSQL 协议内容,有助于监控敏感命令的使用(如 FLUSHALL、DROP TABLE 等)或识别潜在攻击行为。

4、安装

root@huqi-virtual-machine:/opt/kyanos# wget https://github.com/hengyoush/kyanos/releases/download/v1.5.0/kyanos_1.5.0_linux_amd64.tar.gz

5、使用示例

捕获 HTTP 流量

root@huqi-virtual-machine:~# kyanos watch http

捕获 Redis 流量

root@huqi-virtual-machine:~# kyanos watch redis

过去 5 秒最慢的请求

root@huqi-virtual-machine:~# kyanos stat --slow --time 5

6、高级用法

过滤特定 HTTP 路径

root@huqi-virtual-machine:~# kyanos watch http --path /api/v1/payment

过滤慢请求

root@huqi-virtual-machine:~# kyanos watch http --slow

按 IP 聚合响应耗时

root@huqi-virtual-machine:~# kyanos stat --metric total-time --group-by remote-ip

查询带宽 TOP5

root@huqi-virtual-machine:~# kyanos stat -m respsize -g client-ip

正文完
 0
root
版权声明:本站原创文章,由 root 于2025-06-26发表,共计1446字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码