温馨提示×

Ubuntu如何监控Laravel应用性能

小樊
44
2025-11-16 23:39:17
栏目: 智能运维

Ubuntu 监控 Laravel 应用性能

一 监控分层与总体思路

  • 建议采用分层监控:系统层(CPU、内存、磁盘、网络)、服务层(PHP‑FPM、Nginx/Apache、数据库、队列)、应用层(Laravel 日志、异常、慢请求、队列)、可用性层(外部拨测)。
  • Ubuntu 上,系统层可用 top/htop、vmstat、iostat 等工具;应用层结合 Laravel Telescope/Horizon日志 tail -f /storage/logs/laravel.log 快速定位问题;队列与常驻进程用 Supervisor 守护与自动重启,确保稳定性。

二 快速上手 原生与开箱即用的工具

  • Laravel Telescope:开发/预发布环境的“全栈观察窗”,覆盖请求、异常、数据库查询、队列、邮件等。安装与启用:
    • composer require laravel/telescope
    • php artisan telescope:install
    • php artisan migrate
    • 生产环境务必限制访问(如仅内网或加认证中间件),避免敏感数据外泄。
  • Laravel Horizon:Redis 队列的实时仪表盘与配置中心,监控任务吞吐量、失败重试、运行时分布等。
    • composer require laravel/horizon
    • php artisan horizon:install
    • 配置队列进程数与平衡策略,生产通过 horizon 命令启动与守护。
  • 日志与实时排查:
    • tail -f /storage/logs/laravel.log 实时查看错误与关键业务日志;
    • 结合 Monolog 将日志发送到外部(如 Papertrail/Loggly)便于集中化检索与告警。

三 生产级 APM 与云端监控

  • New Relic:代码级事务追踪、慢事务/慢 SQL、错误与用户会话分析。
    • 安装 APM PHP 扩展与 Laravel 集成包,配置 NEW_RELIC_LICENSE_KEYNEW_RELIC_APP_NAME 即可上报;适合需要深度链路追踪与告警的企业环境。
  • Datadog APM + 日志/基础设施:自动服务拓扑、异常基线、全链路可观测。
    • 安装 datadog/dd-trace 并设置 DD_SERVICE/DD_ENV 等环境变量,几分钟内可在 Datadog 看到请求、数据库、外部依赖性能与错误。
  • Scout APM:面向 PHP/Laravel 的轻量 APM,擅长发现 N+1 查询慢查询
    • 在 .env 中配置 SCOUT_MONITOR=true、SCOUT_KEY、SCOUT_NAME,部署后约 5 分钟 出数据,适合快速定位性能回退与热点端点。

四 自托管可观测性 指标 日志 追踪一体化

  • Prometheus + Grafana:自建时序监控与可视化,灵活定制仪表盘与告警规则。
    • 组件建议:Node Exporter(主机指标)、mysqld_exporter(数据库)、应用侧集成 promphp/prometheus_client_php 暴露自定义指标(如 HTTP 请求计数/延迟);Grafana 做统一可视化与阈值告警。
  • Laravel Pulse(Laravel 官方实时应用监控,要求 Laravel 10.25+):聚焦用户活跃、慢请求、异常与队列吞吐,低门槛接入。
    • composer require laravel/pulse
    • php artisan pulse:install
  • 服务器健康检查:Spatie Laravel Server Monitor
    • 支持证书过期、磁盘空间、服务存活等检查,通知可对接 Slack/邮件/Telegram,用于保障底层资源与依赖可用性。
  • 实时可视化与系统全景:NetData
    • 一键安装,提供 1 秒级 刷新面板,覆盖 CPU/RAM/磁盘 IO、MySQL/PHP‑FPM 状态、网络等,适合作为“第一视角”运维看板。

五 部署与告警最佳实践

  • 进程与队列守护:使用 Supervisor 管理队列与自定义常驻进程,配置 autorestart、stdout/stderr 日志与监控告警,确保异常退出能自动恢复。
  • 可用性拨测:接入 UptimeRobot 等外部监控,对关键域名/接口做 HTTP/HTTPS 拨测与状态页告警,弥补仅内网可观测的盲区。
  • 安全与合规:生产环境关闭 APP_DEBUG,为 Telescope/Horizon 设置强认证与 IP 白名单;APM/日志上报遵循最小权限与脱敏原则。
  • 告警分层:系统层(CPU/内存/磁盘阈值)、服务层(PHP‑FPM 5xx、队列积压)、应用层(慢请求/异常激增)、可用性层(拨测失败);建议结合 Prometheus Alertmanager 或云端告警通道实现分级通知。

0