我想打印'主机源'输出。为了这个目标,局部或全局变量是必要的。但是我不想使用像'export ...'这样的全局变量。 因此,在输入{}之前,我将主机放入元数据中,然后在'input {}'中使用。 象下面这样:logstash:如何在输入主机中使用环境变量
filter{
environment{
add_field =>{
"[@metadata][TEMP]" => "127.0.0.1"
}
}
}
input{
udp{
host => "%{[@metadata][TEMP]}"
port => "10000"
}
}
output{
udp{
host => "127.0.0.1"
port => "10001"
}
}
但logstash未运行,然后登录是象下面这样:
[WARN ][logstash.inputs.udp ] UDP listener died {:exception=>#<SocketError: bind: name or service not known>known>
那么如何才能解决这个问题?
你能检查你的端口是否已被使用?你可以用'sudo lsof -nPi:10000' –
@ChristianHäckh得到这个信息谢谢你的回复。该端口不使用,因为如果我设置主机=>“127.0.0.1”,那么它是工作。 – leoniz
过滤器应用于输入后的事件。环境过滤器可用于访问环境变量并相应地更改事件,而不用设置新的环境变量。如果你想使用环境变量,你应该导出它们。 –