首页 > 解决方案 > Glue Classifier 无法使用 Grok 模式对列进行分类

问题描述

我有一个使用 format 构建的 s3 存储桶s3://<bucket-name>/year=<yearno>/month=<monthno>/day=<dayno>/<filename>.log。我得到的 .log 文件中的行结构如下:

2020-01-06 09:05:14,450 INFO [Asterisk-Java DaemonPool-1-thread-3] handler.CallHandler (CallHandler.java:849) - Original name : harris changed to : haris . Exist? true

虽然我用于分类器的 Grok 模式是:

[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9:,]{12} INFO \[Asterisk-Java DaemonPool-1-thread-[0-9]{1,3}] handler.CallHandler \(CallHandler.java:849\) - Original name : %{WORD:original_name} changed to : %{WORD:transformed_name} . Exist\? %{WORD:exist_prior}

我使用这个调试器网络应用程序检查了我的 Grok 模式,并确认它是正确的。我期望结果表是:

+------+-------+-----+---------------+------------------+--------------+
| year | month | day | original_name | transformed_name | exists_prior |
+------+-------+-----+---------------+------------------+--------------+
|    - |     - |   - |             - |                - |            - |
+------+-------+-----+---------------+------------------+--------------+

但是,我得到的表是:

+------+-------+-----+------+------+------+------+
| year | month | day | col0 | col1 | col2 | col3 |
+------+-------+-----+------+------+------+------+
|    - |     - |   - |    - |    - |    - |    - |
+------+-------+-----+------+------+------+------+

我哪里做错了?

标签: amazon-web-servicesamazon-s3aws-gluelogstash-grok

解决方案


我将捕获正则表达式从更改%{WORD:variable_name}%{DATA:variable_name}. 然后它按预期工作。


推荐阅读