温馨提示×

Laravel项目在Linux上的性能监控方法

小樊
38
2025-11-14 18:34:07
栏目: 智能运维

监控分层与总体思路

  • 建议将监控划分为四层:系统层、应用层、队列层、可用性层,形成从底层资源到业务可观测性的闭环。
  • 系统层关注CPU、内存、磁盘IO、网络;应用层关注请求耗时、异常、慢查询、外部依赖;队列层关注吞吐量、失败重试、处理时长;可用性层关注端口存活、证书过期、磁盘空间HTTP可达性

系统层监控

  • 实时资源观测:使用top/htop查看进程与负载,vmstat观察进程/内存/IO,iostat聚焦磁盘IO,glances获取跨平台总览,dstat做多维度资源对比。
  • 可视化与告警:自建可用Prometheus + Grafana,配合node_exporter采集主机指标;开箱即用可选NetData,提供1秒级刷新与MySQL/PHP-FPM等应用指标面板,默认访问 http://your-server:19999

Laravel应用层监控

  • 日志与异常:Laravel 日志位于**/storage/logs/laravel.log**,可用tail -f实时查看;结合Monolog将日志发送到Papertrail/Loggly等集中平台,便于检索与告警。
  • 开发/轻量生产观测:使用Laravel Telescope查看请求、异常、数据库查询、队列与邮件等;生产需限制访问权限并谨慎记录敏感数据。
  • 官方实时观测:使用Laravel Pulse(要求Laravel 10.25+)获取慢请求、异常统计、队列吞吐、用户活跃等实时指标,低开销、易接入。
  • 第三方 APM:接入New Relic / Datadog获取代码级事务追踪、错误分析、拓扑与告警;示例环境变量:设置NEW_RELIC_LICENSE_KEYNEW_RELIC_APP_NAME,或在 Datadog 使用dd-trace进行埋点与追踪。

队列与异步任务监控

  • 队列仪表盘:使用Laravel Horizon监控Redis 队列的任务吞吐量、失败任务、运行时分布与进程平衡;配置示例可设置生产环境的processesbalance=auto
  • 进程守护:用Supervisor管理队列/自定义进程,异常自动重启并上报状态,保障队列长期稳定。

可用性与基础设施监控

  • 外部可用性:用UptimeRobotHTTP/HTTPS做定时探测,宕机即时通知,弥补内部监控盲点。
  • 服务器健康检查:用Spatie Laravel Server Monitor定期巡检磁盘空间、证书过期、服务存活等,并通过Slack/邮件/Telegram告警,适合与 APM/日志联动形成闭环。

0