将端口设置为事件字段logstash

时间:2015-08-03 23:39:41

标签: 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"
    severity => "warning"
    host = [the_host]
    port = [the_port] # this throws the error
  }
}

Logstash在这里抛出一个错误(运行/ bin / logstash -f syslog.conf --configtest)说:

Invalid setting for syslog output plugin:
  # This setting must be a number
  # Expected number, got "the_port" (type the_port)
  port => ["the_port"]

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

对于这里发生的事情,有没有人比我更好?有没有其他人能够从事件字段成功设置端口?任何帮助赞赏。感谢。

PS。 logstash版本1.5.1

1 个答案:

答案 0 :(得分:0)

您在配置(条件等)中使用[fieldName]。您可以在参数值中使用%{fieldName},请尝试以下操作:

port => "%{the_port}"