【Azure Container App】Debug Console的调试工具试验(一)-- iputils / net-tools / procps

在文章“【Azure Container App】Debug Console的调试工具指南”中,介绍了12种Azure Contianer App Debug Console模式下预装的调试工具。

image

接下来,将分为多次一一试验这些工具。 本文从试验  iputils / net-tools / procps  这三种工具包开始 。

1. iputils - 网络连通性测试工具

iputils 是 Linux 系统中用于测试网络连通性的基础工具包,在网络故障排查中扮演着不可或缺的角色。

该工具包主要提供 pingarping 和 tracepath 三个核心命令,分别用于测试 ICMP 层连通性、ARP 层连通性和网络路径追踪。

在容器环境中,网络问题是最常见的故障类型之一。

  • 当你的应用无法访问外部服务时,第一步通常是使用 ping 命令验证基本的网络连通性。
  • ping 通过发送 ICMP Echo Request 数据包并等待 Echo Reply 响应,可以快速判断目标主机是否可达以及网络延迟情况。

需要特别注意的是,iputils 包不包含 ip 命令。很多工程师容易混淆这一点,因为包名中包含 "ip" 字样。实际上,ip addrip route 等命令来自 iproute2 包,需要单独安装。

如果你需要使用这些命令,可以通过 tdnf install -y iproute 进行安装。

作为替代方案,Debug Console 预装的 net-tools 包提供了功能相似的传统命令:ifconfig 对应 ip addrroute -n 对应 ip route

试验指令:

# 测试主机连通性
ping -c 4 portal.azure.cn

# 持续 ping 并限制次数
ping -c 10 -i 0.5 target-host

# ARP 层测试(同网段)
arping -c 3 10.0.0.1

# 追踪网络路径
tracepath portal.azure.cn

# 使用 IPv6 ping
ping6 -c 4 ipv6.example.com

效果截图:

image

image

如果需要使用ip指令,请先安装 iproute 包:

# 安装 iproute2 包
tdnf install -y iproute

# 然后即可使用
ip addr show
ip route show
ip neigh show

image

 

2. net-tools - 经典网络工具集

net-tools 是 Linux 系统中历史最悠久的网络工具包之一,包含了 netstatifconfigroutearp 等经典命令。

虽然这些工具在技术上已被 iproute2 套件取代,但由于其简洁直观的输出格式和广泛的使用基础,至今仍是许多系统管理员的首选工具。

在容器故障排查中,netstat 是使用频率最高的命令之一。

 

它能够显示网络连接状态、路由表、接口统计等关键信息。

 

 

通过 netstat -tlnp 可以快速查看容器内所有监听的 TCP 端口,这对于验证应用是否正确启动并监听预期端口至关重要。

netstat -ant 则显示所有 TCP 连接的状态,帮助你分析连接数量和状态分布。

ifconfig 命令用于查看和配置网络接口,在 Debug Console 中主要用于查看容器的 IP 地址、子网掩码、MAC 地址等网络配置信息。当你需要确认容器是否获得了正确的 IP 地址,或者检查网络接口是否正常工作时,ifconfig 是最直接的工具。

route 命令用于查看和管理路由表。在容器环境中,路由配置决定了流量如何被转发。通过 route -n(-n 参数避免 DNS 解析,加快输出速度)可以查看默认网关和路由规则,这对于排查"容器能访问同网段但无法访问外部网络"等问题非常有帮助。

 

试验指令:

# 查看所有监听的端口
netstat -tlnp

# 查看所有 TCP 连接状态
netstat -ant

# 查看网络接口信息
ifconfig

# 统计各状态的连接数
netstat -ant | awk '{print $6}' | sort | uniq -c

# 查看路由表
route -n

效果截图:

image

image

image

3. procps - 进程监控专家

procps 是一组用于监控系统进程和资源使用情况的核心工具包,包含了 pstopfreevmstatpgreppkill 等经典命令。

这些工具通过读取 /proc 文件系统获取内核提供的进程和系统信息,是性能调优和故障排查的必备工具。

ps 命令用于显示当前进程的快照。

在容器环境中,ps auxf 是最常用的组合:

  • a 显示所有用户的进程,
  • u 显示详细信息(用户、CPU、内存等),
  • x 包括没有控制终端的进程,
  • f 以树状格式显示进程关系。

通过这个命令可以快速了解容器内运行了哪些进程,以及它们之间的父子关系。

top 命令提供实时的进程监控视图,是排查 CPU 和内存问题的首选工具。

它会持续刷新显示系统负载、CPU 使用率、内存使用情况以及各进程的资源消耗。

在 Debug Console 中,可以使用 top 然后按 P 键按 CPU 排序,或按 M 键按内存排序,快速定位资源消耗最大的进程。

free 命令显示系统内存使用情况,包括物理内存、交换空间、缓冲区和缓存的使用量。

free -h 以人类可读的格式(KB、MB、GB)显示结果,便于快速判断内存是否紧张。

在容器环境中,了解内存使用情况对于设置合理的资源限制至关重要。

vmstat 命令提供虚拟内存、进程、CPU 活动的统计信息。

通过 vmstat 1 5(每秒采样一次,共 5 次)可以观察系统资源使用的变化趋势,这对于判断是突发性负载还是持续性问题非常有帮助。

试验指令:

# 查看所有进程(树状显示)
ps auxf

# 查看内存使用情况
free -h

# 查看虚拟内存统计
vmstat 1 5

# 查看特定进程的详细信息
ps -p <PID> -o pid,ppid,%cpu,%mem,cmd

# 按内存使用排序的进程列表
ps aux --sort=-%mem | head -20

效果截图:

image

 

 

<第一部分完,请持续关注第二,第三部分,谢谢>

 

 

 

参考资料

Connect to a container debug console in Azure Container Apps :  https://learn.microsoft.com/en-us/azure/container-apps/container-debug-console?tabs=bash#built-in-tools-in-the-debug-console

 

posted @ 2026-03-05 19:55  编码者卢布  阅读(0)  评论(0)    收藏  举报