运维工程师学习路线:初级中级高级运维技能进阶全拆解

来源: 作者: 点击:
一、初级运维工程师(0-2年)技能清单
1. 操作系统基础
• Linux发行版安装与最小化部署(CentOS 7/8、Rocky、Ubuntu 20.04/22.04)

• 目录结构:/etc、/var、/usr、/proc、/dev 各自用途

• 文件权限:chmod 755、chown root:root、umask 默认值、SUID/SGID/sticky bit

• 用户管理:useradd -m -s /bin/bash、passwd、usermod -aG wheel、/etc/sudoers 配置

• 磁盘管理:fdisk/gdisk 分区、mkfs.xfs/mkfs.ext4 格式化、/etc/fstab 开机自动挂载、LVM 创建 PV/VG/LV 扩容

• 基础命令:ps auxf、top/htop、netstat -tunlp、ss -antp、lsof -i:端口、strace -p PID、tcpdump -i eth0 port 80

2. 网络基础
• TCP/IP协议栈:三次握手/四次挥手抓包分析、TIME_WAIT/CLOSE_WAIT 状态排查

• 子网划分:CIDR 表示法、VLSM 计算、网关/DNS 配置

• 路由与交换:ip route add、iptables -t nat -A POSTROUTING -s 内网 -j MASQUERADE

• DNS:/etc/resolv.conf、nslookup/dig 查询、bind 搭建内网 DNS

• 网卡绑定:bonding mode 0/1/4/6 配置、多队列网卡中断均衡

3. Shell脚本
• 变量定义与引用、条件判断 [ -f file ]、[[ a -gt b ]]、case 语句

• 循环:for i in $(seq 1 10)、while read line

• 函数封装、exit 状态码、set -euxo pipefail 严格模式

• 实战:日志切割脚本(find /var/log -name "*.log" -mtime +7 -delete)、批量主机巡检(for ip in (cat iplist); do ssh ip "df -h"; done)、自动备份(mysqldump | gzip)

4. 服务部署
• Nginx:编译参数 --with-http_ssl_module、虚拟主机 server_name 匹配、upstream 轮询/权重/ip_hash、location 正则优先级、access.log 格式自定义

• Apache:MPM prefork/worker/event 切换、.htaccess 重写规则

• MySQL:二进制/源码安装、my.cnf 参数 innodb_buffer_pool_size=物理内存70%、slow_query_log=ON、binlog_format=ROW、主从 GTID 复制

• Redis:单机/哨兵/集群三种模式、maxmemory-policy allkeys-lru、RDB/AOF 持久化选择

• 域名解析与备案流程、CDN 回源配置、SSL 证书申请(Let's Encrypt certbot)与 Nginx 配置

5. 监控与排障
• Zabbix:agent 主动/被动模式、item key 自定义、trigger 表达式 {host:system.uptime.last()}<86400、graph 出图

• 日志查看:tail -f /var/log/messages、journalctl -u nginx -f、grep -i error、awk '{print $1}' access.log sort uniq -c sort -rn
head

• 性能排查:iostat -x 1(%util >80% 磁盘瓶颈)、vmstat 1(si/so 非零说明 swap 频繁)、free -h

二、中级运维工程师(2-5年)技能清单
1. 自动化工具
• Ansible:inventory 分组、playbook 幂等编写(yum/module/notify/handler)、roles 目录结构(tasks/main.yml、handlers/main.yml、templates/nginx.conf.j2)、ansible-vault 加密变量

• SaltStack:master/minion 架构、state.sls 编写、grains/pillar 数据分离

• Jenkins:自由风格+Pipeline as Code(Jenkinsfile)、GitLab Webhook 触发、参数化构建(Choice Parameter 选环境)、构建产物归档

• Git:分支策略 git flow、rebase 与 merge 区别、.gitignore 规则、tag 打版本

2. 虚拟化与容器
• KVM:virsh list --all、virt-install 装系统、qcow2 快照创建/回滚、virsh attach-disk 热添加磁盘

• Docker:Dockerfile 多阶段构建(FROM golang:1.21 AS builder → FROM alpine)、docker-compose.yml 服务编排(depends_on/healthcheck/restart: always)、volume 数据持久化、docker network 自定义桥接

• Kubernetes:kubeadm 初始化集群、Pod/Deployment/Service/ConfigMap/Secret/Ingress 资源编写、kubectl get pods -o wide、kubectl describe pod 查事件、HPA 基于 CPU/内存自动扩缩

• Helm:Chart 结构(Chart.yaml/values.yaml/templates/)、helm install -f custom-values.yaml、helm rollback

3. 云平台
• 阿里云/腾讯云/AWS:ECS 实例规格选型(计算型/内存型/通用型)、VPC 网段规划(10.0.0.0/16 拆多个 /24 子网)、安全组规则(入站 22/80/443,出站全通)、SLB 七层转发+会话保持、RDS 参数组调优、OSS S3 API 兼容挂载

• Terraform:provider "alicloud" 配置、resource "alicloud_instance" 定义、terraform init/plan/apply 流程、state 文件远程存储(OSS backend)

• 弹性伸缩:ASG 基于 CPU 指标触发、定时任务扩缩、生命周期钩子

4. 监控进阶
• Prometheus:pull 模式抓取、node_exporter/cadvisor/mysqld_exporter 部署、PromQL 查询(rate(http_requests_total[5m])、up{job="kubernetes-pods"})、Recording Rules 预计算

• Grafana:数据源添加 Prometheus、Dashboard JSON 导入/自定义 Panel(Graph/Singlestat/Table)、告警通道配置(钉钉/企业微信 Webhook)

• ELK/EFK:Filebeat 采集 → Logstash grok 解析(%{COMBINEDAPACHELOG})→ Elasticsearch 索引模板 → Kibana Discover/Visualize/Dashboard

• 告警体系:Alertmanager 分组/抑制/静默、route 匹配 severity=critical 发电话、severity=warning 发群消息

5. 数据库进阶
• MySQL 主从切换演练:stop slave → reset slave all → change master to 新主 → start slave

• 分库分表:MyCat/ShardingSphere 中间件配置、水平拆分按 user_id % 16

• 备份恢复:xtrabackup 物理热备、binlog 按位点/时间点恢复(mysqlbinlog --start-position=xxx mysql-bin.000123 | mysql)

• Redis 集群:redis-cli --cluster create 6节点、reshard 迁移 slot、CLUSTER FAILOVER 手动切换

6. 故障演练
• Chaos Mesh:PodKill/NetworkChaos/IOChaos 注入、稳态假设验证

• 模拟场景:拔网线、kill -9 mysqld、磁盘写满、CPU 打满(stress-ng --cpu 8)

三、高级运维工程师(5年以上)技能清单
1. 架构设计
• 高可用:Keepalived VRRP 虚拟IP漂移、HAProxy 四层负载+健康检查、etcd 三节点 Raft 集群

• 容灾:同城双活(DNS 智能解析+GSLB)、异地冷备(每日全量+binlog 增量同步到备中心)、RTO<30分钟 RPO<5分钟

• 微服务治理:Istio 流量管理(VirtualService 权重路由 90% v1 + 10% v2)、熔断(outlierDetection)、限流(QuotaSpec)

• 多活架构:单元化部署(用户按 uid hash 路由到固定机房)、消息队列跨城同步(RocketMQ DLedger)

2. 性能调优
• 内核参数:net.ipv4.tcp_tw_reuse=1、net.core.somaxconn=65535、vm.swappiness=10、fs.file-max=1000000

• JVM:GC 选择(G1 for <=32G heap)、-Xms=-Xmx 防动态扩容、-XX:+HeapDumpOnOutOfMemoryError

• MySQL:innodb_flush_log_at_trx_commit=2(非金融场景)、sync_binlog=1000、thread_cache_size=64、table_open_cache=4096

• Nginx:worker_processes auto、worker_connections 65535、epoll 多路复用、sendfile on、tcp_nopush on

3. 安全合规
• 等保2.0:三级等保要求(身份鉴别双因子、访问控制最小权限、审计日志留存6个月以上、入侵防范定期漏扫)

• 堡垒机:JumpServer 部署、SSH 代理+录像审计、命令过滤(禁止 rm -rf /)

• 漏洞扫描:Nessus/OpenVAS 定期扫描、CVE 补丁优先级评估(CVSS评分>7.0 紧急)

• 数据加密:TLS 1.3 全链路、KMS 密钥管理、数据库透明加密(TDE)

4. 成本优化
• 资源利用率分析:Prometheus 采集 node_cpu_usage/container_memory_usage,识别 CPU<10% 的低负载实例

• 降配/混部:在线业务(白天高峰)+ 离线任务(夜间批处理)混部在同一批节点,提升整体利用率到40%+

• Spot实例:AWS Spot/阿里云抢占式实例跑无状态服务,成本降70%,配合 ASG 自动补充

• 存储分层:热数据 SSD、温数据 高效云盘、冷数据 OSS 归档(生命周期规则 30天转低频→90天转归档)

5. 团队管理
• 运维规范:变更窗口(每周二/四 02:00-04:00)、变更审批(OA 工单+双人复核)、回滚预案(每次变更必须附带一键回滚脚本)

• 文档体系:Confluence 架构决策记录(ADR)、Runbook 故障处理手册(含命令模板)、On-Call 交接记录

• 培训体系:新人入职前两周学习路径(Linux基础→公司架构→模拟故障排查)、季度技术分享(每人一个深度主题)

• 考核指标:MTTR(平均恢复时间)目标<15分钟、变更成功率>95%、SLA 99.95%可用性

四、学习路径时间线
• 第1-3个月:装虚拟机跑 CentOS,练 tar/grep/awk/sed,写10个以上 shell 脚本,搭 LNMP 环境并排查3次以上 502/504 错误

• 第4-6个月:学 Ansible 批量管10台机器,Docker 化一个 Web 应用,用 Prometheus+Grafana 监控自己的服务器

• 第7-12个月:考 RHCE 或 CKA 认证,搭 Kubernetes 集群跑真实业务,用 Jenkins 做 CI/CD 流水线

• 第2年:深入 MySQL 调优(explain/show profile),学 Redis 源码级原理,参与一次线上故障复盘并写报告

• 第3年:主导一次架构升级(如单体迁微服务),设计多活方案,带1-2个新人

• 第4-5年:输出技术文章/演讲,建立团队运维体系,推动 SRE 转型(SLI/SLO 定义、错误预算、自动化闭环)

五、常用工具速查
• 终端复用:tmux(session/window/pane 三层结构、Ctrl-b % 左右分屏)

• 文件同步:rsync -avz --delete 源 目标、scp -P 2222、lftp 断点续传

• 压测:ab -c 100 -n 10000、wrk -t12 -c400 -d30s、jmeter GUI录制+CLI分布式压测

• 数据库客户端:mycli(MySQL 自动补全)、redis-cli --stat(实时监控)

• 网络诊断:mtr(结合 ping+traceroute)、nmap -sS -p 1-65535(端口扫描)、iperf3(带宽测试)

• 配置校验:nginx -t、mysqld --validate-config、kubectl apply --dry-run=client