Laravel项目在CentOS上的性能监控方案
Laravel Telescope是框架原生的调试与监控工具,提供请求、数据库查询、队列任务、异常等全链路监控。安装步骤:通过Composer安装laravel/telescope,运行php artisan telescope:install初始化,执行php artisan migrate创建数据库表,最后访问/telescope查看监控数据。注意:生产环境需通过中间件限制访问(如仅允许管理员IP),避免敏感信息泄露。
专为Redis队列设计,实时展示队列任务的吞吐量、失败任务数、任务运行时长分布等指标。安装后需配置config/horizon.php(如设置environments.production下的队列进程数),启动服务php artisan horizon即可查看队列状态。
Laravel 10.25+推出的官方工具,聚焦实时用户行为与系统性能,监控维度包括认证/非认证用户活跃度、慢请求(>500ms)、异常统计、队列吞吐量等。安装仅需composer require laravel/pulse,运行php artisan pulse:install生成仪表盘,无需额外配置即可使用。
提供代码级事务追踪(精确到Eloquent查询、控制器方法)、错误分析、用户会话回放等功能。集成步骤:注册New Relic账号获取许可证密钥,安装newrelic/newrelic-php-agent,修改newrelic.ini配置文件(替换LICENSE_KEY),重启Web服务器(Apache/Nginx);在Laravel的.env中配置NEW_RELIC_LICENSE_KEY和NEW_RELIC_APP_NAME。
支持Laravel服务拓扑图、智能异常检测(机器学习基线)、日志与指标整合。集成流程:注册Datadog账号获取API密钥,安装datadog/dd-trace包,配置dd-trace.ini(设置DD_SERVICE="laravel-app"、DD_ENV="production"),重启服务后即可查看应用性能数据。
专注于错误捕获与分析,实时报告Laravel应用中的异常(包括未处理异常、日志错误)。安装Sentry\SentryLaravel包,在.env中配置SENTRY_LARAVEL_DSN,即可自动捕获并上报错误,支持区分环境(开发/生产)。
确保Laravel队列工作进程持续运行,避免因进程崩溃导致任务中断。安装Supervisor后,创建配置文件/etc/supervisor/conf.d/laravel.conf,内容如下:
[program:laravel]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /path/to/your/laravel/project/artisan queue:work --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=4
redirect_stderr=true
stdout_logfile=/path/to/your/laravel/project/storage/logs/supervisor.log
运行sudo supervisorctl reread和sudo supervisorctl update启动进程。
1秒级刷新的系统监控面板,覆盖CPU、内存、磁盘IO、网络流量及应用级指标(如MySQL查询、PHP-FPM状态)。安装命令:bash <(curl -Ss https://my-netdata.io/kickstart.sh),安装完成后访问http://your-server-ip:19999即可查看实时数据。
通过promphp/prometheus_client_php包将Laravel应用指标(如HTTP请求数、队列任务数)暴露给Prometheus,再用Grafana创建可视化仪表盘。步骤:安装Prometheus(作为时序数据库)、Grafana(可视化工具),配置Prometheus抓取Laravel应用的/metrics端点,最后在Grafana中导入Laravel监控模板。
Laravel默认使用Monolog记录日志,存储在storage/logs/laravel.log。可通过配置config/logging.php将日志发送到第三方服务(如Papertrail、Loggly),或设置日志分级(info、error)便于筛选。
定期检查服务器状态(磁盘空间、证书过期、服务运行状态),支持自定义检查项(如特定端口是否监听)。安装spatie/laravel-server-monitor,配置config/server-monitor.php(如设置磁盘空间警告阈值80%),触发告警时通过Slack/邮件通知管理员。