- 首页 >
- 问答 >
-
云计算 >
- 如何在Linux服务器上监控Laravel应用
如何在Linux服务器上监控Laravel应用
小樊
44
2025-12-30 02:32:57
Linux服务器监控Laravel应用的实用方案
一 监控分层与关键指标
- 系统层:关注CPU、内存、负载、磁盘IO、网络;常用命令有top/htop、vmstat 1、iostat -x 1、free -h、df -h、du -sh。这些能快速定位是否为资源瓶颈引发的性能问题。
- 服务层:确保**PHP-FPM、Nginx/Apache、数据库(如 MySQL)**运行正常,连接数、慢查询、缓存命中率等是关键。
- 应用层:跟踪请求吞吐、响应时间、异常、慢查询、队列积压与失败等业务指标。
- 日志与追踪:集中收集Laravel 日志(storage/logs/laravel.log),必要时引入APM做代码级追踪与错误分析。
二 快速上手的命令行与日志检查
- 实时资源与IO:
- 进程与负载:top/htop
- 虚拟内存与CPU:vmstat 1
- 磁盘IO:iostat -x 1
- 内存与磁盘:free -h、df -h、du -sh /path/to/laravel
- 服务状态:
- Web/队列进程:systemctl status your-laravel-service
- 日志观察:
- 实时查看应用日志:tail -f storage/logs/laravel.log
这些命令适合作为日常巡检与问题初筛的第一步。
三 Laravel框架内置与官方工具
- Laravel Telescope:开发/轻量生产可用,覆盖请求、异常、日志、数据库查询、队列、邮件、通知、调度等;安装与启用:
- 安装:composer require laravel/telescope
- 发布与迁移:php artisan telescope:install、php artisan migrate
- 生产注意:限制访问权限,避免泄露敏感数据。
- Laravel Horizon:Redis 队列监控与调优,关注吞吐量、失败任务、运行时分布;配置示例:
- 发布:php artisan horizon:install
- 运行:php artisan horizon
- 配置(config/horizon.php):可按环境设置多个supervisor,如 processes、queue、balance 等。
- Laravel Pulse(官方新工具):轻量实时应用监控,适合用户活跃、慢请求与异常、队列吞吐等;要求Laravel 10.25+:
- 安装:composer require laravel/pulse、php artisan pulse:install
- 进程守护:使用Supervisor确保队列与工作进程常驻:
- 示例配置要点:command 指向php artisan queue:work 或自定义命令,开启autostart/autorestart,设置stdout_logfile,然后执行supervisorctl reread && supervisorctl update。
四 开源与云端APM方案
- Prometheus + Grafana:自托管时序监控与可视化,典型组件为node_exporter(主机)+ mysqld_exporter(数据库)+ Prometheus + Grafana;Laravel 侧可用promphp/prometheus_client_php暴露自定义指标(如 http_requests_total)。
- NetData:开箱即用的实时仪表板,1秒级刷新,覆盖CPU/RAM/Disk IO/MySQL/PHP-FPM/TCP等,访问 http://your-server:19999。
- New Relic:全链路APM与错误分析,支持代码级事务追踪与慢查询定位;PHP 端安装代理并在php.ini配置newrelic.appname、newrelic.license等。
- Datadog:云原生APM/日志/基础设施一体化,支持服务拓扑、异常检测;Laravel 集成可用datadog/dd-trace,通过环境变量如DD_SERVICE、DD_ENV启用。
五 告警与落地实践
- 健康检查与通知:使用Spatie Laravel Server Monitor做磁盘空间、证书过期、服务存活等巡检,并通过Slack/邮件/Telegram告警。
- 外部可用性监控:接入UptimeRobot对关键域名/接口做定时拨测,异常时即时通知。
- 日志集中化:将Laravel 日志接入ELK(Elasticsearch/Logstash/Kibana)或Graylog,便于检索、可视化与长期留存。
- 告警阈值示例:
- 磁盘使用率:警告 80% / 严重 90%
- 队列积压:持续超过N个任务触发告警
- 响应时间:P95 超过阈值(按业务设定)
- 快速巡检清单:
- 系统:top/htop、vmstat 1、iostat -x 1、free -h、df -h
- 服务:systemctl status php-fpm、nginx/apache、supervisorctl status
- 应用:tail -f storage/logs/laravel.log,必要时查看Telescope/Horizon面板
- 队列:php artisan queue:work --tries=3 --timeout=60 观察重试与超时
- 外部:curl -I https://your-domain 检查返回码与时延