Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 在Logstash管道配置中使用条件_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Logstash_Filebeat - Fatal编程技术网 elasticsearch 在Logstash管道配置中使用条件,elasticsearch,logstash,filebeat,elasticsearch,Logstash,Filebeat" /> elasticsearch 在Logstash管道配置中使用条件,elasticsearch,logstash,filebeat,elasticsearch,Logstash,Filebeat" />

elasticsearch 在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

我试图在管道输出配置的上下文中使用Logstash条件。 根据有效负载中存在的
设备
字段,我想将事件转发到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){
使用完整的当前配置更新您的问题,而不仅仅是输出部分,并检查括号是否闭合。