版本: v1.0 修改日期: 2026-05-29 本文规范 Telegraf 进程网络流量抓包的标准操作流程,确保抓包过程可控、结果可追溯。适用于对 Telegraf 进程或容器的上下行流量进行排障、审计与离线分析的场景。
1 概述
1.1 适用场景
- 检查 Telegraf 进程的运行情况
- 抓取与 Telegraf 容器或进程相关的网络流量
- 保存抓包文件,便于后续离线分析
2 确认 Telegraf 进程
查找 Telegraf 主进程 PID,后续抓包命令都依赖该 PID。
ps -ef | grep telegraf
# | | └── 过滤含 telegraf 的进程行
# | └── 管道:将 ps 输出传给 grep
# └── 显示所有进程的完整格式- 从输出中记录 Telegraf 主进程的 PID(例如
3361279) - 若 Telegraf 运行在容器中,需定位该容器内 Telegraf 对应的宿主机进程 PID
- 若存在多个 Telegraf 进程,根据启动参数或配置文件路径区分目标进程
3 进入网络命名空间抓包
3.1 确认网络接口(可选)
进入目标进程所在的网络命名空间查看网络接口,确认待抓包的网卡名称(常见如 eth0、ens33):
nsenter -t <PID> -n ip addr3.2 执行抓包命令
nsenter -t 3361279 -n tcpdump -vvv -XX host 10.250.0.155 -nn -w /tmp/202605131033.pcap
# | | | | | | | |
# | | | | | | | └── 写入 pcap 文件
# | | | | | | └── 不解析主机名与端口名
# | | | | | └── 过滤条件:仅抓取与 10.250.0.155 相关的流量
# | | | | └── 十六进制 + ASCII 显示包内容
# | | | └── 最详细终端输出
# | | └── tcpdump 抓包工具
# | └── 进入目标进程的网络命名空间
# └── 指定目标进程 PID参数说明:
| 参数 | 含义 |
|---|---|
-t <PID> | nsenter 参数,指定目标进程 PID |
-n | nsenter 参数,进入目标进程的网络命名空间 |
host <IP> | 过滤条件,仅抓取与该 IP 相关的流量 |
-nn | 不解析主机名与端口名,加速抓包 |
-w <文件> | 将抓包结果写入 pcap 文件 |
💡
-vvv、-XX用于控制终端输出的参数在-w写入 pcap 场景下无实际意义,建议仅在实时查看流量时使用。
4 结束抓包
| 方式 | 操作 | 适用场景 |
|---|---|---|
| 手动终止 | 在终端按 Ctrl+C | 抓包时长不确定、需人工判断 |
| 自动终止 | 追加 -c <数量> 参数 | 需限定抓包数量,到量即停 |
自动终止示例(抓够 1000 个包后自动退出):
nsenter -t 3361279 -n tcpdump -vvv -XX host 10.250.0.155 -nn -c 1000 -w /tmp/202605131033.pcap5 Wireshark 图形化分析
- 将 pcap 文件下载至本地
- 使用 Wireshark 打开,进行协议解析、流追踪等深入分析
6 完整流程速查
nsenter -t <PID> -n tcpdump -vvv -XX host <目标IP> -nn -w /tmp/telegraf_$(date +%Y%m%d%H%M).pcap| 占位符 | 替换为 |
|---|---|
<PID> | 第2章查到的 Telegraf 主进程 PID |
<目标IP> | 需过滤的对端 IP 地址 |
Last updated on