您的位置:68399皇家赌场 > 虚拟主机 > nginx日志配置指令详解

nginx日志配置指令详解

发布时间:2019-05-21 06:03编辑:虚拟主机浏览(105)

    实际上所谓自动分割MongoDB日志文件,正是指Rotate MongoDB log files,即让MongoDB每日(或每一个礼拜,可自定义调控)生成四个日志文件,而不是将MongoDB全部的运转日志都放置在二个文本中,那样种种日志文件都相对一点都不大,定位难题也更便于。

    复制代码 代码如下:

    此意义是为了贯彻,定期监察和控制nginx生成的日志数据,并将激增的数量提交到二个接口(比方大数额的接口,让大额来拓展剖析)

    语法: log_not_found on | off;
    默认值: log_not_found on;
    配置段: http, server, location
    是否在error_log中著录不设有的荒谬。暗中认可是。

    澳门皇家赌场55533网址,上述便是有关MongoDB运行日志自动分割的全体内容了,希望本文的内容对大家的就学或许办事能带来一定的帮手,要是有疑点我们能够留言沟通。

    use admin  //切换到admin数据库
    db.runCommand({logRotate:1})

    内需优化的逻辑:其中等进程挂了,停了1段时间,再运维时,从上次的任务再一次读取,提交的数据会不小,恐怕会抢先提交数据大小的限定

    复制代码 代码如下:

    时至明日,就贯彻了活动分割MongoDB日志,MongoDB每一日都会生成贰个新的日记文件,日志文件的命名带有标识文件日期的光阴戳。

    缓和如下:(极度注意:运转的时候必须是--logpath钦定了log路径的)

    define("MAX_SHOW", 8192*5); //新增数据提交阈值
    define("LOG_NAME", ""); //读取的日志文件
    define("LOG_SIZE", ""); //保留上次读取的位置
    define("LOG_URL", ""); //日志提交地址
    //运行时log文件原始大小
    $log_size    = get_filesize();
    $file_size     = filesize(LOG_NAME);
    if(empty($log_size)){//没有记录上次位置,则从当前位置开始
      $file_size = $file_size;
    }else if($log_size > $file_size){ //说明是第二天的日志文件,指针放到文件头
      $file_size = 0;
    }else{ //从上次记录的位置开始
      $file_size = $log_size;
    }
    $file_size_new   = 0;
    $add_size     = 0;
    $ignore_size   = 0;
    $fp = fopen(LOG_NAME, "r");
    while(1){
      clearstatcache();
      $read_num = 0;
      $file_size_new = filesize(LOG_NAME);
      $add_size = $file_size_new - $file_size;
      $add_data = array();
      $add_log = '';
      if($add_size > 0){
        //大于一个阈值提交数据
        if($add_size > MAX_SHOW){
          fseek($fp, $file_size);
          //当增加量超过8192,需要分页读取增加量
          $page = ceil($add_size/8192);
          for($i=1; $i<=$page; $i  ){
            if($i == $page){//最后一页
              $end_add = $add_size - ($page -1) * 8192;
              $add_log .= fread($fp, $end_add);
            }else{
              $add_log .= fread($fp, 8192);
              $file_size_step = $file_size   $i * 8192;
              fseek($fp, $file_size_step);
            }
          }
          $add_data['add_log'] = $add_log;
          $add_data['add_log'] = base64_encode($add_data['add_log']);
          http_post(LOG_URL, $add_data);
          $file_size = $file_size_new;
          //记录当前位置
          save_filesize($file_size);
        }
      }else if($add_size < 0){ //第二天从头部开始
        $file_size = 0;
      }
      sleep(2);
    }
    fclose($fp);
    /**
     * 每次启动时获取上次打开文件位置
     */
    function get_filesize(){
      $size = file_get_contents(LOG_SIZE);
      return $size;
    }
    /**
     * 每次提交后保存这次读取文件的位置
     */
    function save_filesize($size){
      return file_put_contents(LOG_SIZE, $size);
    }
    /**
     * http请求
     * @param array $data
     * @return boolean
     */
    function http_post($url = '', $data = array())
    {
      if(empty($url)){
        return FALSE;
      }
      if($data){
        $data = http_build_query($data);
      }
      $ch = curl_init ();
      curl_setopt ( $ch, CURLOPT_URL, $url );
      curl_setopt ( $ch, CURLOPT_POST, 1 );
      curl_setopt ( $ch, CURLOPT_HEADER, 0 );
      curl_setopt ( $ch, CURLOPT_TIMEOUT, 5 );
      curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
      curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
      $return = curl_exec ( $ch );
      curl_close ( $ch );
      return $return;
    }
    

    发送给客户端的响应头具有“sent_http_”前缀。 比如$sent_http_content_range。

    vi /etc/crontab
    

    你只怕感兴趣的作品:

    • Node.js和MongoDB达成轻巧日志剖判种类
    • MongoDB运维日志实现活动分割的措施实例
    • nginx日志配置指令详解
    • 落实Nginx中动用PHP-FPM时记下PHP错误日志的布局方式
    • nginx php-fpm中启用慢日志配置(用于检查实验施行异常的慢的PHP脚本)
    • Linux服务器nginx访问日志里冒出大量http 400荒唐的央浼深入分析
    • nginx访问日志并剔除钦命天数前的日记记录配置情势
    • nginx日志切割shell脚本
    • Python 解析Nginx访问日志并保存到MySQL数据库实例
    • 使用MongoDB剖判Nginx日志的措施详解

    正文实例讲述了PHP简单实现定期监察和控制nginx日志文件成效。分享给我们供大家参照他事他说加以调查,具体如下:

    复制代码 代码如下:

    :wq封存,表示配置2个定期任务,定期每一天23:5玖以root身份实行脚本/data/logRotate/logRotate.sh,完成定期自动分割MongoDB日志

    MongoDB的日记文件在设置 logappend=true 的情事下,会不断向同五日志文件扩大的,时间长了,自然变得非常大。

    期望本文所述对我们PHP程序设计有所扶助。

    $remote_addr, $http_x_forwarded_for 记录客户端IP地址
    $remote_user 记录客户端用户名称
    $request 记录请求的U福睿斯L和HTTP协议
    $status 记录请求状态
    $body_bytes_sent 发送给客户端的字节数,不包蕴响应头的尺寸; 该变量与Apache模块mod_log_config里的“%B”参数包容。
    $bytes_sent 发送给客户端的总字节数。
    $connection 连接的系列号。
    $connection_requests 当前透过二个两次三番获得的伸手数量。
    $msec 日志写入时间。单位为秒,精度是微秒。
    $pipe 假若请求是经过HTTP流水生产线(pipelined)发送,pipe值为“p”,不然为“.”。
    $http_referer 记录从哪个页面链接待上访问过来的
    $http_user_agent 记录客户端浏览器相关消息
    $request_length 请求的长度(包括请求行,请求头和呼吁正文)。
    $request_time 请求管理时间,单位为秒,精度纳秒; 从读入客户端的第壹个字节开头,直到把最终一个字符发送给客户端后拓展日志写入截至。
    $time_iso8601 ISO860一标准格式下的本土时间。
    $time_local 通用日志格式下的地点时间。

    三、设置Linux定期职务

    用mongo连接到服务端

    备考:由于日记文件过了凌晨会切割,所以必要做一下判别,决断是第三天的日志须要从日记文件底部进行读取

    语法: access_log path [format [buffer=size [flush=time]]];

    #!/bin/bash 
    #Rotate the MongoDB logs to prevent a single logfile from consuming too much disk space. 
    
    app=mongod 
    
    mongodPath=/usr/local/mongodb/bin/ 
    
    pidArray=$(pidof $mongodPath/$app) 
    
    for pid in $pidArray;do 
    if [ $pid ] 
    then 
     kill -SIGUSR1 $pid 
    fi 
    done 
    
    exit 
    

    诸如此类会使mongo关闭当明日记文件,重启八个新的日记文件,不需求停止mongodb服务。

    愈来愈多关于PHP相关内容感兴趣的读者可查看本站专项论题:《PHP日志操作本领计算》、《php文件操作总括》、《PHP数组(Array)操作能力大全》、《PHP基本语法入门教程》、《php字符串(string)用法总括》、《php mysql数据库操作入门教程》及《php常见数据库操作本领汇总》

    语法: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
    open_log_file_cache off;
    默认值: open_log_file_cache off;
    配置段: http, server, location

    布局MongoDB系统日志保存路线,并铺排logRotate参数为rename

    您可能感兴趣的篇章:

    • PHP完毕服务器状态监察和控制的法门
    • PHP-FPM运转状态的实时查看及监控详解
    • PHP脚本监察和控制Nginx 502破绽百出并机关心珍视启php-fpm
    • php实现监督varnish缓存服务器的事态
    • 福寿康宁Nginx中动用PHP-FPM时记下PHP错误日志的布署格局
    • nginx php-fpm中启用慢日志配置(用于检查评定实行非常的慢的PHP脚本)
    • PHP连接Nginx服务器并解析Nginx日志的方法
    • PHP总括nginx访问日志中的搜索引擎抓取404链接页面路径
    • PHP记录和读取JSON格式日志文件
    • 左右逢源解读PHP的Yii框架中的日志效用

    7. error_log指令

    一、配置MongoDB实例运维参数

    由ngx_http_rewrite_module模块提供的。用来记录重写日记的。对于调节和测试重写规则提议拉开。 Nginx重写规则指南
    语法: rewrite_log on | off;
    默认值: rewrite_log off;
    配置段: http, server, location, if
    启用时就要error log中记录notice等级的重写日志。

    兑现机关分割MongoDB日志的不二诀窍能够参照他事他说加以考察:

    log_format  combined  '$remote_addr - $remote_user  [$time_local]  '
                                       ' "$request"  $status  $body_bytes_sent  '
                                       ' "$http_referer"  "$http_user_agent" ';

    59 23 * * * root /data/logRotate/logRotate.sh 
    

    日志格式允许包涵的变量注释如下:

    本文由68399皇家赌场发布于虚拟主机,转载请注明出处:nginx日志配置指令详解

    关键词: 68399皇家赌场

上一篇:Mongodb的安装及注意事项

下一篇:没有了