首页 > 系统相关 >nginx日志格式

nginx日志格式

时间:2024-08-29 09:07:15浏览次数:8  
标签:status http log access nginx conf 格式 日志

ngx_http_log_module

ngx_http_log_module模块
  指定日志格式记录请求

log_format name string ...;
  string可以使用nginx核心模块及其它模块内嵌的变量  

  Default: log_format combined "...";
  Context: http

access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];

access_log off; #禁用访问日志

  Default: access_log logs/access.log combined;
  Context: http, server, location, if in location, limit_except

 

访问日志文件路径,格式及相关的缓冲的配置
  buffer=size
  flush=time


log日志在服务运行期间可以备份或清零,最好不要直接删除,否则,会应为日志文件不存在后续日志不会继续写,需要重启服务器,才能再生成日志文件

①#cat /dev/null >logfile
②#>logfile #有的shell不支持

 

open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];   open_log_file_cache off;

  Default: open_log_file_cache off;
  Context: http, server, location

缓存各日志文件相关的元数据信息   max:缓存的最大文件描述符数量   min_uses:在inactive指定的时长内访问大于等于此值方可被当作活动项   inactive:非活动时长   valid:验证缓存中各缓存项是否为活动项的时间间隔

 

1、虚拟主机生产自己独立的日志文件

配置:

[[email protected] conf.d]# vi /apps/nginx4/conf/conf.d/test.conf
server {
        server_name www.magedu.org;
        root /data/site14/;
        access_log /apps/nginx4/logs/magedu.org.access.log main;    
        location /echo {
        #set $opt "hello,";
        echo hello;
        echo world;

        echo 'host:' $host;
        echo 'remote_addr:' $remote_addr
        echo 'args:' $args;
        echo 'document_root' $document_root;
        echo 'http_user_agent' $http_user_agent;
        echo ;
        default_type text/html;
        }
}

测试:

[[email protected] conf.d]# cp /var/log/messages-20210307 /data/site14/messages
[[email protected] conf.d]# chmod 644 /messages   #默认600权限,这样http://www.magedu.org/messages报错403
[[email protected] conf.d]# tail -f magedu.org.access.log
10.0.0.1 - - [07/Mar/2021:09:12:56 +0800] "GET /messages HTTP/1.1" 200 632260 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" "-"

2、自定义json日志格式

配置:

[[email protected] conf.d]# vi /apps/nginx4/conf/nginx.conf       #log_format只能http语句块设置
log_format access_json '{"@timestamp":"$time_iso8601",'        #和apache定义log_format语法有点区别,apapche的access_json写在格式后边
                '"host":"$server_addr",'
                '"clientip":"$remote_addr",'
                '"size":$body_bytes_sent,'
                '"responsetime":$request_time,'
                '"upstreamtime":"$upstream_response_time",'
                '"upstreamhost":"$upstream_addr",'
                '"http_host":"$host",'
                '"uri":"$uri",'
                '"domain":"$host",'
                '"xff":"$http_x_forwarded_for",'
                '"referer":"$http_referer",'
                '"tcp_xff":"$proxy_protocol_addr",'
                '"http_user_agent":"$http_user_agent",'
                '"status":"$status"}';

测试:

[[email protected] conf.d]# tail -f magedu.org.access.log
{"@timestamp":"2021-03-07T09:53:40+08:00","host":"10.0.0.126","clientip":"10.0.0.125","size":632260,"responsetime":0.039,
"upstreamtime":"-","upstreamhost":"-","http_host":"www.magedu.org","uri":"/messages","domain":"www.magedu.org","xff":"-",
"referer":"-","tcp_xff":"","http_user_agent":"ApacheBench/2.3","status":"200"}

 

附件:

1、python处理json格式日志脚本:

#!/usr/bin/env python
#coding:utf-8
status_200= []
status_404= []
with open("access_json.log") as f:
  for line in f.readlines():
    line = eval(line)
    if line.get("status") == "200":
      status_200.append(line.get)
    elif line.get("status") == "404":
      status_404.append(line.get)
    else:
      print("状态码 ERROR")
f.close()
print "状态码200的有--:",len(status_200)
print "状态码404的有--:",len(status_404)

测试结果示例: 状态码200的有--: 100 状态码404的有--: 0

 

标签:status,http,log,access,nginx,conf,格式,日志
From: https://www.cnblogs.com/cnblogsfc/p/14517418.html

相关文章

  • nginx第三方模块echo和变量
    第三方模块:echo第三模块是对nginx的功能扩展,第三方模块需要在编译安装nginx的时候使用参数--add-module=PATH指定路径添加,有的模块是由公司的开发人员针对业务需求定制开发的,有的模块是开源爱好者开发好之后上传到github进行开源的模块,nginx支持第三方模块,需要重新编译源码......
  • nginx输出nginx的基本状态信息
    输出nginx的基本状态信息模块:ngx_http_stub_status_module输出信息示例:Activeconnections:291server   accepts  handled  requests#下面三个数分别对应accepts,handled,requests      166309481663094831070465Reading:6Writing:179Wait......
  • nginx 压缩gzip
    ngx_http_gzip_modulengx_http_gzip_module用gzip方法压缩响应数据,节约带宽gzipon|off;启用或禁用gzip压缩Default: gzipoff;Context: http,server,location,ifinlocationgzip_comp_levellevel;消耗CPU 压缩比由低到高:1到9,默认:1 gzip_di......
  • nginx favicon.ico
    favicon.ico文件是浏览器收藏网址时显示的图标,当使用浏览器访问页面时,浏览器会自己主动发起请求获取页面的favicon.ico文件,但是当浏览器请求的favicon.ico文件不存在时,服务器会记录404日志,而且浏览器也会显示404报错(F12查看浏览器请求情况) 解决方案:1、不加favicon.ico......
  • nginx之ssl认证(https访问)
    ngx_http_ssl_modulengx_http_ssl_module模块:sslon|off;为指定虚拟机启用HTTPSprotocol,建议用listen指令代替ssl_certificatefile; 当前虚拟主机使用PEM格式的证书文件ssl_certificate_keyfile;......
  • keepalived-状态邮件通知和定向日志输出
    keepalived-状态邮件通知和定向日志输出说明1:当keepalived实例角色切换时,根据自定义邮件脚本,推送本地邮件通知说明2:当keepalived实例角色切换时,根据自定义邮件脚本,推送互联网邮件通知说明3:默认keepalive状态日志写入/var/log/messages文件拓扑: 环境说明:......
  • nginx
    一、I/O模型二、nginx概述官网:http://nginx.org 2.1、nginx介绍nginx:engineX,是由1994年毕业于俄罗斯国立莫斯科鲍曼科技大学的同学为俄罗斯rambler.ru公司开发的,开发工作最早从2002年开始,第一次公开发布时间是2004年10月4日,版本号是0.1.0nginx......
  • Nginx 的编译并打包成二.txt
    Nginx的编译并打包成二进制文件是一个涉及源代码编译和静态链接的过程。‌下面是一个简单的步骤说明,‌帮助你从源代码编译Nginx并生成一个可独立运行的二进制文件。‌安装依赖首先,‌确保你的系统上安装了编译Nginx所需的依赖项。‌对于大多数Linux发行版,‌你可能需要安......
  • mysql格式化日期
    mysql查询记录如果有时间戳字段时,查看结果不方便,不能即时看到时间戳代表的含义,现提供mysql格式换时间函数,可以方便的看到格式化后的时间。1.DATE_FORMAT()函数用于以不同的格式显示日期/时间数据。DATE_FORMAT(date,format)format参数的格式有 %a缩写星期名%b......
  • C/C++实现JSON格式数据解析
    参考文章推荐以下几篇,针对Cjson的应用写的很详细,感谢!!!https://blog.csdn.net/xiaopengX6/article/details/104629606https://liang.blog.csdn.net/article/details/86605234运用场景在做C的项目时,对方通过TCP套接字将内容按照帧头+帧体的格式发送过来,其中帧体的内容是JSON格式......