第32篇-DevOps与系统运维实战
·
【Hermes Agent 从入门到精通】第 32 篇:DevOps 与系统运维实战
下面是本篇 DevOps 运维的整体工作流程概览:
本系列定位:零基础入门,从安装配置到高级架构全覆盖。无论你是开发者、运维工程师、还是技术爱好者,本系列带你彻底掌握 Hermes Agent。
本篇你将学到
- 服务器监控与告警
- 日志分析与问题排查
- Docker 容器管理
- 定期备份与系统维护
- CI/CD 流水线辅助
学完本篇,你将能用 Hermes 作为运维助手,自动化日常运维工作。
一、服务器监控
1.1 即时检查
你:"检查一下服务器的整体健康状况"
Hermes:
🔧 terminal: top -bn1 | head -5
🔧 terminal: free -h
🔧 terminal: df -h
🔧 terminal: docker ps --format "table {{.Names}}\t{{.Status}}"
📊 服务器健康状况:
CPU:负载 0.45(正常)
内存:8G/16G 使用(50%)
磁盘:45G/100G 使用(45%)
Docker 容器:
✅ postgres Up 3 days
✅ redis Up 3 days
✅ rabbitmq Up 2 days
⚠️ mini-shop-app Up 5 hours(重启过)
1.2 自动化监控(Cron)
# 每 10 分钟检查一次
hermes cron create "*/10 * * * *" \
--prompt """检查服务器关键指标。如果异常则告警:
- CPU > 85%
- 内存 > 90%
- 磁盘 > 80%
- 关键容器停止
正常时不输出任何内容。""" \
--deliver "telegram" \
--name "server-monitor"
下面是服务器监控的决策流程:
二、日志分析
2.1 错误日志排查
你:"帮我分析 mini-shop 应用最近的错误日志"
Hermes:
🔧 terminal: grep -i "error\|exception" /var/log/mini-shop/app.log | tail -50
📋 最近 24 小时的错误分析:
错误类型分布:
- NullPointerException: 12 次(最频繁)
- SQLException: 3 次
- TimeoutException: 2 次
最频繁的错误:
NPE at OrderService.kt:58
→ user 对象为 null
→ 发生在 14:00-15:00 高峰期
建议:检查 OrderService 第 58 行的空值处理
2.2 日志模式识别
你:"看看最近一周的日志有没有什么异常模式"
Hermes:
🔧 terminal: cat /var/log/mini-shop/app.log | grep "WARN" | awk '{print $1, $5}' | sort | uniq -c | sort -rn | head -10
📊 异常模式分析:
1. 每天 03:00 有连接池超时警告(定时任务集中执行)
2. 每周三有内存飙升警告(可能是报表任务)
建议:
1. 03:00 的定时任务错峰执行
2. 报表任务考虑分批处理
下面是日志分析的完整处理链路:
三、Docker 容器管理
3.1 容器状态检查
你:"检查所有 Docker 容器的资源使用情况"
Hermes:
🔧 terminal: docker stats --no-stream
📊 容器资源使用:
容器 CPU 内存 网络IO
postgres 2.3% 256MB/1G 45MB
redis 0.5% 64MB/512MB 12MB
mini-shop 5.1% 512MB/2G 128MB
💡 redis 内存使用偏低,可以考虑降低分配
3.2 容器清理
你:"清理所有悬挂镜像和停止的容器"
Hermes:
⚠️ 即将执行:docker system prune -f
这将删除:3 个悬挂镜像(约 450MB),2 个停止的容器
确认?[y/N]
> y
✅ 清理完成,释放 487MB 磁盘空间
3.3 容器部署
你:"重新部署 mini-shop 应用"
Hermes:
🔧 cd /opt/mini-shop && docker compose build
🔧 docker compose down
🔧 docker compose up -d
🔧 等待 10 秒...
🔧 curl -s http://localhost:8080/actuator/health
✅ 部署成功!健康检查通过
版本:1.2.0
启动时间:3.2 秒
下面是 Docker 容器管理的操作流程:
四、数据库维护
4.1 数据库健康检查
你:"检查 PostgreSQL 的运行状态"
Hermes:
🔧 terminal: docker exec mini-shop-postgres psql -U postgres -c "SELECT count(*) FROM pg_stat_activity;"
🔧 terminal: docker exec mini-shop-postgres psql -U postgres -c "SELECT pg_size_pretty(pg_database_size('mini_shop'));"
📊 PostgreSQL 状态:
活跃连接:12 / 100
数据库大小:1.2 GB
慢查询:2 条(>1秒)
4.2 备份验证
你:"验证最新的数据库备份"
Hermes:
🔧 terminal: ls -lh /backup/postgres/
🔧 terminal: pg_restore --list /backup/postgres/latest.dump | head -20
✅ 最新备份:2026-07-29 03:00
大小:245 MB
包含表:18 张
状态:完整可恢复
五、定期维护 Cron
5.1 每日维护
# 凌晨 2 点:数据库优化
hermes cron create "0 2 * * *" \
--prompt "执行 PostgreSQL VACUUM ANALYZE,报告优化结果" \
--deliver "local" \
--name "db-maintenance"
# 凌晨 3 点:日志轮转检查
hermes cron create "0 3 * * *" \
--prompt "检查 /var/log/ 下的日志文件大小,超过 100MB 的通知清理" \
--deliver "telegram" \
--name "log-check"
# 凌晨 4 点:备份验证
hermes cron create "0 4 * * *" \
--prompt "验证最新的数据库备份是否完整可恢复" \
--deliver "telegram" \
--name "backup-verify"
下面是每日 Cron 维护任务的时间线:
六、CI/CD 辅助
6.1 构建失败分析
你:"CI 构建失败了,帮我看看原因"
Hermes:
🔧 terminal: cat build-output.log | grep -i "error\|fail" | tail -20
📋 构建失败原因:
- 编译错误:OrderService.kt 第 42 行类型不匹配
- 期望 String,实际 String?
- 修复方案:添加 ?: "" 或 !!
6.2 自动化部署检查
通过 Webhook 在 CI 完成后自动检查:
hermes webhook subscribe ci-complete
# CI 构建完成后 → Hermes 自动验证 → 通知结果
本篇小结
| 知识点 | 核心内容 |
|---|---|
| 服务器监控 | CPU/内存/磁盘/容器 |
| 日志分析 | 错误统计、模式识别 |
| Docker 管理 | 容器状态、资源清理、部署 |
| 数据库维护 | VACUUM、备份验证 |
| CI/CD 辅助 | 构建失败分析、部署检查 |
| Cron 自动化 | 定期维护任务 |
下篇预告
生产环境安全至关重要。下一篇全面讲解 Hermes 的安全配置体系。
如果本篇内容对你有帮助,欢迎点赞收藏!有任何疑问,欢迎在评论区交流。
更多推荐
所有评论(0)