运维必备的工具包盘点,哪一款是你的最爱?
运维工程师日常应对的工作多,网络、存储、数据库、磁盘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. 开放优先:优先选用开源且社区活跃的工具(如Prometheus、Grafana) 2. 云原生适配:选择兼容 Kubernetes 生态的工具(如Argo、FluentBit) 3. 可编程性:支持 API 驱动和 Terraform Provider(如Vault、Consul) 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爽多了。