Regex 基于logstash模式匹配的索引创建
我正在尝试使用elasticsearch logstash和kibana为一组windows和linux服务器构建一个集中式日志系统。我的输入将是来自两个系统的系统日志(单个输入流)。我试图了解是否有方法使用grok并匹配模式,然后在此基础上将日志放入不同的索引中(一个用于windows日志,一个用于linux日志) 任何方向上的帮助都将不胜感激Regex 基于logstash模式匹配的索引创建,regex,elasticsearch,logstash,logstash-grok,Regex,elasticsearch,Logstash,Logstash Grok,我正在尝试使用elasticsearch logstash和kibana为一组windows和linux服务器构建一个集中式日志系统。我的输入将是来自两个系统的系统日志(单个输入流)。我试图了解是否有方法使用grok并匹配模式,然后在此基础上将日志放入不同的索引中(一个用于windows日志,一个用于linux日志) 任何方向上的帮助都将不胜感激 谢谢,您可以根据日志来自哪个系统来分配“类型”,然后在输出中使用该类型 以下是配置: input{ file{ path =>"
谢谢,您可以根据日志来自哪个系统来分配“类型”,然后在输出中使用该类型 以下是配置:
input{
file{
path =>"path/to/system1_log_file"
type =>"sys1logs"
}
file{
path =>"path/to/system2_log_files"
type =>"sys2logs"
}
}
output{
if[type]=="sys1logs"{
#output to sys1 index
elasticsearch{host => localhost
index => "sys1"
}
}
if[type]=="sys2logs"{
#output to sys2 index
elasticsearch{host => localhost
index =>"sys2"
}
}
}
您可以根据日志来自哪个系统来分配“类型”,然后在输出中使用该类型 以下是配置:
input{
file{
path =>"path/to/system1_log_file"
type =>"sys1logs"
}
file{
path =>"path/to/system2_log_files"
type =>"sys2logs"
}
}
output{
if[type]=="sys1logs"{
#output to sys1 index
elasticsearch{host => localhost
index => "sys1"
}
}
if[type]=="sys2logs"{
#output to sys2 index
elasticsearch{host => localhost
index =>"sys2"
}
}
}
当grok匹配时,您可以grok{}它们并添加_字段:
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提供的默认映射。您可以对它们进行搜索,并在搜索匹配时添加_字段:
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提供的默认映射。感谢回复@Ana!但是我的输入是一个单一的源(相同的路径),因此我无法在源位置进行区分。我需要解析日志,然后将它们放在不同的索引中。请看下面的答案。这可能很有用。谢谢回复@Ana!但是我的输入是一个单一的源(相同的路径),因此我无法在源位置进行区分。我需要解析日志,然后将它们放在不同的索引中。请看下面的答案。这可能有用。