1. 程式人生 > 其它 >欄位定義_kubernetes自定義ingresnginx日誌新增cookie Header欄位

欄位定義_kubernetes自定義ingresnginx日誌新增cookie Header欄位

技術標籤:欄位定義

配置ingress uuid欄位 需要把cookie欄位新增到日誌中方便業務分析,方法和nginx配置差不多

獲取cookie欄位新增到log-format-upstream 日誌格式裡

修改ingres configmap檔案 json日誌格式新增自定義的cookie欄位”user_id”: “$affefdgx_id”}

apiVersion:v1
data:
log-format-upstream:'{"time":"$time_iso8601","remote_addr":"$remote_addr","x-forward-for":
"$proxy_add_x_forwarded_for","request_id":"$req_id","remote_user":"$remote_user","bytes_sent":
"$bytes_sent","request_time":"$request_time","status":"$status","vhost":"$host","request_proto":
"$server_protocol","path":"$uri","request_query":"$args","request_length":"$request_length","duration":
"$request_time","method":"$request_method","http_referrer":"$http_referer","http_user_agent":
"$http_user_agent","user_id":"$affefdgx_id"}'
kind:ConfigMap
metadata:
annotations:
labels:
app:ingress-nginx
name:nginx-configuration
namespace:ingress-nginx

修改ingress物件 通過annotations的nginx.ingress.kubernetes.io/server-snippet:

nginx.ingress.kubernetes.io/server-snippet:|
set$affefdgx_id"-";
if($http_cookie~*"affefdgx=(\S+)(;.*|$)"){
set$affefdgx_id$1;
}

完成配置日誌裡面檢視對於的json欄位

5fe62f279f2136f3648cc15dc236974d.png

** 獲取ingress-nginx記錄使用者請求Header 把自定義頭部加入日誌**

引數詳解http_NAME #匹配任意請求頭欄位;變數名中的後半部分NAME可以替換成任意請求頭欄位,如在配置檔案中需要獲取http請求頭:"Accept-Language",http_accept_language即可 可在自定義header欄位前加http_,即可將指定的自定義header欄位列印到log中

apiVersion:v1
data:
log-format-upstream:'{"time":"$time_iso8601","remote_addr":"$remote_addr","x-forward-for":
"$proxy_add_x_forwarded_for","request_id":"$req_id","remote_user":"$remote_user","bytes_sent":
"$bytes_sent","request_time":"$request_time","status":"$status","vhost":"$host","request_proto":
"$server_protocol","path":"$uri","request_query":"$args","request_length":"$request_length","duration":
"$request_time","method":"$request_method","http_referrer":"$http_referer","http_user_agent":
"$http_user_agent","wx_uuid":"$http_useruuid"}'
kind:ConfigMap