58 - Linux 服务器运维进阶教程

适用人群:有基础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 LineWilliam Shotts
Ansible官方文档自动化运维必备
Prometheus文档监控系统入门
返回首页