设为首页 收藏本站
查看: 1075|回复: 0

[经验分享] nginx 支持lua及lua脚本格式化日志

[复制链接]

尚未签到

发表于 2018-11-12 13:21:06 | 显示全部楼层 |阅读模式
#cd /app/local/nginx/lua/  
#vim parse.lua
  
local args = {}
  
args = ngx.req.get_uri_args()
  
local v_prev = ""
  
local sp = "\""
  
for key,val in pairs(args) do
  
    if key == nil or val == nil then
  
    else
  
        v_prev = v_prev .. sp ..  key .. sp .. ":" .. sp .. val .. sp .. ","
  
    end
  
end
  
function isnil(value)
  
    if value == nil then
  
        value = "-"
  
    end
  
    return value
  
end
  
local logContent = ""
  
if v_prev ~= nil then
  
    local http_cdn_src_ip = isnil(ngx.var.http_cdn_src_ip)
  
    local time_local = isnil(ngx.var.time_local)
  
    local status = isnil(ngx.var.status)
  
    local body_bytes_sent = isnil(ngx.var.body_bytes_sent)
  
    local request_body = isnil(ngx.var.request_body)
  
    local content_length = isnil(ngx.var.content_length)
  
    local http_referer = isnil(ngx.var.http_referer)
  
    local http_user_agent = isnil(ngx.var.http_user_agent)
  
    local http_x_forwarded_for = isnil(ngx.var.http_x_forwarded_for)
  
    local remote_addr = isnil(ngx.var.remote_addr)
  
    local upstream_response_time = isnil(ngx.var.upstream_response_time)
  
    local request_time = isnil(ngx.var.request_time)
  
    local http_x_trace_code = isnil(ngx.var.http_x_trace_code)
  
    logContent = "{\"http_cdn_src_ip\":" .. sp .. http_cdn_src_ip .. sp .. ",\"time_local\":" .. sp .. time_local .. sp  .. ",\"request\":" ..  "{" .. string.sub(v_prev,1,#v_prev-1) ..  "}" .. ",\"status\":" .. sp .. status .. sp .. ",\"body_bytes_sent\":" .. sp .. body_bytes_sent .. sp .. ",\"request_body\":" .. sp .. request_body .. sp .. ",\"content_length\":" .. sp .. content_length .. sp .. ",\"http_referer\":" .. sp .. http_referer .. sp .. ",\"http_user_agent\":" .. sp .. http_user_agent .. sp .. ",\"http_x_forwarded_for\":" .. sp .. http_x_forwarded_for .. sp .. ",\"remote_addr\":" .. sp .. remote_addr .. sp .. ",\"upstream_response_time\":" .. sp .. upstream_response_time .. sp .. ",\"request_time\":" .. sp .. request_time .. sp .. ",\"http_x_trace_code\":" .. sp .. http_x_trace_code .. sp .. "}"
  
    local file = io.open("/app/data/log/nginx/ckl_access.log","a")
  
    local hc = "\n"
  
    file:write(logContent)
  
    file:write(hc)
  
    file:close()
  
end
  
ngx.status = 200
  
ngx.exit(0)



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-634198-1-1.html 上篇帖子: nginx日志输出自定义header头字段 下篇帖子: 流媒体服务器之nginx的RTMP集成FFmpeg转码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表