适用人群:有基础Linux知识,想深入运维
难度:中等
预计学习时间:30-40小时
学习路线
第1阶段:系统管理(2周)
├── 用户与权限管理
├── 进程管理(systemd/journalctl)
├── 存储管理(LVM/RAID)
├── 定时任务(cron/systemd timer)
└── 日志管理(rsyslog/logrotate)
第2阶段:网络管理(2周)
├── 网络配置(ip/nmcli)
├── 防火墙(firewalld/iptables)
├── SSH安全加固
├── VPN配置(WireGuard)
└── DNS配置
第3阶段:服务部署(2周)
├── Nginx高级配置
├── MySQL主从复制
├── Redis集群
├── 负载均衡(HAProxy)
└── 高可用(Keepalived)
第4阶段:自动化运维(2周)
├── Shell脚本进阶
├── Ansible自动化
├── Prometheus+Grafana监控
├── ELK日志分析
└── CI/CD(GitLab CI/Jenkins)
关键知识点
# 用户管理
useradd -m -s /bin/bash newuser # 创建用户
passwd newuser # 设置密码
usermod -aG sudo newuser # 加入sudo组
visudo # 编辑sudo权限
# 进程管理
systemctl start nginx # 启动服务
systemctl enable nginx # 开机自启
systemctl status nginx # 查看状态
journalctl -u nginx -f # 查看日志
# 存储管理
fdisk -l # 查看磁盘
mkfs.ext4 /dev/sdb1 # 格式化
mount /dev/sdb1 /data # 挂载
# /etc/fstab 添加开机自动挂载
# LVM逻辑卷管理
pvcreate /dev/sdb # 创建物理卷
vgcreate data-vg /dev/sdb # 创建卷组
lvcreate -L 50G -n data-lv data-vg # 创建逻辑卷
lvextend -L +10G /dev/data-vg/data-lv # 扩容
resize2fs /dev/data-vg/data-lv # 扩展文件系统
# 定时任务
crontab -e
# 格式: 分 时 日 月 周 命令
0 2 * * * /opt/backup.sh # 每天凌晨2点
*/5 * * * * /opt/monitor.sh # 每5分钟
# 防火墙
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload
firewall-cmd --list-all
# Nginx负载均衡
upstream backend {
server 192.168.1.10:8080 weight=3;
server 192.168.1.11:8080 weight=2;
server 192.168.1.12:8080 backup;
}
server {
listen 443 ssl;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
# Ansible Playbook示例
# deploy.yml
---
- hosts: webservers
become: yes
tasks:
- name: Install Nginx
apt: name=nginx state=present
- name: Copy config
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: Restart Nginx
- name: Start Nginx
service: name=nginx state=started enabled=yes
handlers:
- name: Restart Nginx
service: name=nginx state=restarted
# Prometheus监控配置
# prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['192.168.1.10:9100', '192.168.1.11:9100']
- job_name: 'nginx'
static_configs:
- targets: ['192.168.1.10:9113']
安全加固清单
| 措施 | 操作 |
|---|
| SSH加固 | 禁用密码登录,仅用密钥 |
| 端口修改 | SSH改为非22端口 |
| fail2ban | 防暴力破解 |
| 自动更新 | 配置unattended-upgrades |
| 最小权限 | 禁用root远程登录 |
| 审计日志 | 启用auditd |
推荐资源
| 资源 | 说明 |
|---|
| 鸟哥的Linux私房菜 | 经典中文Linux教程 |
| Linux Command Line | William Shotts |
| Ansible官方文档 | 自动化运维必备 |
| Prometheus文档 | 监控系统入门 |