通过Nginx采集后台服务接口访问日志

本文介绍了如何通过Nginx的openresty版本采集后台服务接口访问日志,包括配置Nginx的日志格式为JSON,设置日志切分脚本以及部署日志读取存储程序来将数据存入数据库。
摘要由CSDN通过智能技术生成

通过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;
          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值