我正在尝试为组窗口和组件构建集中式日志记录系统。 linux服务器使用elasticsearch logstash和kibana。我的输入是来自系统(单输入流)的系统日志。我试图了解是否有方法使用grok并匹配模式然后基于将日志放入不同的索引(一个用于Windows日志,一个用于linux日志)
任何方向的帮助都将受到赞赏。
谢谢,
答案 0 :(得分:0)
您可以根据日志来自哪个系统来分配'type',然后在输出中使用该类型。
以下是配置:
validInput = fieldwaitAfterAction.getText().length > 0
&& fieldwaitAfterAction.getText().matches("[0-9]+");
答案 1 :(得分:0)
当grok匹配时,你可以使用{}和add_field:
grok {
matches => { "message", "foo %{WORD}" }
add_field => { "send_to", "fooindex" }
}
或来自模式中的字段:
grok {
matches => { "message", "foo %{WORD:send_to} bar" }
}
然后在输出中使用%{send_to}:
elasticsearch {
index => "%{send_to}-YYYY.MM.dd"
}
请注意,如果索引未命名为“logstash- *”,则不会获得logstash提供的默认映射。