nginx日志输出配置json格式

1 介绍

在做大数据分析的时候,需要收集nginx日志,常用json格式,默认nginx日志不方便处理

参数

变量描述demo
$remote_addr客户端的ip地址
$remote_user客户端用户名称,一般默认为空
$statusHTTP请求状态‘404’页面找不到 ‘200’成功
$time_local记录访问时间和时区日期格式:20/Feb/2022:18:15:10 +0800
$time_iso8601记录访问时间和时区2022-05-20T14:15:18+08:00
$request用于记录请求的url以及请求方法“GET /free.php?proxy=in_tp HTTP/1.1”
$request_method用于记录请求的url以及请求方法GET、POST
$args请求中的参数值
$request_body客户端的请求主体,此变量可以在location中使用,将请求主体通过proxy_pass,fastcgi_pass,uwsgi_pass和scgi_pass传递给下一级的代理
$request_length请求的长度(包括请求的地址,http请求头和请求主体)
$request_time整个请求的总时间,从接收用户请求的第一个字节到发送完响应数据的时间,即包括接收请求数据时间,程序响应时间,输出响应数据时间
$http_host
$http_x_forwarded_for
$http_true_client_ip客户端的真实ip地址
$http_refererurl跳转来源,用来记录从哪个页面链接访问过来的
$http_user_agent用户所使用的代理一般为浏览器
$http_accept_language用户浏览器语言es-ES,es;q=0.8
$upstream_statusupstream状态例如 200
$upstream_addr后台提供服务的地址(即转发处理的目标地址)
$upstream_response_time从nginx向后端建立连接开始到接受完数据然后关闭连接为止的时间
$bytes_sent传输给客户端的全部字节数,包含响应头等信息
$body_bytes_sent给客户端发送的文件主题内容字节数,响应头不计算在内
$ssl_protocolSSL协议版本TLSv1、TLSv2
$ssl_cipherSSL协议的交换数据中的算法RC4-SHA,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-GCM-SHA384
$uri请求中的当前URI(不带请求参数,参数位于$args)
$geoip_country_code用户地理位置代码(国家代码)

2 修改nginx配置

nginx.conf

http {
    include       mime.types;
    default_type  application/octet-stream;
	
	# 原有日志格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" $request_time';
    # json日志格式
    log_format log_json '{"@timestamp": "$time_local", '
                        '"remote_addr": "$remote_addr", '
                        '"referer": "$http_referer", '
                        '"request": "$request", '
                        '"status": $status, '
                        '"bytes": $body_bytes_sent, '
                        '"agent": "$http_user_agent", '
                        '"x_forwarded": "$http_x_forwarded_for", '
                        '"up_addr": "$upstream_addr",'
                        '"up_host": "$upstream_http_host",'
                        '"up_resp_time": "$upstream_response_time",'
                        '"request_time": "$request_time"'
                        ' }';

    access_log  logs/access.log log_json; # 引用日志格式名称

	...

3 启动

删除原来的 access.log

重新启动nginx

/usr/local/nginx/sbin/nginx -s reload
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有勇气的牛排

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值