Ubuntu 监控 Laravel 应用的实用方案
一 应用内监控工具
- Laravel Telescope:适合开发调试与轻量生产观测,提供请求、异常、数据库查询、队列等面板。安装与启用:
- 安装:composer require laravel/telescope
- 发布资源:php artisan telescope:install && php artisan migrate
- 生产注意:限制访问权限,避免泄露敏感信息。
- Laravel Horizon:Redis 队列的实时仪表盘与监控,便于查看吞吐量、失败任务与运行时分布。安装与启动:
- 安装:composer require laravel/horizon
- 发布配置:php artisan horizon:install
- 启动:php artisan horizon
- Laravel Pulse(Laravel 官方新工具):轻量级实时应用监控,覆盖用户活跃、慢请求、异常与队列吞吐。要求 Laravel 10.25+:
- 安装:composer require laravel/pulse
- 安装命令:php artisan pulse:install。
二 进程与队列的保活与状态
- Supervisor:确保队列与自定义常驻进程稳定运行,异常自动重启,并提供进程状态查询。
- Systemd(替代方案):适合将应用或队列作为系统服务托管。
- Laravel 调度器(Cron):保障定时任务可靠执行。
- 在 crontab -e 添加:* * * * * cd /path/to/your/laravel/project && php artisan schedule:run >> /dev/null 2>&1
三 日志与异常追踪
- Laravel 日志:实时查看应用日志,快速定位错误与异常。
- 实时跟踪:tail -f /storage/logs/laravel.log
- 基于 Monolog,可扩展至文件、邮件、第三方(如 Papertrail、Loggly)。
- 错误与性能 SaaS:
- Sentry:异常监控与告警,便于生产快速发现与回放。
- New Relic / Datadog:应用性能监控(APM)、事务追踪、错误分析,适合全链路观测与容量规划。
四 系统级与自托管监控
- 系统资源监控:快速排查瓶颈(CPU、内存、磁盘、IO、网络)。
- 常用命令:top/htop、vmstat、iostat、iftop、df -h
- Prometheus + Grafana:自托管时序监控与可视化,适合团队化与大规模部署。
- 组件:node_exporter(主机指标)、mysqld_exporter(数据库)、Prometheus(存储)、Grafana(仪表盘)
- Laravel 集成:使用 promphp/prometheus_client_php 暴露自定义指标(如 HTTP 请求计数、耗时等)。
- NetData:开箱即用的实时仪表板,1 秒级刷新,覆盖系统与应用层面指标,访问 http://your-server:19999。
- UptimeRobot:外部可用性监控(HTTP/HTTPS),宕机即时通知,弥补仅内网监控的盲区。
五 快速落地与告警建议
- 分层组合:应用内(Telescope/Pulse/Horizon)+ 进程保活(Supervisor/Systemd)+ 日志(laravel.log + Sentry)+ 系统/外部(Prometheus/Grafana 或 New Relic/Datadog + UptimeRobot)。
- 最小可行监控栈:
- 必备:Supervisor 保活队列 + tail -f storage/logs/laravel.log + UptimeRobot 外网拨测
- 进阶:Prometheus + Grafana 看板 + Sentry 异常告警
- 告警规则示例:
- 队列失败数 > 0(持续 5 分钟)
- 最近 1 小时 5xx 比例 > 1%
- 磁盘使用率 > 80%(预警)、> 90%(严重)
- 响应 P95 > 2s(生产环境)
- 安全与合规:生产环境对 Telescope/Horizon 设置强认证与 IP 白名单,避免敏感数据暴露。