首页主机资讯ubuntu上thinkphp项目的监控方案

ubuntu上thinkphp项目的监控方案

时间2025-10-14 08:09:04发布访客分类主机资讯浏览1169
导读:Ubuntu上ThinkPHP项目的监控方案 一、进程与文件变更监控:Supervisor Supervisor是一款进程管理工具,可用于监控ThinkPHP项目的运行状态,并在文件变更时自动重启服务(适用于开发环境热更新)。 安装Sup...

Ubuntu上ThinkPHP项目的监控方案

一、进程与文件变更监控:Supervisor

Supervisor是一款进程管理工具,可用于监控ThinkPHP项目的运行状态,并在文件变更时自动重启服务(适用于开发环境热更新)。

  • 安装Supervisor:通过终端运行sudo apt-get update & & sudo apt-get install supervisor完成安装。
  • 配置监控:创建配置文件/etc/supervisor/conf.d/thinkphp.conf,内容如下(需替换项目路径和用户):
    [program:thinkphp]
    process_name=%(program_name)s_%(process_num)02d
    command=php /path/to/your/thinkphp/project start
    autostart=true
    autorestart=true
    user=your_ubuntu_user
    numprocs=1
    redirect_stderr=true
    stdout_logfile=/path/to/your/thinkphp/project/runtime/log/supervisor.log
    stopwaitsecs=3600
    
  • 激活配置:运行sudo supervisorctl reread & & sudo supervisorctl update使配置生效,随后通过sudo supervisorctl start thinkphp:*启动监控。

二、性能与错误综合监控:日志+自定义中间件

ThinkPHP内置日志功能与中间件机制,可实现基础的请求耗时、内存使用及错误记录。

  • 日志配置:在application/config.php中设置日志参数,指定日志类型(文件)、存储路径及级别:
    'log' =>
         [
        'type' =>
         'file',
        'var_log_path' =>
         './runtime/log',
        'level' =>
         ['info', 'debug', 'warn', 'error'],
    ],
    
  • 自定义性能中间件:创建app/middleware/PerformanceMiddleware.php,记录请求开始与结束时间,计算耗时并写入日志:
    namespace app\middleware;
        
    use think\facade\Log;
        
    use think\middleware\BaseMiddleware;
    
    class PerformanceMiddleware extends BaseMiddleware {
    
        public function handle($request, \Closure $next) {
        
            $start = microtime(true);
        
            $response = $next($request);
        
            $cost = microtime(true) - $start;
    
            Log::info("请求耗时: {
    $cost}
        秒");
        
            return $response;
    
        }
    
    }
        
    
  • 注册中间件:在application/middleware.php中添加自定义中间件:
    return ['app\middleware\PerformanceMiddleware'];
        
    
  • 错误监控:在application/config.php中开启错误日志与详细格式:
    'error_reporting' =>
         E_ALL,
    'error_log' =>
         './runtime/error.log',
    'exception_format' =>
     'json',
    
    通过try-catch捕获异常并记录详细信息:
    try {
    
        // 业务逻辑
    }
     catch (\Exception $e) {
        
        \think\facade\Log::error("捕获异常: " . $e->
        getMessage());
        
        return json(['status' =>
         500, 'msg' =>
         '服务器内部错误']);
    
    }
        
    

三、专业APM监控:第三方工具集成

1. Datadog

Datadog提供应用性能管理(APM)与基础设施监控,支持ThinkPHP应用的深度性能分析。

  • 集成步骤
    • 安装Datadog PHP库:composer require datadog/php-datadogstatsd
    • 配置参数:创建config/datadog.php,设置Agent地址、端口、应用名称及标签:
      return [
          'host' =>
           'localhost',
          'port' =>
           8125,
          'namespace' =>
           'thinkphp_app',
          'tags' =>
           ['env:production'],
      ];
          
      
    • 注册服务提供者:在provider.php中绑定Datadog实例:
      namespace app;
          
      use think\Service;
          
      use DataDog\DogStatsd;
      
      class DatadogService extends Service {
      
          public function register() {
          
              $this->
          app->
      bind('datadog', function() {
          
                  $config = config('datadog');
          
                  return new DogStatsd($config);
      
              }
          );
      
          }
      
      }
      
      
    • 记录指标:在控制器中使用app('datadog')记录执行时间(如index方法耗时):
      public function index() {
          
          $datadog = app('datadog');
          
          $start = microtime(true);
          
          // 业务逻辑
          $elapsed = microtime(true) - $start;
          
          $datadog->
          timing('thinkphp.index_execution_time', $elapsed);
          
          return 'Hello, ThinkPHP!';
      
      }
          
      

2. Prometheus + Grafana

通过Prometheus采集指标,Grafana实现可视化监控,适合大规模分布式系统。

  • 部署流程
    • 安装Prometheus:在Ubuntu上下载Prometheus二进制文件并配置prometheus.yml,添加ThinkPHP应用的抓取目标(需ThinkPHP暴露/metrics接口)。
    • 暴露指标:在ThinkPHP中通过中间件或库(如think-prometheus)生成并暴露Prometheus格式的指标(如请求总数、错误数、响应时间)。
    • 配置Grafana:添加Prometheus为数据源,在Grafana中创建仪表盘,展示CPU使用率、内存占用、请求延迟等指标。

四、基础系统资源监控:命令行与图形化工具

1. 命令行工具

  • top/htop:实时查看系统进程的CPU、内存占用(top为默认工具,htop需通过sudo apt-get install htop安装,界面更友好)。
  • ps:查看指定PHP进程的资源使用情况(如ps aux | grep php)。
  • vmstat/iostat/sar:监控系统整体资源(如vmstat 1查看内存、CPU、IO状态,iostat -x 1查看磁盘IO,sar -u 1查看CPU利用率)。

2. 图形化工具

  • Glances:跨平台系统监控工具,支持Ubuntu终端与Web界面,可查看CPU、内存、磁盘、网络等实时数据(安装:sudo apt-get install glances,运行:glances)。
  • System Monitor:Ubuntu自带图形化工具,通过“系统→系统监视器”访问,直观展示系统资源使用情况及进程管理。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu上thinkphp项目的监控方案
本文地址: https://pptw.com/jishu/725498.html
ubuntu中thinkphp的模板引擎使用指南 thinkphp在ubuntu中的性能测试方法

游客 回复需填写必要信息