运维必备的工具包盘点,哪一款是你的最爱?

2025-05-15 08:55:41 RAIZ

运维工程师日常应对的工作多,网络、存储、数据库、磁盘IO,哪一项出问题了,都需要工具进行排查。最近,在知乎上刷到一个问题:”运维工程师日常工作中,有哪些工具是你随身携带或经常使用的?并说明它们的用途“。摘取了一些内容给大家,欢迎大家留言讨论。

1、知乎好友:卡卡罗特 plus

运维工程师首先要有一把人体工学座椅,一个 24 小时在线的手机,还有一颗能够背锅的大心脏/手动狗头

言归正传,运维工程师的日常工具包涵盖多个领域,需要高效、稳定且灵活的工具组合来应对复杂的系统管理任务。

以下是一个典型运维工程师的工具包分类及核心工具说明,结合现代技术趋势和实际场景需求:

一、核心工具分类与精选清单

  • • SSH工具OpenSSH(Linux/macOS原生)、MobaXterm(Windows全能终端)、Tabby(跨平台现代化终端)
  • • 跳板机管理:Guacamole(网页化统一入口)、Teleport(零信任架构的SSO+审计)
  • • 密钥管理:ssh-agent + Keychain(自动解锁密钥链)、Vault(企业级密钥托管)

1、文本处理与开发环境

  • • 终端编辑器:Vim(深度定制化)、Micro(新手友好的现代替代品)
  • • IDE/图形编辑器:VS Code(Remote-SSH扩展直连服务器)、JetBrains Fleet(分布式开发环境)
  • • 数据处理三剑客jq(JSON处理)、yq(YAML处理)、csvkit(CSV分析)

2、监控与可观测性

  • • 指标监控:乐维监控(IT基础架构监控)+ Prometheus(时序数据库)+ VictoriaMetrics(高性能存储)
  • • 可视化看板:Grafana(统一面板)+ Thanos(长期存储方案)
  • • 链路追踪:Jaeger(分布式追踪)、OpenTelemetry(标准化埋点)
  • • 云原生监控:kube-prometheus-stack(K8s全栈监控)

3、自动化与配置管理

  • • IaC工具:Ansible(无代理架构)、Pulumi(代码即基础设施)
  • • 容器编排:Kubernetes + Kubectl + K9s(集群管理神器)
  • • 流水线引擎:Tekton(云原生CI/CD)、Argo Workflows(复杂任务编排)

4、日志管理与分析

  • • 采集传输:Vector(高性能替代Logstash)、FluentBit(轻量级边车)
  • • 存储分析:Loki(日志界的Prometheus)+ Grafana Explore(统一查询)
  • • 实时检索:Elasticsearch(全文搜索)+ Opensearch(开源分支)

5、网络诊断与优化

  • • 网络管理:乐维网管平台(流量、端口、IP管理,链路监控)
  • • 协议分析:tcpdump(抓包)+ Wireshark(图形化分析)
  • • 连通性测试:mtr(路径追踪统计)、netcat(瑞士军刀)
  • • API调试:curl + curlie(更友好的CLI)、Postman(协作测试)

6、虚拟化与容器工具

  • • 本地开发:Docker Desktop(集成Kubernetes)、Rancher Desktop(轻量替代)
  • • 镜像管理:Skopeo(镜像搬运)、Dive(镜像层分析)
  • • 沙箱环境:Multipass(快速启动 Ubuntu 实例)

二、场景化工具链组合

  • • 应急响应场景:tmux(终端复用) + glances(资源监控) + lnav(日志时间线分析)
  • • 容量规划场景:kube-capacity(K8s资源预测) + Prometheus 历史数据 + Goldilocks(HPA建议)
  • • 安全审计场景:kube-bench(CIS检测) + Trivy(漏洞扫描) + Falco(运行时入侵检测)

三、工具选择原则

  1. 1. 开放优先:优先选用开源且社区活跃的工具(如Prometheus、Grafana)
  2. 2. 云原生适配:选择兼容 Kubernetes 生态的工具(如Argo、FluentBit)
  3. 3. 可编程性:支持 API 驱动和 Terraform Provider(如Vault、Consul)
  4. 4. 可观测一体化:工具链需支持 OpenTelemetry 标准协议

四、进化趋势

  • • AI 增强运维:逐步集成 ChatOps(如ChatGPT)、Deepseek、Kubernetes GPT(自然语言生成诊断建议)
  • • 边缘计算工具:K3s(轻量K8s)、kubeedge(边缘容器管理)
  • • Serverless工具链:Knative(应用托管)、OpenFaaS(函数计算框架)

然并卵,技术迭代太快,企业规模不同,运维环境、岗位职责不同,就单一运维岗位来说,以上大部分工具可能都用不上,题主可根据自身需要选择适用的工具就可以了。祝好~

2、知乎好友:是风风呀

年轻的时候,或者说刚入行的时候,总是幻想着大佬们手里握着一堆牛逼的脚本,每个脚本都能实现一堆牛逼的功能,一跳槽,就把这些牛逼的脚本刷刷刷,弄到新公司,所有脚本安放到位,悠哉悠哉开始喝茶。牛逼!

好吧,工作第 9 个年头了,手里连一个脚本都没留下。之前但是写过一个 ansible 脚本,可以部署各种数据库中间件,大数据组件。但其实,跳槽后就没咋用过了。

为什么呢?

可以讲讲现在运维追求的是什么。上大学的时候,班主任拿一个网络仿真软件,啪啪啪敲命令的时候,觉得真的高大上,梦想中的黑客大概就这样子的吧。工作后,天天都是敲命令,好像 linux 运维从来都是敲命令,写脚本。

但是,从来如此,便对吗?假设,现在某个人给你了一个很牛逼的脚本,可以完成监控,日志,发布,问题排查,性能分析。真的能符合你们公司的应用场景吗?里面是不是有一些意想不到的bug,黑魔法?还有一个问题,就是脚本传承问题,我接手上个运维的事项时,发现人家实现了一个很牛逼的功能,用脚本发布,更新某个程序,但是,这玩意儿就放在某个服务器的一个角落里,他可能都忘了。

脚本这玩意儿,太零散了,哪怕把他用 git 管理,也容易遗忘。而且大多数脚本都不是一键执行的,需要检查某个参数,设置某个环境,如果你忘了,或者脚本写的不严谨,同一个故障就会反复出现。说了这么多脚本面临的问题,那运维到底应该追求什么呢?可能是标准化和白屏化。我们把敲命令定义为黑屏操作,把网页上点点点定义成白屏操作。你可以说,运维操作可以定义成 sop 来标准化,脚本也可以标准化统一管理。首先,对人做要求本来就不靠谱,哪怕大家都是211 985 各种研究生,但是每个人擅长的点并不希望。

交流,交接,自己执行都会面临各种各样的问题。所以,为啥我们不把这些所有的文档,sop,标准运维脚本变成一个按钮呢?你要部署一千台服务器,点一个按钮,你要更新一千个程序版本,点一个按钮,你要修改某个配置,那就修改,确认,审批。一千个人可能有一千种安装系统,更新程序,修改配置的方法。但是,一个按钮,你就算点出花,最后的结果也是统一的。这就是运维白屏化的意义。你想犯错,都没机会。

当所有操作都白屏化后,可能这就是一个云平台的操作界面了吧。那我日常工具包里有啥呢?

golang!

哈哈哈,学费没?

3、知乎好友:好好学习

AnaTraf 流量分析仪,一个便携的、图形化的抓包分析工具,巴掌大小,跟 MAC mini 差不多大。流量接上去,整个网络里所有的设备、IP地址的流量都可视化了,按照2-7层呈现分析结果,非常清晰。分析都是实时的,还能在线解码看报文,比wireshark爽多了。


我要咨询