使用 Postman 模拟 ELK Beat 输出到 Logstash
Mock an ELK Beat output to Logstash with Postman
我有将数据发送到 logstash 的 Elastic Beats(如 metricbeat 和 auditbeat)。出于测试目的,我想模拟一些从节拍到 logstash 输入的数据。
我在 beats(yaml 配置文件)中使用 logstash 输出插件:
output.logstash:
enabled: true
hosts: ["127.0.0.1:5044"]
和 logstash 中的 beats 输入插件(.conf 管道配置文件):
input {
beats {
port => "5044"
}
}
我天真地假设 beats 通过 HTTP 请求与 logstash 通信,所以我使用 Postman 向 logstash 发出 POST 请求,但我得到了一个 InvalidFrameProtocolException:无效的 beats 协议版本 logstash 错误。
我试图用 wireshark 检查数据包以查看原始数据包的格式,但我只能看到 TCP 数据包,没有 HTTP 协议。我想插件不会通过 HTTP 请求进行通信。
有没有更专业的人对此发表评论?有没有办法通过邮递员将节拍输出数据模拟到 logstash?
感谢@leandrojmp,我知道节拍和 logstash 通过 lumberjack 协议而不是 HTTP 进行通信。
我最终使用了 http logstash 输入插件,这样我就可以通过邮递员模拟我的节拍事件。虽然我没有修改我原来的管道配置文件,但我使用了 logstash 的能力来加载几个管道配置文件。
所以我用我的 http 插件和一些过滤器创建了另一个 logstash 管道配置文件以删除 http 特定数据,如“header”字段:
input {
stdin { }
http {
port => "8081"
}
}
filter {
mutate {
remove_field => ["headers"]
}
}
当我想启动 logstash 进行测试时,我可以加载这两个文件,方法是将它们放在同一目录中:
bin/logstash -f logstash.d/*.conf
或者在我不测试时只是原始配置文件:
bin/logstash -f logstash.d/pipeline.conf
我有将数据发送到 logstash 的 Elastic Beats(如 metricbeat 和 auditbeat)。出于测试目的,我想模拟一些从节拍到 logstash 输入的数据。
我在 beats(yaml 配置文件)中使用 logstash 输出插件:
output.logstash:
enabled: true
hosts: ["127.0.0.1:5044"]
和 logstash 中的 beats 输入插件(.conf 管道配置文件):
input {
beats {
port => "5044"
}
}
我天真地假设 beats 通过 HTTP 请求与 logstash 通信,所以我使用 Postman 向 logstash 发出 POST 请求,但我得到了一个 InvalidFrameProtocolException:无效的 beats 协议版本 logstash 错误。
我试图用 wireshark 检查数据包以查看原始数据包的格式,但我只能看到 TCP 数据包,没有 HTTP 协议。我想插件不会通过 HTTP 请求进行通信。
有没有更专业的人对此发表评论?有没有办法通过邮递员将节拍输出数据模拟到 logstash?
感谢@leandrojmp,我知道节拍和 logstash 通过 lumberjack 协议而不是 HTTP 进行通信。
我最终使用了 http logstash 输入插件,这样我就可以通过邮递员模拟我的节拍事件。虽然我没有修改我原来的管道配置文件,但我使用了 logstash 的能力来加载几个管道配置文件。 所以我用我的 http 插件和一些过滤器创建了另一个 logstash 管道配置文件以删除 http 特定数据,如“header”字段:
input {
stdin { }
http {
port => "8081"
}
}
filter {
mutate {
remove_field => ["headers"]
}
}
当我想启动 logstash 进行测试时,我可以加载这两个文件,方法是将它们放在同一目录中:
bin/logstash -f logstash.d/*.conf
或者在我不测试时只是原始配置文件:
bin/logstash -f logstash.d/pipeline.conf