我正在探索Logstash以接收HTTP上的输入。我使用:
安装了http插件插件安装logstash-input-http
安装成功。然后我尝试使用以下命令运行logstash:
logstash -e'input {http {port => 8900}}输出{stdout {codec => rubydebug}}“
但是logstash终止而没有给出任何错误。
不知道如何验证插件是否安装正确。以及如何利用http插件测试样本请求。
提前致谢!
答案 0 :(得分:10)
我能够通过使用 .conf 文件而不是命令行参数来解决问题。
我创建了一个类似于下面的 http-pipeline.conf 文件:
input {
http {
host => "0.0.0.0"
port => "8080"
}
}
output {
stdout {}
}
然后执行Logstash,如:
logstash -f http-pipeline.conf
使用POSTMAN工具,我使用示例字符串向Logstash发送了一个POST请求(http://localhost:8080),然后它出现在Logstash控制台上。
答案 1 :(得分:1)
如果您是在同一个域中执行,那么就足够了。
input {
http {
port => 5043
}
}
output {
file {
path => "/log_streaming/my_app/app.log"
}
}
如果要在网站的其他域上执行请求,则需要设置一些响应头
input {
http {
port => 5043
response_headers => {
"Access-Control-Allow-Origin" => "*"
"Content-Type" => "text/plain"
"Access-Control-Allow-Headers" => "Origin, X-Requested-With, Content-Type,
Accept"
}
}
}
output {
file {
path => "/log_streaming/my_app/app.log"
}
}