Ubuntu下监控Laravel运行状态的实用方案
一 核心监控层次与工具
- 应用日志:Laravel 默认日志位于 /storage/logs/laravel.log,使用命令 tail -f /storage/logs/laravel.log 实时查看错误与请求记录。
- 队列与任务:使用 Laravel Horizon 监控 Redis 队列 的吞吐量、失败任务、运行时分布等;使用 Supervisor 管理队列进程,异常自动重启。
- 应用性能与错误:接入 New Relic、Datadog、Sentry 获取 APM、错误追踪与告警。
- 服务器资源:用 top、htop、vmstat、iostat 观察 CPU、内存、磁盘、IO 等系统指标。
- 外部可用性:用 UptimeRobot 做 HTTP 存活探测 与宕机通知。
二 快速上手步骤
- 实时查看日志
- 命令:tail -f /storage/logs/laravel.log
- 用途:第一时间发现异常堆栈、SQL 报错、请求异常等。
- 进程守护与队列监控
- 性能与错误追踪
- 接入 New Relic / Datadog / Sentry,收集事务、慢请求、异常与调用链,配置阈值告警。
三 进阶与可视化监控
- 自托管指标栈:Prometheus + Grafana
- 采集:服务器用 node_exporter,数据库用 mysqld_exporter;Laravel 侧可用 promphp/prometheus_client_php 暴露自定义指标。
- 可视化:Grafana 构建看板,Prometheus 做告警规则。
- 开箱即用的服务器健康检查:Spatie Laravel Server Monitor
- 检查项:磁盘空间、证书过期、服务存活等;通知支持 Slack/邮件/Telegram。
- 实时应用内监控:Laravel Pulse(Laravel 10.25+)
- 维度:用户活跃、慢请求与异常、队列吞吐 等,轻量且实时。
- 即时系统面板:NetData
- 特点:1 秒级刷新,覆盖 CPU/RAM/Disk IO/MySQL/PHP-FPM 等,访问 http://your-server:19999。
四 生产环境实践清单
- 日志与权限:确保 /storage/logs 与 Supervisor 日志 对运行用户(如 www-data)可写,避免因权限导致进程异常或无法写入。
- 访问控制:Laravel Telescope / Horizon 仅在内网或加鉴权后开放,防止敏感数据泄露。
- 告警策略:为 队列失败数、异常率、响应时延、磁盘/CPU 设置分级告警(如 Warning/Critical),并接入 邮件/企业微信/钉钉/Slack。
- 变更生效:代码或队列逻辑变更后,重启队列进程(如 supervisorctl restart laravel-worker:*)以确保新逻辑生效。
- 合规与成本控制:SaaS APM(如 Datadog / New Relic)按主机/数据量计费,合理设置采样率与保留期;自托管栈注意 存储与计算资源 规划。