通过Nginx采集后台服务接口访问日志
采用的是openresty1.15版本。
步骤一,Nginx配置
在nginx的nginx.conf中配置以下参数:
-
日志格式化配置
在http或https配置中添加log_format,将访问格式化为json结构。如下:
log_format operatelog escape=json '{"log_id":"$logid","user_id":"$http_userId","system_id":"$http_systemId","client_ip":"$remote_addr","server_ip":"$server_addr","proxypass":"$upstream_addr","request_time":$sibat_timestamp,"request_method":"$request_method","request_status":$status,"cost_time":"$upstream_response_time","user_agent":"$http_user_agent","request_uri":"$uri","referer":"$http_referer","request_param":"$request_body"}';
其中http_userId和http_systemId是来自于解析前端header携带的token。
- 配置日志记录ID
在server配置中添加以下
set_by_lua $operate_timestamp "return tonumber(ngx.var.msec)*1000"; set_by_lua $operate_rdm "return math.random(100000000,os.time())"; set $logid "$operate_timestamp:$operate_rdm:$remote_addr";
完整示例:
server { listen 80; server_name localhost; access_log logs/access.log main; set_by_lua $operate_timestamp "return tonumber(ngx.var.msec)*1000"; set_by_lua $operate_rdm "return math.random(100000000,os.time())"; set $logid "$operate_timestamp:$operate_rdm:$remote_addr"; location / { root html;