《云原生网络数据面可观测性最佳实践》——三、容器网络常见观测工具及特点——1.常见网络排查工具

简介: 《云原生网络数据面可观测性最佳实践》——三、容器网络常见观测工具及特点——1.常见网络排查工具

1) 主动探测类工具

iCMP协议探测工具ping

ping工具是基于icmp协议的网络探测工具,通过发送icmp报文来检测网络的连通性与延迟,通常我们都会使用ping来判断网络是否联通,除此以外还有一些其他的用途:

#  通过指定包的大小来测试网络拥塞程度
▶ ping -s 1000 alibaba-inc.com
# 通过发送指定数量的包来测试网络的延迟程度
▶ ping -c 20 10.1.63.253

 在排查网络问题时,ping的主要作用有两个:

最常用功能,使用ping验证端到端网络层连通性

在排查偶发延迟问题时,使用ping验证延迟是否发生在网络层以下

 

支持多协议的应用层探测工具cURL

curl工具是一个支持许多应用层协议的客户端工具,功能非常多,在网络问题排查中,通常使用curl来判断应用层是否正常工作,在使用curl时,他的常见用法如下:

# 下载远程服务器渲染后的html文件到本地
curl -o thatpage.html http://www.example.com/
# 访问ipv6的远程服务端
curl http://[2001:1890:1112:1::20]/overview.html
#  指定访问的域名的方式访问远程服务器
curl -H "Host:" www.server.com

 curl在问题排查过程中主要的作用是用于定界问题的边界,通常如果curl可以正常访问,说明用户的问题不涉及网络,主要是用户应用程序的问题。

 

TCP连接探测工具telnet

telnet是一个基于tcp的用于调试的协议,同时提供了telnet客户端,在排查问题的过程中,通常用于谭政tcp连接是否可靠,是否会中断,他的常见用法如下:

# 访问一个tcp远端,端口为80,不会输入任何信息
telnet www.example.com 80

telnet的curl具有很多相同的作用,包括确认tcp连接的正常等等,但是telnet在问题排查中也具有一些独特的用法,主要原因是telnet仅仅建立tcp连接,并不会和curl一样发送应用层的报文,因此可以用作:

验证tcp连接超时或者应用层超时设置是否正常生效

模拟长时间不发包场景,验证连接是否会中断

 

2) 当前状态捕获类

网络状态分析工具netstat

netstat工具是net-tools工具集提供的查看网络相关的状态信息的工具,他的数据来源主要是procfs虚拟文件系统,通过解析和聚合网络相关的信息来查看网络状态。

通过以下几个常用的命令可以很快掌握netstat的用法:

# 查看当前netns下的tcp/udp的本地信息,不显示域名
❯ netstat -tulpn
# 查看当前netns下的snmp统计信息
❯ netstat -s

套接字状态分析工具ss

ss是iproute2工具集提供的查看套接字信息的工具,很大程度上可以取代netstat工具,ss通过netlink机制从内核中获取套接字的当前状态,因此可以获得比netstat更加详实的信息,包括keepalive定时器的剩余时间,tcp套接字的拥塞控制状态以及窗口选择算法等。

 

通过以下几个常用的命令可以很快掌握ss的用法:

# 获取当前所有存活的tco套接字,其中p参数会额外获取到套接字所属的进程和用户
ss -natp
# 查看不同类型的套接字的统计信息
ss -s
# 查看不同
ss -mt
# 查看所有存货的套接字信息,并且将keepalive定时器信息输出
ss -o

相比于netstat,ss命令是比较全面的提升,主要体现在使用了netlink协议之后在对系统的负载压力方面的减轻以及信息的增多,在排查工作中尽量使用ss命令,尤其是在涉及到tcp keepalive相关的问题的排查中,能够更好的获取到有价值的信息。

句柄占用查找工具lsof

lsof命令用于查找套接字监听相关的进程,通常我们也可以依赖ss命令获取到想用的信息,不过lsof命令的适用范围要远比我们常用的广泛,通过以下几个命令可以比较快的掌握lsof的使用方法:

# 查看当前netns下,tcp的22端口绑定的进程
lsof -i TCP:22
# 查看当前存在的网络连接信息,这里不会显示具体的地址端口信息,但是会有句柄相关的信息
lsof -i

 通过lsof,我们可以在排查问题时比较快的找出产生网络干扰的进程。

 

网络配置查看工具ip

ip命令是iproute2工具集提供的网络配置工具,和ss命令类似的是,ip命令主要依靠netlink协议与底层Linux内核进行通信,ip命令能够很快的获取网络当前的配置,常见的使用方法如下:

# 查看相同netns下的eth0网卡的信息
ip a show dev eth0
# 查找/var/run/netns路径下的具名netns文件并打印,对于containerd,可以查找到所有pod的netns,对于docker,由于其netns具名文件路径在/var/run/docker/netns,因此无法获取到
ip netns ls
# 将某个pod中的路由信息输出
❯ ip netns exec cni-d7108c65-eb71-3294-2b10-e1517eec0a32 ip r
default via 10.0.0.23 dev eth0 mtu 1450
10.0.0.23 dev eth0 scope link
# 查看某个pod中网络层出方向的路由是否可达
❯ ip netns exec cni-d7108c65-eb71-3294-2b10-e1517eec0a32 ip r get 10.1.17.192
10.1.17.192 via 10.0.0.23 dev eth0 src 10.0.0.18 uid 0
cache mtu 1450
# 切换netns到指定的pod中,与nsenter功能类似
ip netns exec cni-d7108c65-eb71-3294-2b10-e1517eec0a32 bash
# 查看相同netns下的arp表及邻居节点的可达状态
ip neigh

 ip命令能够让我们在排查问题时较快的掌握排查的网元的状态信息,尤其是在容器场景,ip命令对netns的适配能够让我们快速在多个pod之间进行切换,提升排查的效率。

实时流量观察工具sar

sar工具是一个sysstat工具集提供的功能强大的性能分析工具,能够对网络流量进行实时的监控和分析,与iftop等工具相比,sar覆盖的范围更广泛,他的主要使用方法如下:

# 观察网卡设备的流量,每隔1s进行采样,一共采样5次
sar -n DEV 1 5
# 查看块设备的io情况,每隔1s采样,持续3次,输出到文件中,这个保存是二进制的
sar -b 1 3 -o blockio.log
# 将上面保存的块设备速率文件转换成可读的方式输出到csv文件中
sadf -d blockio.log | sed 's/;/,/g' > blockio.csv
# 查看cpu调度队列的情况,用法与其他场景类似
sar -q 1 3
相关文章
|
1月前
|
Kubernetes 监控 开发者
掌握容器化:Docker与Kubernetes的最佳实践
【10月更文挑战第26天】本文深入探讨了Docker和Kubernetes的最佳实践,涵盖Dockerfile优化、数据卷管理、网络配置、Pod设计、服务发现与负载均衡、声明式更新等内容。同时介绍了容器化现有应用、自动化部署、监控与日志等开发技巧,以及Docker Compose和Helm等实用工具。旨在帮助开发者提高开发效率和系统稳定性,构建现代、高效、可扩展的应用。
|
4月前
|
Cloud Native 安全 网络安全
云计算与网络安全:技术融合与挑战云原生技术在现代软件开发中的应用
【8月更文挑战第28天】在数字时代的浪潮中,云计算和网络安全成为信息技术领域的两大支柱。本文将探讨云计算服务的分类、特点及其面临的安全威胁,分析网络安全的基本概念、重要性以及信息安全的关键要素。同时,文章将深入讨论云计算环境下的网络安全问题,包括数据保护、访问控制和合规性挑战,并提出相应的解决策略和技术措施。最后,通过一个代码示例,展示如何在云计算环境中实现基本的数据加密,以增强信息的安全性。 【8月更文挑战第28天】 随着云计算技术的飞速发展,云原生技术已成为推动软件行业创新的关键力量。本文将深入探讨云原生的核心概念、优势以及如何在现代软件开发中有效利用云原生技术。我们将通过具体案例,展示
|
3月前
|
数据采集 存储 监控
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
本文探讨了如何利用 PHP 的 `set_time_limit()` 与爬虫工具的 `setTrafficLimit()` 方法,结合多线程和代理 IP 技术,高效稳定地抓取百度云盘的公开资源。通过设置脚本执行时间和流量限制,使用多线程提高抓取效率,并通过代理 IP 防止 IP 封禁,确保长时间稳定运行。文章还提供了示例代码,展示了如何具体实现这一过程,并加入了数据分类统计功能以监控抓取效果。
70 16
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
|
2月前
|
缓存 监控 测试技术
掌握容器化持续集成/持续部署(CI/CD)的最佳实践
【10月更文挑战第8天】本文介绍了容器化持续集成/持续部署(CI/CD)的最佳实践,涵盖容器化CI/CD的概念、优势和实施步骤。通过使用容器技术,可以实现环境一致性、快速迭代和易于扩展,提高软件开发的效率和可靠性。文章还详细讨论了编写高效的Dockerfile、自动化测试、安全性、监控和日志管理等方面的最佳实践。
|
2月前
|
安全 物联网 物联网安全
探索未来网络:物联网安全的最佳实践
随着物联网设备的普及,我们的世界变得越来越互联。然而,这也带来了新的安全挑战。本文将探讨在设计、实施和维护物联网系统时,如何遵循一些最佳实践来确保其安全性。通过深入分析各种案例和策略,我们将揭示如何保护物联网设备免受潜在威胁,同时保持其高效运行。
54 5
|
3月前
|
机器学习/深度学习 安全 物联网安全
探索未来网络:物联网安全的最佳实践与创新策略
本文旨在深入探讨物联网(IoT)的安全性问题,分析其面临的主要威胁与挑战,并提出一系列创新性的解决策略。通过技术解析、案例研究与前瞻展望,本文不仅揭示了物联网安全的复杂性,还展示了如何通过综合手段提升设备、数据及网络的安全性。我们强调了跨学科合作的重要性,以及在快速发展的技术环境中保持敏捷与适应性的必要性,为业界和研究者提供了宝贵的参考与启示。
|
4月前
|
消息中间件 运维 监控
|
4月前
|
SQL 安全 API
数字堡垒之下:网络安全漏洞、加密技术与安全意识的博弈探索RESTful API设计的最佳实践
【8月更文挑战第27天】在数字化浪潮中,网络安全成为守护个人隐私与企业资产的关键防线。本文深入探讨了网络漏洞的成因与影响,分析了加密技术如何为数据保驾护航,并强调了提升公众的安全意识对于构建坚固的信息防御系统的重要性。文章旨在为读者提供一场思维的盛宴,启发更多关于如何在日益复杂的网络世界中保护自己的思考。
|
4月前
|
安全 网络安全 数据安全/隐私保护
云原生技术探索:容器化与微服务架构的实践之路网络安全与信息安全:保护数据的关键策略
【8月更文挑战第28天】本文将深入探讨云原生技术的核心概念,包括容器化和微服务架构。我们将通过实际案例和代码示例,展示如何在云平台上实现高效的应用部署和管理。文章不仅提供理论知识,还包含实操指南,帮助开发者理解并应用这些前沿技术。 【8月更文挑战第28天】在数字化时代,网络安全和信息安全是保护个人和企业数据的前线防御。本文将探讨网络安全漏洞的成因、加密技术的应用以及提升安全意识的重要性。文章旨在通过分析网络安全的薄弱环节,介绍如何利用加密技术和提高用户警觉性来构建更为坚固的数据保护屏障。
|
3月前
|
存储 安全 物联网
探索未来网络:物联网安全的最佳实践与挑战
在数字化浪潮中,物联网作为连接万物的关键技术,已深刻改变我们的工作与生活方式。然而,随着其应用的广泛化,安全问题日益凸显,成为制约物联网发展的重要瓶颈。本文旨在深入探讨物联网的安全架构、风险点及应对策略,通过分析当前技术趋势和实际案例,提出一套切实可行的安全防护方案,以促进物联网技术的健康发展。

热门文章

最新文章