我正在尝试在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过滤器中更改哪些内容以实现所需。
谢谢!
答案 0 :(得分:0)
你需要改变你的格鲁克模式,即使用QUOTEDSTRING
而不是WORD
,它会起作用!
match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{WORD:user} %{WORD:action_performed} %{QUOTEDSTRING:action_description}"}