最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx日志輸出配置json格式

 更新時(shí)間:2024年07月15日 11:45:46   作者:富士康質(zhì)檢員張全蛋  
本文主要介紹了Nginx日志輸出配置json格式,包含log_format和access_log兩種命令,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

nginx服務(wù)器日志相關(guān)指令主要有兩條:

(1) 一條是log_format,用來設(shè)置日志格式

(2) 另外一條是access_log,用來指定日志文件的存放路徑、格式和緩存大小。

log_format指令用來設(shè)置日志的記錄格式,它的語法如下:
log_format name format {format ...} 其中name表示定義的格式名稱,format表示定義的格式樣

網(wǎng)上統(tǒng)一方法: 修改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; # 引用日志格式名稱
 
    (省略內(nèi)容)
}

在 Nginx 的配置文件nginx.conf中,我們定義了兩種的日志格式:main和log_json,其中main為普通的文本格式,log_json為 json 格式。

log_json其實(shí)就是手工構(gòu)造一個(gè) json 字符串。定義了 json 的日志格式后,便可以指定 access log 為 json 格式,修改 Nginx 的配置,重啟 Nginx ,便可以看到 json 格式的日志,重啟 Nginx。

附加:可能遇到的問題

背景:
  因?yàn)槲疫@邊是通過nginx去代理了很多域名,所以會有很多平臺訪問的日志,通過在nginx.conf主配置文件增加  include vhosts/*.conf; 導(dǎo)入主機(jī)配置,所以會存在一個(gè)server段中只能有一個(gè)名稱的問題。 

正確操作:

修改nginx.conf配置文件

[root@elk-nginx-01 conf]# cd /data/services/nginx/conf/
[root@elk-nginx-01 conf]# pwd
/data/services/nginx/conf
[root@elk-nginx-01 conf]# ll
總用量 72
-rw-r--r-- 1 root root 1077 9月   3 09:45 fastcgi.conf
-rw-r--r-- 1 root root 1077 9月   3 09:45 fastcgi.conf.default
-rw-r--r-- 1 root root 1007 9月   3 09:45 fastcgi_params
-rw-r--r-- 1 root root 1007 9月   3 09:45 fastcgi_params.default
-rw-r--r-- 1 root root 2837 9月   3 09:45 koi-utf
-rw-r--r-- 1 root root 2223 9月   3 09:45 koi-win
-rw-r--r-- 1 root root 5231 9月   3 09:45 mime.types
-rw-r--r-- 1 root root 5231 9月   3 09:45 mime.types.default
-rw-r--r-- 1 root root 3729 9月   3 15:49 nginx.conf
-rw-r--r-- 1 root root 2656 9月   3 13:59 nginx.conf-bak0903
-rw-r--r-- 1 root root 2656 9月   3 09:45 nginx.conf.default
-rw-r--r-- 1 root root  636 9月   3 09:45 scgi_params
-rw-r--r-- 1 root root  636 9月   3 09:45 scgi_params.default
drwxr-xr-x 2 root root  134 9月   3 11:34 sslkeys
-rw-r--r-- 1 root root  664 9月   3 09:45 uwsgi_params
-rw-r--r-- 1 root root  664 9月   3 09:45 uwsgi_params.default
drwxr-xr-x 2 root root   87 9月   3 16:53 vhosts
-rw-r--r-- 1 root root 3610 9月   3 09:45 win-utf
[root@elk-nginx-01 conf]# vim 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 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"'
                        ' }';
 
    #導(dǎo)入主機(jī)配置
    include vhosts/*.conf;
 
    (省略內(nèi)容)
}
保存退出!
 
[root@elk-nginx-01 conf]# pwd
/data/services/nginx/conf
[root@elk-nginx-01 conf]# cd vhosts/
[root@elk-nginx-01 vhosts]# ll
總用量 12
-rw-r--r-- 1 yfbkf yfbkf  921 9月   3 15:37 gonggao.conf
-rw-r--r-- 1 yfbkf yfbkf 1482 9月   3 16:50 gongdan.conf
-rw-r--r-- 1 yfbkf yfbkf 1151 9月   3 14:42 gongmo.conf

然后重啟nginx

總結(jié):
1、原有的日志格式不能注釋或者去掉,只能新增一個(gè)log_format
2、新增自定義一份日志記錄格式,需要注意,log_format指令設(shè)置的名稱在配置文件中是不能重復(fù)的(比如我json日志格式名稱 json)
3、原有的日志格式如果調(diào)整了,需要在log后加上名稱才生效

Nginx日志常用參數(shù)詳解

    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:當(dāng)前請求的文件路徑,由root或alias指令與URI請求生成。
$http_cookie:客戶端cookie信息
$http_host #請求地址,即瀏覽器中你輸入的地址(IP或域名)
$server_port:請求到達(dá)服務(wù)器的端口號。
$connection_requests 當(dāng)前通過一個(gè)連接獲得的請求數(shù)量。
  • $remote_addr:記錄訪問網(wǎng)站的客戶端地址

$remote_user:遠(yuǎn)程客戶端用戶名稱
$time_local:記錄訪問時(shí)間與時(shí)區(qū)
$request:表示request請求頭的行

  • $status:http狀態(tài)碼,記錄請求返回的狀態(tài),例如:200、404、301等
  • $body_bytes_sent:服務(wù)器發(fā)送給客戶端的響應(yīng)body字節(jié)數(shù),發(fā)送給客戶端的文件主體內(nèi)容的大小,比如899,可以將日志每條記錄中的這個(gè)值累加起來以粗略估計(jì)服務(wù)器吞吐量。

$http_referer:記錄此次請求是從哪個(gè)鏈接訪問過來的,可以根據(jù)refer進(jìn)行防盜鏈設(shè)置
$http_user_agent:記錄客戶端訪問信息,例如:瀏覽器,手機(jī)客戶端等

  • $http_x_forwarded_for:客戶端的真實(shí)ip,通常web服務(wù)器放在反向代理的后面,這樣就不能獲取到客戶的IP地址了,通過$remote_add拿到的IP地址是反向代理服務(wù)器的iP地址。反向代理服務(wù)器在轉(zhuǎn)發(fā)請求的http頭信息中,可以增加x_forwarded_for信息,用以記錄原有客戶端的IP地址和原來客戶端的請求的服務(wù)器地址。

$http_host 請求地址,即瀏覽器中你輸入的地址(IP或域名)
$ssl_protocol:SSL協(xié)議版本
$ssl_cipher:交換數(shù)據(jù)中的算法
$upstream_status:upstream狀態(tài),比如成功是200
$upstream_addr:當(dāng)ngnix做負(fù)載均衡時(shí),可以查看后臺提供真實(shí)服務(wù)的設(shè)備
$upstream_response_time:請求過程中,upstream響應(yīng)時(shí)間

  • $request_time:整個(gè)請求的總時(shí)間,請求處理時(shí)間,單位為秒,精度毫秒; 從讀入客戶端的第一個(gè)字節(jié)開始,直到把最后一個(gè)字符發(fā)送給客戶端后進(jìn)行日志寫入為止。

$args:這個(gè)變量等于請求行中的參數(shù),同$query_string
$content_length:請求頭中的Content-length字段。
$content_type:請求頭中的Content-Type字段。
$document_root:當(dāng)前請求在root指令中指定的值。
$host:請求主機(jī)頭字段,否則為服務(wù)器名稱。
$http_user_agent:客戶端agent信息
$http_cookie:客戶端cookie信息
$limit_rate:這個(gè)變量可以限制連接速率。
$request_method:客戶端請求的動作,通常為GET或POST。
$remote_addr:客戶端的IP地址。
$remote_port:客戶端的端口。
$remote_user:已經(jīng)經(jīng)過Auth Basic Module驗(yàn)證的用戶名。
$request_filename:當(dāng)前請求的文件路徑,由root或alias指令與URI請求生成。
$scheme:HTTP方法(如http,https)。
$server_protocol:請求使用的協(xié)議,通常是HTTP/1.0或HTTP/1.1。
$server_addr:服務(wù)器地址,在完成一次系統(tǒng)調(diào)用后可以確定這個(gè)值。
$server_name:服務(wù)器名稱。
$server_port:請求到達(dá)服務(wù)器的端口號。
$request_uri:包含請求參數(shù)的原始URI,不包含主機(jī)名,如:”/foo/bar.php?arg=baz”。
$uri:不帶請求參數(shù)的當(dāng)前URI,$uri不包含主機(jī)名,如”/foo/bar.html”。
$document_uri:與$uri相同。 

[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;
}

到此這篇關(guān)于Nginx日志輸出配置json格式的文章就介紹到這了,更多相關(guān)Nginx日志輸出json內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Nginx如何設(shè)置域名轉(zhuǎn)發(fā)到服務(wù)器指定的端口

    Nginx如何設(shè)置域名轉(zhuǎn)發(fā)到服務(wù)器指定的端口

    這篇文章主要介紹了Nginx如何設(shè)置域名轉(zhuǎn)發(fā)到服務(wù)器指定的端口,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • nginx配置proxy_pass后返回404問題以及Nginx host相關(guān)變量的說明

    nginx配置proxy_pass后返回404問題以及Nginx host相關(guān)變量的說明

    這篇文章主要介紹了nginx配置proxy_pass后返回404問題以及Nginx host相關(guān)變量的說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • nginx配置同一域名同一端口下部署多個(gè)vue項(xiàng)目

    nginx配置同一域名同一端口下部署多個(gè)vue項(xiàng)目

    本文主要介紹了nginx配置同一域名同一端口下部署多個(gè)vue項(xiàng)目,可以根據(jù)根路徑不同分別代理訪問不同項(xiàng)目,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • 高并發(fā)nginx服務(wù)器的linux內(nèi)核優(yōu)化配置講解

    高并發(fā)nginx服務(wù)器的linux內(nèi)核優(yōu)化配置講解

    今天小編就為大家分享一篇關(guān)于高并發(fā)nginx服務(wù)器的linux內(nèi)核優(yōu)化配置講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • nginx代理minio的實(shí)現(xiàn)示例

    nginx代理minio的實(shí)現(xiàn)示例

    本文介紹通過Nginx代理MinIO實(shí)現(xiàn)預(yù)簽名URL的配置方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05
  • nginx配置代理多個(gè)前端資源

    nginx配置代理多個(gè)前端資源

    本文主要介紹了nginx配置代理多個(gè)前端資源,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Nginx之location匹配和Rewrite重寫跳轉(zhuǎn)方式

    Nginx之location匹配和Rewrite重寫跳轉(zhuǎn)方式

    這篇文章主要介紹了Nginx之location匹配和Rewrite重寫跳轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Nginx訪問日志切割的3種實(shí)現(xiàn)方法

    Nginx訪問日志切割的3種實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于Nginx訪問日志切割的3種實(shí)現(xiàn)方法,隨著訪問量的增長,日志文件會越來越大,時(shí)間長既會影響訪問的速度,也會占用一部分磁盤空間,這時(shí)候就需要日志切割了,需要的朋友可以參考下
    2023-08-08
  • Nginx安裝nginx-rtmp-module模塊的實(shí)現(xiàn)

    Nginx安裝nginx-rtmp-module模塊的實(shí)現(xiàn)

    nginx-rtmp-module是一個(gè)用于Nginx的第三方模塊,它使Nginx能夠支持實(shí)時(shí)多媒體流的傳輸和處理,本文主要介紹了Nginx安裝nginx-rtmp-module模塊,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-02-02
  • Nginx反向代理在Web應(yīng)用中的實(shí)戰(zhàn)分享

    Nginx反向代理在Web應(yīng)用中的實(shí)戰(zhàn)分享

    本文將介紹Nginx反向代理的基本原理和配置,以及如何利用Nginx實(shí)現(xiàn)高可用性和故障轉(zhuǎn)移,最后,我們將探討如何監(jiān)控Nginx反向代理的性能并進(jìn)行日志分析,需要的朋友可以參考下
    2024-08-08

最新評論

柯坪县| 台山市| 张家界市| 吉首市| 连平县| 黔江区| 邵东县| 东宁县| 花莲市| 民权县| 政和县| 江都市| 陆川县| 清苑县| 溆浦县| 克山县| 揭西县| 偏关县| 崇仁县| 花垣县| 卢龙县| 罗源县| 麻栗坡县| 图们市| 洪洞县| 宾川县| 普安县| 九龙县| 专栏| 株洲市| 彭泽县| 石嘴山市| 黔东| 滦平县| 德安县| 枣阳市| 绥江县| 岳阳市| 阿克苏市| 伊川县| 新绛县|