⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议
Skip to content

10.5 网站生病了怎么办——监控与日志:可观测性体系

用户告诉你网站挂了?那你已经晚了。

可观测性三支柱

支柱说明回答的问题
Metrics数字化指标发生了什么?多严重?
Logs事件记录为什么发生?
Traces请求链路在哪里发生?

为什么需要监控

场景没有监控有监控
网站挂了用户投诉才知道自动告警,快速响应
性能下降凭感觉猜测数据定位瓶颈
错误追踪翻日志找半天一键定位问题
容量规划拍脑袋扩容基于数据决策

监控体系架构

本节目录

  • 10.5.1 网站还活着吗 — 健康检查与基础指标
  • 10.5.2 日志太多了怎么办 — 结构化日志与管理
  • 10.5.3 一出错就通知我 — 错误追踪与告警
  • 10.5.4 性能瓶颈在哪 — 性能分析与优化

适合独立开发者的方案

不需要复杂的 ELK Stack,简单方案也够用:

工具用途费用
1Panel 监控服务器资源监控免费
UptimeRobot网站可用性监控免费/付费
Sentry错误追踪免费/付费
Better Stack日志 + 告警免费/付费
Docker 日志容器日志查看免费

快速开始

1. 健康检查端点

typescript
// NestJS
@Get('health')
healthCheck() {
  return { status: 'ok', timestamp: new Date() };
}

2. 查看 Docker 日志

bash
# 查看应用日志
docker logs -f --tail 100 app-container

# 查看所有服务日志
docker-compose logs -f

3. 配置告警

在 UptimeRobot 创建监控:

  • 监控地址:https://example.com/api/health
  • 检查间隔:5 分钟
  • 告警方式:邮件/Webhook