随着信息技术的快速发展,企业越来越需要高效稳定的应用系统。然而,随着云环境复杂性的不断增加,运维人员面临的问题变得越来越多样化和困难。维护和管理复杂的基础设施是一项非常具有挑战性的任务。随着业务的增长和系统复杂性的增加,应用和系统的深度集成带来了新的挑战。及时发现和解决问题变得至关重要。如何快速准确地故障排除和定位故障已成为运维管理中的一个重要挑战。传统的手动故障排除方法通常耗时且劳动密集。在此背景下,Octopus工具应运而生,为系统的自动化运维注入了新的活力。
关于Octopus
Octopus是专为用户系统环境设计的自动化故障排除工具。它集成了多种诊断、监控和分析功能,能够快速准确地定位系统问题。Octopus的目标是简化运维流程,提高故障排除效率,使运维人员能够更多地专注于系统优化和业务创新。
核心特性
可扩展框架
在云环境中,现代业务系统通常多样且复杂,包括性能瓶颈、依赖冲突、资源争用和与底层系统的集成。底层云系统本身也是一个非常复杂的软件生态系统,涉及网络、计算和存储的各个方面,涉及大量非常底层的知识,如硬件驱动程序、操作系统内核、底层存储、底层网络协议以及qemu、kvm和sdn等虚拟化知识。当业务失败时,及时的故障排除和系统恢复需要运维人员具备极高的知识和工具储备。Octopus提供了一个可扩展的框架来解决这个问题。
工具集成
排除这些应用链问题、应用与云环境集成问题、云环境底层问题等通常需要各种针对性的工具。例如,要排除网络问题,需要tcpdump数据包捕获工具、iptables工具、ping、mtr等网络检测工具。在支持ebpf的现代Linux内核版本中,基于ebpf的bcc、bpftrace和自开发工具对故障排除非常有帮助。然而,由于ZStack Cloud拥有4S优势,简单性是一个非常重要的特性。如果所有工具都集成到Cloud iso中,固件将变得庞大,给用户带来很多不便。因此,Octopus提供了按需安装和使用的功能。只有在排除问题时才会按需动态提供工具。
脚本集成
在产品的长期运行过程中,会积累各种脚本,如测试网络的特定参数、测试应用端口的可访问性和测试分布式存储的特定功能数据。这些脚本通常分散在各处。在排除问题时,需要找到并上传到客户环境中。它们还可能需要经过审批流程,这将降低故障排除效率。Octopus统一了这些脚本,对它们进行分类,并以cli命令行界面的形式提供,以便在需要时立即使用。
流程集成
在日常运维过程中,对于某个故障排除任务,超过80%的步骤是固定的,例如第一步检查服务状态,第二步在日志中搜索特定内容,第三步检查进程的资源使用情况,第四步在iptables/ebtables中搜索特定表项,第五步在所有网络路径上从虚拟机a捕获具有特定特征的数据包到虚拟机b等。Octopus集成了这些固定流程和步骤,并以命令的形式提供给运维人员。运维人员只需要输入一个名称就可以完成这些步骤。目前支持数十个命令,下面将介绍其中的一些。
智能补全
Octopus为几乎所有命令和参数提供补全功能,并支持模糊补全和历史补全,以便对于任何命令,操作员所需的击键次数不会超过大约10次,对于常用命令,减少到大约五次,大大减轻了操作员的负担,提高了运维效率。
网络故障排除
排除iptables问题
作为企业IT系统的基础,IaaS系统的安全性非常重要。除了ZStack Cloud添加的安全规则外,企业可能还会部署专业的安全软件和许多防火墙规则。有时,由于某些需要,用户还会部署额外的软件,这些软件将在云节点上发布防火墙规则,或者在某些情况下,防火墙规则可能与计划不一致。3000+客户的经验告诉我们,有时节点上的防火墙规则数量可能是数百或数千。一旦网络异常,如规则冲突或不一致,运维人员手动逐一排除具体问题非常困难。这需要很长时间,对于客户来说,也增加了他们的业务受影响的时间。Octopus提供了trace_iptables命令,可以自动诊断是否是iptables规则问题以及导致问题的具体规则。
这个命令可以使用-filter指定需要检查的IP和端口信息。语法支持tcpdump的bpf过滤语法,非常容易使用。如上图所示,意味着不是iptables问题,所有操作都是ACCEPT。
以下案例清楚地指出了iptables规则问题:
自动捕获整个路径上的数据包
私有云的核心任务之一是虚拟化用户的物理资源。对于网络,网络交换机和虚拟网络卡在物理节点上虚拟化,以在虚拟机之间交换数据。当网络异常时,通常需要在这些虚拟设备上使用数据包捕获工具来捕获网络数据包以诊断网络问题。无论是使用开源社区openvswitch、Linux bridge还是自开发的虚拟交换机,在源和目的地之间都会有
返回列表