elasticsearch 在Logstash管道配置中使用条件
我试图在管道输出配置的上下文中使用Logstash条件。 根据有效负载中存在的elasticsearch 在Logstash管道配置中使用条件,elasticsearch,logstash,filebeat,elasticsearch,Logstash,Filebeat,我试图在管道输出配置的上下文中使用Logstash条件。 根据有效负载中存在的设备字段,我想将事件转发到Elasticsearch中的相应索引名: output { elasticsearch { hosts => ["10.1.1.5:9200"] if [device] ~= \.* { index => "%{[device][0]}-%{+YYYY.ww}" } else { in
设备
字段,我想将事件转发到Elasticsearch中的相应索引名:
output {
elasticsearch {
hosts => ["10.1.1.5:9200"]
if [device] ~= \.* {
index => "%{[device][0]}-%{+YYYY.ww}"
} else {
index => "%{[beat][name]}-%{+YYYY.ww}"
}
}
}
上述代码将失败,日志中的以下MG指示语法错误:
...
"Expected one of #, => at line 14, column 12 (byte 326) after output {\n elasticsearch {\n hosts => [\"10.1.1.5:9200\"]\n if "
...
有人可以建议吗?您应该在elasticsearch输出之前使用,而不是在其内部使用
output {
if [device] ~= \.* {
elasticsearch {
hosts => ["10.1.1.5:9200"]
index => "%{[device][0]}-%{+YYYY.ww}"
}
} else {
elasticsearch {
hosts => ["10.1.1.5:9200"]
index => "%{[beat][name]}-%{+YYYY.ww}"
}
}
}
您应该在elasticsearch输出之前使用,而不是在其内部使用
output {
if [device] ~= \.* {
elasticsearch {
hosts => ["10.1.1.5:9200"]
index => "%{[device][0]}-%{+YYYY.ww}"
}
} else {
elasticsearch {
hosts => ["10.1.1.5:9200"]
index => "%{[beat][name]}-%{+YYYY.ww}"
}
}
}
我的管道配置如下:
bash-4.2$cat/usr/share/logstash/pipeline/output\u主输出{if[device]~=\.{elasticsearch{hosts=>[“es-host:9200”]index=>“%{[device][0]}-%{+yyyyy.ww}}否则{elasticsearch{hosts=>[“es-host:9200”]index=>“%{[beat][name]}-%{+yyyyyyyy.ww}
仍在获取错误:“输出{\n如果[设备],则在第12行第15列(字节253)处,{
使用完整的当前配置更新您的问题,而不仅仅是输出部分,并检查括号是否关闭。我的管道配置如下所示:bash-4.2$cat/usr/share/logstash/pipeline/output\u主输出{if[device]~=\.{elasticsearch{hosts=>[“es host:9200”]index=>“%{[device][0]}-%{yyyyy.ww}”}}其他{elasticsearch{hosts=>[“es主机:9200”]index=>“%{[beat][name]}-%{+YYYY.ww}}
仍出现错误:“在输出{\n如果[device],{\n之后,应为#,in,not,==,!=,=,=,=,!~,和,或xor,nand,{第12行第15列(字节253){
使用完整的当前配置更新您的问题,而不仅仅是输出部分,并检查括号是否闭合。