用于自定义消息的Logstash过滤器

时间:2016-05-24 06:01:37

标签: elasticsearch logstash logstash-grok

我正在尝试在Logstash中解析一堆字符串,并将输出设置为ElasticSearch。

示例输入字符串为: 2016年5月24日10:20:15 User1创建"创建新文件夹"

grok过滤器是:

匹配=> {" message" => "%{SYSLOGTIMESTAMP:timestamp}%{WORD:user}%{WORD:action_performed}%{WORD:action_description}"}

在Elasticsearch中,我无法看到不同字段的单独列,例如timstamp,user,action_performed等。

相反,整个字符串都在一列"消息"。

我想将信息存储在单独的字段中,而不是仅存储在一列中。

不确定要在logstash过滤器中更改哪些内容以实现所需。

谢谢!

1 个答案:

答案 0 :(得分:0)

你需要改变你的格鲁克模式,即使用QUOTEDSTRING而不是WORD,它会起作用!

match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{WORD:user} %{WORD:action_performed} %{QUOTEDSTRING:action_description}"}