当前位置:首页 > 其它技术 > 正文内容

Nginx 日志配置Json格式

曾经4周前 (06-21)其它技术1459

nginx日志输出配置json格式


nginx服务器日志相关指令主要有两条:

(1) 一条是log_format,用来设置日志格式

(2) 另外一条是access_log,用来指定日志文件的存放路径、格式和缓存大小。


log_format指令用来设置日志的记录格式,它的语法如下:

log_format name format {format ...} 其中name表示定义的格式名称,format表示定义的格式样


官网详细说明

修改nginx.conf配置文件

http {
    include       mime.types;
    default_type  application/octet-stream;
    charset  utf-8;
    
    # 原有日志格式,不能注释或者去掉
    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; # 引用日志格式名称
 
    (省略内容)
}


在 Nginx 的配置文件nginx.conf中,我们定义了两种的日志格式:main和log_json,其中main为普通的文本格式,log_json为 json 格式。


log_json其实就是手工构造一个 json 字符串。定义了 json 的日志格式后,便可以指定 access log 为 json 格式,修改 Nginx 的配置,重启 Nginx ,便可以看到 json 格式的日志,重启 Nginx。



总结:
1、原有的日志格式不能注释或者去掉,只能新增一个log_format
2、新增自定义一份日志记录格式,需要注意,log_format指令设置的名称在配置文件中是不能重复的(比如我json日志格式名称 json)
3、原有的日志格式如果调整了,需要在log后加上名称才生效

Nginx日志常用参数详解

    log_format json '{"@timestamp":"$time_iso8601",'
                     '"scheme":"$scheme",'
                     '"http_referer":"$http_referer",'
                     '"args":"$args",'
                     '"http_user_agent":"$http_user_agent",'
                     '"remote_addr":"$remote_addr",'
                     '"hoste":"$host",'
                     '"server_name":"$server_name",'
                     '"server_protocol":"$server_protocol",'
                     '"request_method":"$request_method",'
                     '"request_uri":"$request_uri",'
                     '"uri":"$uri",'
                     '"request_length":"$request_length",'
                     '"body_byte_sent": "$body_bytes_sent",'
                     '"request_time":"$request_time",'
                     '"server_addr":"$server_addr",'
                     '"status": $status,'
                     '"bytes_sent":"$bytes_sent",'
                     '"upstream_addr":"$upstream_addr",'
                     '"upstream_status":"$upstream_status",'
                     '"upstream_connect_time":"$upstream_connect_time",'
                     '"upstream_response_time":"$upstream_response_time",'
                     '"request_id":"$request_id"'
                     '}';
 
可以加上这些:
$request_filename:当前请求的文件路径,由root或alias指令与URI请求生成。
$http_cookie:客户端cookie信息
$http_host #请求地址,即浏览器中你输入的地址(IP或域名)
$server_port:请求到达服务器的端口号。
$connection_requests 当前通过一个连接获得的请求数量。

$remote_addr:记录访问网站的客户端地址

$remote_user:远程客户端用户名称

$time_local:记录访问时间与时区

$request:表示request请求头的行


$status:http状态码,记录请求返回的状态,例如:200、404、301等

$body_bytes_sent:服务器发送给客户端的响应body字节数,发送给客户端的文件主体内容的大小,比如899,可以将日志每条记录中的这个值累加起来以粗略估计服务器吞吐量。


$http_referer:记录此次请求是从哪个链接访问过来的,可以根据refer进行防盗链设置

$http_user_agent:记录客户端访问信息,例如:浏览器,手机客户端等


$http_x_forwarded_for:客户端的真实ip,通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

$http_host 请求地址,即浏览器中你输入的地址(IP或域名)

$ssl_protocol:SSL协议版本

$ssl_cipher:交换数据中的算法

$upstream_status:upstream状态,比如成功是200

$upstream_addr:当ngnix做负载均衡时,可以查看后台提供真实服务的设备

$upstream_response_time:请求过程中,upstream响应时间


$request_time:整个请求的总时间,请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。

$args:这个变量等于请求行中的参数,同$query_string

$content_length:请求头中的Content-length字段。

$content_type:请求头中的Content-Type字段。

$document_root:当前请求在root指令中指定的值。

$host:请求主机头字段,否则为服务器名称。

$http_user_agent:客户端agent信息

$http_cookie:客户端cookie信息

$limit_rate:这个变量可以限制连接速率。

$request_method:客户端请求的动作,通常为GET或POST。

$remote_addr:客户端的IP地址。

$remote_port:客户端的端口。

$remote_user:已经经过Auth Basic Module验证的用户名。

$request_filename:当前请求的文件路径,由root或alias指令与URI请求生成。

$scheme:HTTP方法(如http,https)。

$server_protocol:请求使用的协议,通常是HTTP/1.0或HTTP/1.1。

$server_addr:服务器地址,在完成一次系统调用后可以确定这个值。

$server_name:服务器名称。

$server_port:请求到达服务器的端口号。

$request_uri:包含请求参数的原始URI,不包含主机名,如:”/foo/bar.php?arg=baz”。

$uri:不带请求参数的当前URI,$uri不包含主机名,如”/foo/bar.html”。

$document_uri:与$uri相同。

  

Nginx还可以这样

[apps@ngx-ali01 conf]$ cat nginx.conf
user  apps apps;
worker_processes  auto;
 
error_log /apps/svr/tengine/logs/nginx_error.log error;
pid /apps/svr/tengine/logs/nginx.pid;
 
worker_rlimit_nofile 65535;
 
events {
    use epoll;
    worker_connections  65535;
}
 
 
http {
      log_format main '{"@timestamp":"$time_iso8601",'
                        '"@source":"$server_addr",'
                        '"idc":"huzhou",'
                        '"http_cookie":"$http_cookie",'
                        '"hostname":"$hostname",'
                        '"ip":"$http_x_forwarded_for",'
                        '"client":"$remote_addr",'
                        '"request_method":"$request_method",'
                        '"scheme":"$scheme",'
                        '"domain":"$server_name",'
                        '"referer":"$http_referer",'
                        '"request":"$request_uri",'
                        '"args":"$args",'
                        '"size":$body_bytes_sent,'
                        '"request_body":"$request_body",'
                        '"status": $status,'
                        '"responsetime":$request_time,'
                        '"upstreamtime":"$upstream_response_time",'
                        '"upstreamaddr":"$upstream_addr",'
                        '"http_user_agent":"$http_user_agent",'
                        '"https":"$https"'
                        '}';
 
        access_log /apps/svr/tengine/logs/access.log main;
 
        limit_conn_zone $server_name zone=perserver:10m;
        limit_conn_zone $binary_remote_addr zone=perip:20m;
#       limit_req_zone $rt_filtered_ip zone=qps:10m rate=30r/s;
 
        include mime.types;
        default_type    application/octet-stram;
        server_tokens   off;
        server_tag      off;
        server_info     off;
        server_names_hash_bucket_size 128;
        sendfile        on;
        keepalive_timeout 65;
        gzip  on;
        gzip_http_version 1.1;
        gzip_vary on;
        gzip_comp_level 6;
        gzip_proxied any;
        gzip_types text/plain  text/css application/json  application/x-javascript text/xml application/xml application/xml+rss text/javascript application/x-shockwave-flash image/png image/x-icon image/gif image/jpeg;
        gzip_buffers 16 8k;
        proxy_temp_path /dev/shm/temp;
        proxy_cache_path /dev/shm/cache levels=2:2:2 keys_zone=cache_go:20m inactive=1d max_size=2g;
 
        vhost_traffic_status_zone;
        vhost_traffic_status_filter_by_host on;
        include conf.d/*.conf;
        include ztoky_cn/*.conf;
}





扫描二维码推送至手机访问。

版权声明:本文由珍惜发布,如需转载请注明出处。

本文链接:https://www.zp68.com/article/64.html

分享给朋友:

“Nginx 日志配置Json格式” 的相关文章

SQLite3数据类型

SQLite 中的数据类型官网说明1. SQLite 中的数据类型大多数 SQL 数据库引擎(据我们所知,除 SQLite 之外的所有 SQL 数据库引擎)都使用静态、刚性类型。使用静态类型时,值的数据类型由其容器(存储值的特定列)决定。SQLite 使用更通用的动态类型系统。在 SQLi...

判断搜索引擎真假蜘蛛访问

主流搜索引擎蜘蛛抓取网站,都会自带UA特征,比如百度蜘蛛UA(Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)。在网站的访问日志中也会相应记录,但UA是可以伪造的,目前越来越多伪造U...

评论列表

游客
1周前 (07-11)

求加**!http://q44.hooby.cn

游客
1周前 (07-11)

论坛的人气越来越旺了!http://zo0r8.ooocr.com/4/4.html

游客
1周前 (07-11)

好无聊啊!http://www.2qukuai.com

游客
1周前 (07-11)

有钱、有房、有车,人人都想!http://www.gxmlm.com

游客
1周前 (07-11)

我只是来赚积分的!http://qjlk1d.zhoutan.net

游客
1周前 (07-11)

对牛弹琴的人越来越多了!http://s1hgf.schhzsjt.com

游客
1周前 (07-11)

读了楼主的帖子,顿时马桶就通了。。。http://cawv1.7cctw.com/30/5.html

游客
7天前

语言表达流畅,没有冗余,读起来很舒服。http://gb5u6v.dreamlalinen.com

游客
7天前

我裤子脱了,纸都准备好了,你就给我看这个?http://gnpw58.dreamlalinen.com

游客
7天前

支持一下,下面的保持队形!http://mek5.lkjk.cn

游客
7天前

写得实在太好了,我唯一能做的就是默默顶贴!http://104w.gzcyoooooo.net

游客
7天前

我默默的回帖,从不声张!http://jfkr.qy189.com

游客
7天前

好无聊啊!http://3y47.schtwl.com

游客
7天前

楼主人气很旺!http://www.ddman.net

游客
7天前

东方不败外加灭绝师太啊!http://vpnv.lkjk.cn

游客
7天前

顶顶更健康!http://6h8.sxscwo.com

游客
7天前

楼主好聪明啊!http://crhs.schhzsjt.com

游客
7天前

我只看看不说话。。。http://v87.schhzsjt.com

游客
7天前

楼主你想太多了!http://r4hra.lkjk.cn

游客
7天前

祖国尚未统一,我却天天灌水,好内疚!http://q718.lifeland.com.cn

游客
7天前

楼主英明!http://uy7.sc-mty.cn

游客
7天前

祖国尚未统一,我却天天灌水,好内疚!http://vqu6ph.ncdxjj.com

游客
7天前

支持楼上的!http://6etkz.jbntb168.com/O/5.html

游客
7天前

帖子很有深度!http://zwta3.tuopi120.com

游客
7天前

强,我和我的小伙伴们都惊呆了!http://z75.jxkspx.com

游客
7天前

这一年啥事没干,光研究楼主的帖子了!http://6w7bn4.whjttm.cn

游客
7天前

学习雷锋,好好回帖!http://518ukf.aochengyy.com

游客
7天前

对牛弹琴的人越来越多了!http://7nh.whjttm.cn

游客
7天前

求加**!http://onahz4.gzcyoooooo.net

游客
7天前

论坛人气好旺!http://k5bp.ads898.com

游客
6天前

这么版块的帖子越来越有深度了!http://jxvu1.funonghzs.com/07/4.html

游客
6天前

你觉得该怎么做呢?http://cl7e.nonauxsubventions.com

游客
6天前

收藏了,改天让朋友看看!http://kak4c.lkjk.cn

游客
6天前

看了这么多帖子,第一次看到这么高质量内容!http://s875d.91qutao.com/20240712/5.html

游客
6天前

楼主的帖子提神醒脑啊!http://2mrgc.sdjkcy1319.com

游客
6天前

灌水不是我的目的!http://6k61si.bzjhfzzhzs.com

游客
6天前

祖国尚未统一,我却天天灌水,好内疚!http://h9k.shruiduo.com

游客
6天前

网页的加载速度非常快,不会影响用户体验。http://cryptoonair.com/news/21f399618.html

游客
6天前

哥回复的不是帖子,是寂寞!http://77cai.cn/news/58c399581.html

游客
6天前

语言表达流畅,没有冗余,读起来很舒服。http://3hqym.yuansutec.com/01/5.html

游客
6天前

谢谢楼主的分享!http://www.hntbhz.cn/post/10.html

游客
6天前

缺乏激情了!http://46e6g.smnongka.com/9/5.html

游客
6天前

信楼主,考试不挂科!http://jo4.exgwsmyo.com

游客
6天前

语言表达流畅,没有冗余,读起来很舒服。http://fengxinw.com/news/16a399623.html

游客
6天前

楼上的能详细介绍一下么?http://wna.lkjk.cn

游客
5天前

论坛的人气不行了!http://www.kdhlpt.com/yaowen/537840210.html

游客
5天前

看了这么多帖子,第一次看到这么有深度了!http://www.kdhlpt.com/yaowen/063840668.html

游客
5天前

学习雷锋,好好回帖!http://jmbjke.com/news/05f399634.html

游客
5天前

楼主练了葵花宝典吧?http://www.kdhlpt.com/yaowen/891980013.html

游客
5天前

论坛的人气越来越旺了!http://www.kdhlpt.com/yaowen/960423000.html

游客
5天前

最近压力山大啊!http://www.kdhlpt.com/yaowen/989649497.html

游客
5天前

刚看见一个妹子,很漂亮!http://www.kdhlpt.com/yaowen/663770405.html

游客
5天前

文章论点明确,论据充分,说服力强。http://inbp.ynport.net/test/303872575.html

游客
5天前

好东西,学习学习!http://vzze.ynport.net/test/549639680.html

游客
5天前

楼主很有艺术范!http://jwnm.ynport.net/test/946575176.html

游客
5天前

祖国尚未统一,我却天天灌水,好内疚!http://wtzt.ynport.net/test/245480456.html

游客
5天前

楼主的头像能辟邪啊!http://dqgl.ynport.net/test/478204419.html

游客
5天前

楼上的很有激情啊!http://tsbv.ynport.net/test/976450904.html

游客
5天前

今天的心情很不错啊http://fvac.ynport.net/test/639236800.html

游客
5天前

楼上的别说的那么悲观好吧!http://5gl.029yilitong.com

游客
5天前

看帖回帖一条路!http://o10.lkjk.cn

游客
5天前

这个帖子好无聊啊!http://mlqo.ynport.net/test/373536030.html

游客
5天前

楼主该去看心理医生了!http://pdga.ynport.net/test/454788890.html

游客
5天前

看帖不回帖都是耍流氓!http://kdvx.ynport.net/test/608527593.html

游客
5天前

宇宙第一贴诞生了!http://jukx.ynport.net/test/464674125.html

游客
5天前

这个帖子会火的,鉴定完毕!http://hsvh.ynport.net/test/791923976.html

游客
5天前

楼主的帖子提神醒脑啊!http://zdka.ynport.net/test/423793233.html

游客
5天前

楼主看起来很有学问!http://eamm.ynport.net/test/272603733.html

游客
5天前

今天上网不回帖,回帖就回精华帖!http://ucyb.ynport.net/test/452505784.html

游客
5天前

楼主是男的还是女的?http://fgxn.ynport.net/test/723298871.html

游客
5天前

楼主说的我也略懂!http://www.hntbhz.cn/post/24.html

游客
5天前

学习雷锋,好好回帖!http://vjyw.ynport.net/test/352652909.html

游客
5天前

今天的心情很不错啊http://yryo.ynport.net/test/602507142.html

游客
5天前

楼主发几张靓照啊!http://ojws.ynport.net/test/036198995.html

游客
5天前

论坛人气好旺!http://8ymh28.lkjk.cn

游客
5天前

楼上的这是啥态度呢?http://ukeg.ynport.net/test/427439044.html

游客
5天前

刚分手,心情不好!http://nken.ynport.net/test/710972532.html

游客
5天前

不错的帖子,值得收藏!http://zodj.ynport.net/test/189560124.html

游客
5天前

楼主最近很消极啊!http://kndj.ynport.net/test/422905318.html

游客
5天前

顶顶更健康!http://ndje6.tiyimei.com/01/3.html

游客
5天前

雷锋做好事不留名,都写在帖子里!http://bgb.3xyq.com

游客
5天前

突然觉得楼主说的很有道理,赞一个!http://kckr.ynport.net/test/296873761.html

游客
5天前

楼上的很有激情啊!http://gmnv.ynport.net/test/087232065.html

游客
5天前

没人理我,好伤心啊!http://hkyu.ynport.net/test/398489260.html

游客
5天前

很有品味!http://nvqs.ynport.net/test/187737929.html

游客
5天前

顶顶更健康!http://yryy.ynport.net/test/208585341.html

游客
5天前

有内涵!http://wpyt.ynport.net/test/550004820.html

游客
5天前

灌水不是我的目的!http://bamp.ynport.net/test/657890126.html

游客
5天前

今天是个特别的日子,值得纪念!http://xvrk.ynport.net/test/445665256.html

游客
5天前

我和我的小伙伴都惊呆了!http://tcof.ynport.net/test/396703880.html

游客
5天前

感觉不错!http://fwvj.ynport.net/test/777624938.html

游客
5天前

看在楼主的面子上,认真回帖!http://sf5b.tjlxygg.com

游客
5天前

这位作者的文笔极其出色,用词精准、贴切,能够形象地传达出他的思想和情感。http://xyng.ynport.net/test/046226370.html

游客
5天前

论坛的人气不行了!http://rwzq.ynport.net/test/618864274.html

游客
5天前

楼上的这是啥态度呢?http://zhks.ynport.net/test/785003617.html

游客
5天前

收藏了,怕楼主删了!http://pbrj.ynport.net/test/513461296.html

游客
5天前

支持一下,下面的保持队形!http://goue.ynport.net/test/680888248.html

游客
5天前

楼主很有经验啊!http://papd.ynport.net/test/999427040.html

游客
5天前

关注一下!http://tstw.ynport.net/test/530320666.html

游客
5天前

支持一个http://okfq.ynport.net/test/817543582.html

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。