Ubuntu中如何监控Laravel应用状态
导读:Ubuntu 监控 Laravel 应用的实用方案 一 应用内监控工具 Laravel Telescope:适合开发调试与轻量生产观测,提供请求、异常、数据库查询、队列等面板。安装与启用: 安装:composer require lar...
Ubuntu 监控 Laravel 应用的实用方案
一 应用内监控工具
- Laravel Telescope:适合开发调试与轻量生产观测,提供请求、异常、数据库查询、队列等面板。安装与启用:
- 安装:composer require laravel/telescope
- 发布资源:php artisan telescope:install & & php artisan migrate
- 生产注意:限制访问权限,避免泄露敏感信息。
- Laravel Horizon:Redis 队列的实时仪表盘与监控,便于查看吞吐量、失败任务与运行时分布。安装与启动:
- 安装:composer require laravel/horizon
- 发布配置:php artisan horizon:install
- 启动:php artisan horizon
- Laravel Pulse(Laravel 官方新工具):轻量级实时应用监控,覆盖用户活跃、慢请求、异常与队列吞吐。要求 Laravel 10.25+:
- 安装:composer require laravel/pulse
- 安装命令:php artisan pulse:install。
二 进程与队列的保活与状态
- Supervisor:确保队列与自定义常驻进程稳定运行,异常自动重启,并提供进程状态查询。
- 安装:sudo apt-get update & & sudo apt-get install supervisor
- 示例配置(队列工作进程):/etc/supervisor/conf.d/laravel-worker.conf
[program:laravel-worker] process_name=%(program_name)s_%(process_num)02d command=php /path/to/your/laravel/project/artisan queue:work --sleep=3 --tries=3 autostart=true autorestart=true user=www-data numprocs=4 redirect_stderr=true stdout_logfile=/path/to/your/laravel/project/storage/logs/worker.log stopwaitsecs=3600 - 使配置生效:sudo supervisorctl reread & & sudo supervisorctl update & & sudo supervisorctl start laravel-worker:*
- 查看状态:sudo supervisorctl status
- Systemd(替代方案):适合将应用或队列作为系统服务托管。
- 示例服务:/etc/systemd/system/laravel-worker.service
[Unit] Description=Laravel Queue Worker After=network.target [Service] Type=simple User=www-data WorkingDirectory=/path/to/your/laravel/project ExecStart=/usr/bin/php /path/to/your/laravel/project/artisan queue:work --sleep=3 --tries=3 Restart=always [Install] WantedBy=multi-user.target - 启用:sudo systemctl daemon-reload & & sudo systemctl enable --now laravel-worker
- 查看:sudo systemctl status laravel-worker
- 示例服务:/etc/systemd/system/laravel-worker.service
- Laravel 调度器(Cron):保障定时任务可靠执行。
- 在 crontab -e 添加:* * * * * cd /path/to/your/laravel/project & & php artisan schedule:run > > /dev/null 2> & 1
三 日志与异常追踪
- Laravel 日志:实时查看应用日志,快速定位错误与异常。
- 实时跟踪:tail -f /storage/logs/laravel.log
- 基于 Monolog,可扩展至文件、邮件、第三方(如 Papertrail、Loggly)。
- 错误与性能 SaaS:
- Sentry:异常监控与告警,便于生产快速发现与回放。
- New Relic / Datadog:应用性能监控(APM)、事务追踪、错误分析,适合全链路观测与容量规划。
四 系统级与自托管监控
- 系统资源监控:快速排查瓶颈(CPU、内存、磁盘、IO、网络)。
- 常用命令:top/htop、vmstat、iostat、iftop、df -h
- Prometheus + Grafana:自托管时序监控与可视化,适合团队化与大规模部署。
- 组件:node_exporter(主机指标)、mysqld_exporter(数据库)、Prometheus(存储)、Grafana(仪表盘)
- Laravel 集成:使用 promphp/prometheus_client_php 暴露自定义指标(如 HTTP 请求计数、耗时等)。
- NetData:开箱即用的实时仪表板,1 秒级刷新,覆盖系统与应用层面指标,访问 http://your-server:19999。
- UptimeRobot:外部可用性监控(HTTP/HTTPS),宕机即时通知,弥补仅内网监控的盲区。
五 快速落地与告警建议
- 分层组合:应用内(Telescope/Pulse/Horizon)+ 进程保活(Supervisor/Systemd)+ 日志(laravel.log + Sentry)+ 系统/外部(Prometheus/Grafana 或 New Relic/Datadog + UptimeRobot)。
- 最小可行监控栈:
- 必备:Supervisor 保活队列 + tail -f storage/logs/laravel.log + UptimeRobot 外网拨测
- 进阶:Prometheus + Grafana 看板 + Sentry 异常告警
- 告警规则示例:
- 队列失败数 > 0(持续 5 分钟)
- 最近 1 小时 5xx 比例 > 1%
- 磁盘使用率 > 80%(预警)、> 90%(严重)
- 响应 P95 > 2s(生产环境)
- 安全与合规:生产环境对 Telescope/Horizon 设置强认证与 IP 白名单,避免敏感数据暴露。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu中如何监控Laravel应用状态
本文地址: https://pptw.com/jishu/780058.html
