gpt4 book ai didi

elasticsearch - Rsyslog模板捕获组

转载 作者:行者123 更新时间:2023-12-03 01:56:32 25 4
gpt4 key购买 nike

我正在创建一个Rsyslog模板以将Apache日志解析为JSON,以便发送到 Elasticsearch 。

我目前正在尝试从access_log捕获请求时间,但似乎无法使我的正则表达式正常工作。

模板常量的Rsyslog配置:

constant(value="\",\"request_time\":\"")     property(name="msg" regex.expression="(\\[(.*)\\])" regex.type="ERE" regex.match="2")

即使regex在rsyslog regex测试页上似乎可以正常工作,我也从中不断得到“NO MATCH”。如果我将regex.match替换为0,则会得到完整的时间戳记,但其中包含我希望避免的[]。

请求示例:
192.168.33.1 - - [30/Mar/2016:08:45:38 +0000] "GET /TEST HTTP/1.1" 404 281 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36"

任何建议,将不胜感激。
谢谢!

最佳答案

我设法通过缩小所需的特定数据而不是“那些方括号之间的任何内容”来使它起作用:

  constant(value="\",\"request_time\":\"")     property(name="msg" regex.expression="([0-9]*\\/[a-zA-Z]*\\/[0-9]*:[0-9]*:[0-9]*:[0-9]{2})" regex.type="ERE" regex.match="0")

关于elasticsearch - Rsyslog模板捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36303897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com