【问题标题】:grok skip columns issuegrok跳过列问题
【发布时间】:2014-04-04 02:08:11
【问题描述】:

问题:我有一个要解析的日志文件,其中包含 84 列,其中 60 列是可选的。我得到了 Pattern 的工作,但是如果 grok 找到一个缺少字段的日志行,它会抛出一个错误。在我的情况下,99% 的日志缺少一些字段。有没有一种方法可以配置 grok 以在字段没有值(或插入虚拟值或空白)时忽略并移至下一列。

共有 84 列,其中 60 列是可选的。我正在尝试使用 grok 来解​​析文件,并且只有在指定了所有 84 列时才能执行此操作。

广告1.0 4572165A-C5B5-420B-851D-DC69D6D73673 20297CAB-4B4C-4B55-B1A8-9DDC436A3F08 2014-02-24 23:55:14 953 1979 93215 106241 97170 58881999999999399926 10939 689926 10939 6852 34 36 3 URL.com/Movie_Player .PHP?PID = 155&utm_source = ADK&utm_medium = CPC&utm_campaign = test4_pid155&utm_term = 78434-2000241 8 3 1012 6042 98.226.166.151 5303 US IN 527 11 0 7075 7029 11001 -6 12008 1 11300 0 0 0 1 url.com/movie_player.php?pid =155&utm_source=adk&utm_medium=cpc&utm_campaign=test4_pid155&utm_term=78434-2000241 www.url.com url.com 11203 65792 0 live.test.com/swf/v4/manager.swf 345550 7.7 美元 0 0 0 0 0 0 0 25 0 0 0 0 0 0 0 1393286114 2 0

【问题讨论】:

    标签: logstash grok


    【解决方案1】:

    所以这就是我为了解决这个问题而正在做的事情。 :

    鉴于: grok-logstash 不适用于 TSV 数据:https://logstash.jira.com/browse/LOGSTASH-1550 Grok 对 CSV 很好

    解决方法:编写一个 python 脚本在过滤器中将 tsv 转换为 csv,然后通过 csv 过滤器运行它

    样本输出:

    这是 ruby​​debug 输出的样子:

                 "supply_sample" => "0",
                "diagnostic_code" => "60",
        "logging_diagnostic_code" => nil,
        "billable_cluster_pi_values" => nil,
        "effective_cluster_pi_values" => nil,
    

    ***不需要编辑python脚本这是我现在正在做的事情

    find -name "20140224-2310-10_126_94_215-21460.1.gz" | xargs zcat | sed 's/\t/,/g' |数控本地主机 3333

    【讨论】:

      猜你喜欢
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-26
      相关资源
      最近更新 更多