代码之家  ›  专栏  ›  技术社区  ›  Bhanu Praveen

无法通过fluentbit reg-ex解析tomcat localhost访问日志

  •  0
  • Bhanu Praveen  · 技术社区  · 9 月前

    无法使用reg ex通过fluent bit解析tomcat localhost访问日志。以下是我的传入日志:

    127.0.0.1 - - [27/Aug/2024:00:01:48 +0000] "GET /TA HTTP/1.1" 302 - 0
    

    需要输出如下:

    远程主机名:127.0.0.1
    时间日志:2028年8月27日4:00:01:48+0000
    请求:GET/TA HTTP/1.1
    状态代码:302
    字节值:0

    请让我知道在fluent bit中使用ruby-reg-ex来解析相同的代码?

    2 回复  |  直到 9 月前
        1
  •  0
  •   GProst    9 月前
    log = "127.0.0.1 - - [27/Aug/2024:00:01:48 +0000] \"GET /TA HTTP/1.1\" 302 - 0"
    regexp = /(^[^\s]+)[\s-]+\[(.+ \+\d+)] "([^"]+)" (\d+) - (\d+)/
    match = log.match(regexp)
    
    ip = match[1]
    time = match[2]
    request = match[3]
    status_code = match[4]
    bytes_sent = match[5]
    
        2
  •  0
  •   Bhanu Praveen    9 月前

    如果有人需要,也可以用正则表达式尝试另一种方式

    /^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<log_time>[^\]]*)\] "(?<requestmethod>\S+)(?: +(?<urlpath>[^\"]*?)(?: +\S*)?)?" (?<statuscode>[^ ]*) (?<bytessent>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?/