温馨提示×

centos服务器上如何监控laravel应用

小樊
44
2025-12-07 13:09:13
栏目: 云计算

监控方案总览CentOS 上建议采用“进程保活 + 日志与异常 + APM/可视化 + 可用性探测”的组合:用 Supervisor/Systemd 保证 PHP-FPM/Nginx/队列 持续运行;通过 Laravel Log/MonologSentry/New Relic 捕获错误与性能;用 Prometheus + GrafanaDatadog/New Relic 做指标与可视化;配合 UptimeRobot 做外部可用性探测,形成闭环告警与复盘。

进程与队列保活

  • 使用 Supervisor 管理队列与工作进程(示例为队列,可按需调整命令与进程数):
    • 安装:sudo yum install -y epel-release && sudo yum install -y supervisor
    • 配置:/etc/supervisor/conf.d/laravel-worker.conf
      [program:laravel-worker]
      process_name=%(program_name)s_%(process_num)02d
      command=/usr/bin/php /path/to/your/laravel/project/artisan queue:work --queue=default --sleep=3 --tries=3
      autostart=true
      autorestart=true
      user=your_user
      numprocs=4
      redirect_stderr=true
      stdout_logfile=/var/log/laravel-worker.log
      
    • 生效:sudo supervisorctl reread && sudo supervisorctl update && sudo supervisorctl start laravel-worker:*
  • 使用 Systemd 托管 PHP-FPM/Nginx(示例为 PHP-FPM):
    • 配置:/etc/systemd/system/php-fpm.service(或直接使用发行版提供的服务)
    • 常用命令:sudo systemctl daemon-reload && sudo systemctl enable --now php-fpm nginx
  • 生产环境建议使用 Nginx + PHP-FPM 承载应用,并通过监控 Nginx/PHP-FPM 状态页 间接反映 Laravel 的运行状况。

日志与异常监控

  • 应用日志:实时查看与轮转
    • 实时:tail -f /path/to/your/laravel/project/storage/logs/laravel.log
    • 建议接入 Logrotate 做按日轮转与保留策略,避免磁盘被占满。
  • 错误与性能追踪
    • Sentrycomposer require sentry/sentry-laravel,在 .env 配置 DSN,用于捕获异常与堆栈。
    • New Relic:安装 New Relic PHP Agent 并在 .env 设置 NEW_RELIC_LICENSE_KEY / NEW_RELIC_APP_NAME,获取事务追踪、慢事务与错误分析。

指标可视化与告警

  • 自托管可观测性
    • Prometheus + Grafana:部署 node_exporter(主机指标)、mysqld_exporter(数据库)、可选 php-fpm-exporter;在 Laravel 中引入 promphp/prometheus_client_php 暴露自定义指标;Grafana 导入 Node Exporter / MySQL / Nginx 等官方仪表盘并设置阈值告警(如 95th 响应时间、队列积压)。
    • NetData:一键安装,提供 1 秒级仪表盘,覆盖 CPU/内存/磁盘 IO/MySQL/PHP-FPM/TCP 等,适合快速可视化与排障。
  • SaaS 方案
    • Datadog APMcomposer require datadog/dd-trace,设置 DD_SERVICE / DD_ENV 等环境变量,获得服务拓扑、依赖追踪与智能告警。
    • New Relic APM:同上,侧重代码级追踪与错误分析。

可用性探测与健康检查

  • 外部可用性:UptimeRobot1–5 分钟探测 HTTP 200,支持 邮件/Slack/Webhook 告警,快速发现 Nginx/应用宕机 与路由问题。
  • 内部自检:为 Nagios/NRPE 编写自定义检查脚本(如调用 php artisan 的健康命令或检查关键路由),统一纳入 Nagios 告警策略。

落地检查清单

  • 进程保活:Supervisor/Systemd 已启用并开机自启,关键进程崩溃能自动拉起(含 队列/调度器)。
  • 日志与告警:laravel.log 正常写入、轮转生效;Sentry/New Relic 已捕获首批错误与慢事务。
  • 指标与可视化:Prometheus/GrafanaDatadog 已接入,关键面板与阈值告警就绪(如 HTTP 5xx、队列积压、P95/P99、磁盘/内存)。
  • 可用性:UptimeRobot 探测已添加,团队告警通道(如 钉钉/企业微信/Slack)已验证。

0