Vagrant 的 Logstash:地址已被使用
Logstash for Vagrant: Address already in use
我有一个 Vagrant 图像,其中有一个应用程序;如果您调用端口 2401
并根据您想要的服务调用特定地址(即“curl -X GET http://127.0.0.1:2401/provider/ipfix
”),则可以在 Vagrant 图像中访问它。为了检索 Vagrant 机器外的输出,我在 Vagrant 文件中设置了一个端口转发 ("config.vm.network :forwarded_port, guest: 2401, host: 8080
"),因此使用来自主机的命令“curl -X GET http://127.0.0.1:8080/provider/ipfix
”,我得到了相同的输出。
我现在正处于安装 Logstash 的阶段。我的问题是,当我 运行 Logstash 使用配置文件时,我收到错误 "Address already in use"。我还尝试使用字段来指导特定的输出。下面是我的 Logstash 配置文件。您会建议什么解决方法?
input {
tcp {
host => localhost
port => 8080
add_field => {
"field1" => "provider"
"field2" => "ipfix"
}
codec => netflow {
versions => [10]
target => ipfix
}
type => ipfix
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
index => "IPFIX-logstash-%{+YYYY.MM.dd}"
}
}
如果我没看错,您希望 Logstash 使用 TCP 连接到 localhost:8080 以获取它将随后处理的信息。
这不是此输入的作用。这会在 127.0.0.1:8080 上创建一个 listener,因此关于 'already in use' 的错误消息是完全正确的。
考虑到您使用 curl 作为获取此数据的示例,我建议 the http_poller
plugin 更适合您的需要。
input {
http_poller {
urls => {
IPFIX => "http://127.0.0.1:8080/provider/ipfix"
}
request_timeout => 30
schedule => { "every" => "5s" }
add_tags => [ 'ipfix' ]
}
}
这将每 5 秒用一个 GET
请求命中已知工作的 CURL URL。
我有一个 Vagrant 图像,其中有一个应用程序;如果您调用端口 2401
并根据您想要的服务调用特定地址(即“curl -X GET http://127.0.0.1:2401/provider/ipfix
”),则可以在 Vagrant 图像中访问它。为了检索 Vagrant 机器外的输出,我在 Vagrant 文件中设置了一个端口转发 ("config.vm.network :forwarded_port, guest: 2401, host: 8080
"),因此使用来自主机的命令“curl -X GET http://127.0.0.1:8080/provider/ipfix
”,我得到了相同的输出。
我现在正处于安装 Logstash 的阶段。我的问题是,当我 运行 Logstash 使用配置文件时,我收到错误 "Address already in use"。我还尝试使用字段来指导特定的输出。下面是我的 Logstash 配置文件。您会建议什么解决方法?
input {
tcp {
host => localhost
port => 8080
add_field => {
"field1" => "provider"
"field2" => "ipfix"
}
codec => netflow {
versions => [10]
target => ipfix
}
type => ipfix
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
index => "IPFIX-logstash-%{+YYYY.MM.dd}"
}
}
如果我没看错,您希望 Logstash 使用 TCP 连接到 localhost:8080 以获取它将随后处理的信息。
这不是此输入的作用。这会在 127.0.0.1:8080 上创建一个 listener,因此关于 'already in use' 的错误消息是完全正确的。
考虑到您使用 curl 作为获取此数据的示例,我建议 the http_poller
plugin 更适合您的需要。
input {
http_poller {
urls => {
IPFIX => "http://127.0.0.1:8080/provider/ipfix"
}
request_timeout => 30
schedule => { "every" => "5s" }
add_tags => [ 'ipfix' ]
}
}
这将每 5 秒用一个 GET
请求命中已知工作的 CURL URL。