Logging 将端口设置为事件字段日志存储

Logging 将端口设置为事件字段日志存储,logging,logstash,syslog,logstash-configuration,Logging,Logstash,Syslog,Logstash Configuration,由于与我的问题无关的原因,我需要将端口设置为事件字段。我还没能做到。这是显示问题的示例代码 filter { mutate { add_field => { "the_port" => 12345 } convert => { "the_port" => "integer" } # not needed, just in case } } output { syslog { facility => "local0"

由于与我的问题无关的原因,我需要将端口设置为事件字段。我还没能做到。这是显示问题的示例代码

filter {
  mutate {
    add_field => { "the_port" => 12345 }
    convert   => { "the_port" => "integer" } # not needed, just in case
  }
}

output {
  syslog {
    facility => "local0"
    severity => "warning"
    host = [the_host]
    port = [the_port] # this throws the error
  }
}
Logstash在这里抛出一个错误(运行/bin/Logstash-f syslog.conf--configtest),表示:

在查看logstash源代码之后,看起来logstash在从变量完全展开端口值之前,正在对端口值进行一些检查。这可以通过将变量的名称更改为数字来确认,然后它通过配置检查,但不幸的是,名称编号随后设置为端口,并且变量未展开

有没有人比我更了解这里发生的事情?是否有其他人能够从事件字段成功设置端口?谢谢你的帮助。谢谢


ps.logstash版本1.5.1

您在配置中使用[fieldName](条件等)。您将在参数值中使用%{fieldName},因此请尝试以下方法:

port => "%{the_port}"

这仍然会抛出相同的错误<代码>#此设置必须是一个数字#预期数字,获得“%{syslog_port}”(类型%{syslog_port})端口=>“%{syslog_port}”
port => "%{the_port}"