Laravel项目在Debian上的性能监控方法
导读:监控目标与分层 建议将监控分为四层: 基础设施层:CPU、内存、磁盘 I/O、网络、连接数; 服务层:PHP-FPM、Nginx/Apache、数据库(如 MySQL) 的吞吐、响应时间与错误; 应用层:Laravel 请求、异常、慢查...
监控目标与分层
- 建议将监控分为四层:
- 基础设施层:CPU、内存、磁盘 I/O、网络、连接数;
- 服务层:PHP-FPM、Nginx/Apache、数据库(如 MySQL) 的吞吐、响应时间与错误;
- 应用层:Laravel 请求、异常、慢查询、队列任务;
- 可用性层:端口存活、HTTP 可达性、证书过期、磁盘空间阈值。
- 在 Debian 上,系统侧使用 htop/vmstat/iostat/netstat/journalctl 等工具做实时与历史分析;应用侧结合 Laravel Telescope/Horizon/Pulse 与 New Relic/Datadog/Blackfire 做 APM 与性能剖析;可用性侧用 UptimeRobot 或 Nginx stub_status 做外部与内部拨测与状态页监控。
系统层监控
- 资源与 I/O 观测
- 安装基础工具:sudo apt install htop sysstat(含 iostat/vmstat/sar)
- 常用命令:
- htop(交互式进程与资源)
- vmstat 1 5(CPU/内存/IO 概览)
- iostat -xz 1(磁盘 I/O 利用率与等待)
- sar -u -r -b 1 60(历史 CPU/内存/块设备)
- ss -tulnp | grep ‘:80|:443’(连接与端口)
- Web 服务状态
- Nginx 启用 ngx_http_stub_status_module,暴露 Active connections、Reading/Writing/Waiting 等指标,便于判断并发与排队。
- 日志与审计
- 使用 journalctl 查看服务日志:journalctl -u phpX.Y-fpm、journalctl -u nginx、journalctl --since “2025-12-11 00:00:00”。
应用层监控
- Laravel 自带与官方工具
- 日志:实时查看 storage/logs/laravel.log,用于异常与慢请求线索。
- Telescope:开发/轻量生产调试,覆盖请求、异常、查询、队列、邮件等;生产需限制访问与敏感数据。
- Horizon:Redis 队列仪表盘,监控吞吐量、失败任务、运行时分布与均衡策略。
- Pulse(Laravel 官方新工具):轻量实时应用监控,覆盖用户活跃、慢请求、异常与队列吞吐。
- 性能剖析与 APM
- New Relic:代码级事务追踪、错误分析、数据库与外部调用洞察。
- Datadog APM:分布式追踪、服务拓扑、异常基线。
- Blackfire:按请求/场景进行细粒度性能剖析与瓶颈定位。
- 进程与任务可靠性
- Supervisor 管理队列与自定义进程,崩溃自动重启,保障队列与常驻任务稳定。
可用性监控与告警
- 外部拨测
- UptimeRobot 等 HTTP/端口监控,检测站点可达性与响应时延,异常时多渠道告警。
- Web 内部状态
- Nginx stub_status 提供连接与请求状态,结合脚本或采集器做阈值告警(如 Waiting 持续偏高)。
- 进程存活与健康检查
- Supervisor 自带状态与重启能力;
- Spatie Laravel Server Monitor 检查磁盘、证书、服务存活,并推送 Slack/邮件/Telegram 告警。
自托管可观测性栈 Prometheus Grafana
- 组件与采集
- Prometheus 采集时序指标;Grafana 可视化与告警;
- Exporter:node_exporter(主机)、mysqld_exporter(数据库)、php-fpm-exporter(PHP-FPM 状态页)、nginx-exporter(Nginx stub_status)。
- Laravel 自定义指标
- 使用 promphp/prometheus_client_php 暴露业务与框架指标(如 HTTP 请求计数、队列处理时长)。
- 可视化与告警
- Grafana 导入 Node Exporter/MySQL/PHP-FPM/Nginx 等官方或社区仪表盘;
- Prometheus Alertmanager 配置阈值与通知(如 5xx 比例、队列积压、磁盘使用率)。
快速落地清单
- 立即执行
- 部署 Supervisor 守护队列与常驻进程;
- 打开 Laravel 日志 实时 tail,配置错误与慢请求告警;
- 启用 Nginx stub_status 与 UptimeRobot 做内外两层可达性监控。
- 本周内完成
- 上线 Telescope/Horizon/Pulse 之一,覆盖请求、异常、队列与慢操作;
- 接入 New Relic 或 Datadog,开启 APM 与错误追踪;
- 部署 node_exporter/mysqld_exporter/php-fpm-exporter,在 Grafana 建立统一看板。
- 持续优化
- 建立 SLA/阈值 与 告警升级 策略(P1/P2/P3);
- 定期审计 日志保留与轮转、证书有效期 与 备份可用性;
- 在灰度/预发环境使用 Blackfire 做性能回归与瓶颈定位。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Laravel项目在Debian上的性能监控方法
本文地址: https://pptw.com/jishu/769253.html
