跳转至

31 - 附录与维护建议

快速参考命令速查表

类别 常用命令 说明
系统信息 hostnamectl / lsb_release -a / uname -r 主机名、发行版、内核版本
软件包管理 apt update && apt full-upgrade -y && apt autoremove 更新 + 升级 + 清理
服务管理 systemctl status/enable/start/restart/stop <服务> systemd 服务控制
网络诊断 ip -br addr / ss -tuln / ping -c4 / curl -I IP、端口、连通性
日志查看 journalctl -u <服务> -f / journalctl -b -p err 实时跟踪、错误日志
磁盘存储 lsblk -f / df -hT / du -sh /var/* / lvs 分区、LVM、占用情况
安全状态 ufw status verbose / nft list ruleset / fail2ban-client status sshd 防火墙、fail2ban
容器虚拟化 docker ps -a / podman ps -a / lxc-list / virsh list --all 容器与虚拟机状态
AppArmor aa-status / journalctl \| grep "apparmor.*DENIED" MAC 状态、拒绝日志
备份验证 borg list <仓库> / restic snapshots 备份归档列表

生产环境维护检查清单

建议每周执行:

  • 系统更新状态(apt list --upgradable
  • 关键服务运行状态(systemctl --failed
  • 磁盘空间(df -h / df -i,inode 耗尽同样会导致写入失败)
  • 日志磁盘占用(journalctl --disk-usage / du -sh /var/log/
  • fail2ban 封禁记录(fail2ban-client status sshd

建议每月执行:

  • 防火墙规则审查(ufw status verbosenft list ruleset
  • 备份可恢复性验证(从备份仓库恢复文件到临时目录,验证内容完整性)
  • LVM 快照空间健康(lvs -o lv_name,lv_size,data_percent
  • 开放端口扫描(nmap -sV 192.168.1.100,确认无意外开放端口)
  • TLS 证书到期检查(certbot certificatesopenssl x509 -in cert.pem -noout -dates
  • 云 CLI 凭证有效性与轮换计划

常见问题排查路径

问题描述 第一步 第二步 最终手段
SSH 无法连接 ping 192.168.1.100 + ss -tuln \| grep 2222 tail /var/log/auth.log / fail2ban-client status sshd VMware 控制台直接登录
服务启动失败 systemctl status <服务> journalctl -u <服务> -xe AppArmor 日志 / strace
磁盘写满 df -h / df -i du -sh /var/log/* /tmp/* /backup/* 清理日志 / 删除旧备份
网络不通 ip addr show / ip route ping 192.168.1.1(网关)/ tcpdump -i ens33 检查 VMware 网络模式
容器无法启动 docker logs <容器> / podman logs <容器> docker inspect <容器> AppArmor 拒绝日志 / 重建镜像
升级后兼容性问题 apt list --installed \| grep <包名> journalctl -b -p err apt install --reinstall <包名>
AppArmor 阻断服务 aa-status / journalctl \| grep DENIED aa-complain <程序> 切换模式收集日志 补充策略规则后 aa-enforce

长期运维建议

文档化

将所有服务器配置、变更记录、应急预案纳入 Git 仓库管理,密码使用 ansible-vault 或 GPG 加密后再提交。文档格式统一使用 Markdown,维护在 GitHub Wiki 或同仓库 docs/ 目录中。

监控与告警

基础监控方向(按复杂度从低到高):

方案 组件 适用规模
轻量方案 Prometheus + Node Exporter + Alertmanager 5 台以下
日志聚合 Grafana + Loki + Promtail 日志量中等
完整可观测 ELK Stack(Elasticsearch + Logstash + Kibana) 大规模
告警渠道 邮件 / Telegram Bot / 企业微信 Webhook 按需

定期演练

每月至少执行一次灾难恢复演练:从备份仓库恢复数据到隔离测试环境,验证服务可正常启动;模拟主节点宕机,验证 Keepalived VIP 漂移是否正常。未经验证的备份等同于没有备份。

版本控制与变更管理

所有配置文件、脚本、playbook 进 Git;使用 Git tag 标记生产发布版本(v1.2.3-prod);高风险变更通过 Pull Request + Review 流程,不直接推送到 main 分支。

安全持续加固

  • 定期运行 lynis audit system,关注评分趋势
  • 订阅 Debian 安全公告:apt install -y debian-security-support
  • unattended-upgrades 确保安全补丁自动安装
  • 每季度审查 sudoers.d/authorized_keys、防火墙规则

最小化与容器化

尽量将业务服务容器化(Docker / Podman),使宿主机只运行基础系统服务;使用 Packer 维护标准化机器镜像,新机器从镜像启动而非手动配置;推进基础设施即代码(Ansible + Packer),减少人工操作带来的配置漂移。

总结

本教程从零到生产级运维的全链路已覆盖:基础部署 → 安全加固 → 存储管理 → 业务服务 → 自动化演进。真正的运维能力在于建立可重复、可审计、可恢复、可自动化的体系,而不是记住所有命令。建议将本教程所有文件放入一个 Git 仓库,持续补充实践记录和踩坑总结,形成个人或团队的 Debian 运维知识库。