如何解决用邮递员将ELK Beat输出模拟到Logstash
我有Elastic Beats(如metricbeat和auditbeat)将数据发送到logstash。为了进行测试,我想模拟一些节拍到logstash输入的数据。
我在beats(yaml配置文件)中使用logstash输出插件:
output.logstash:
enabled: true
hosts: ["127.0.0.1:5044"]
和logstash(.conf管道配置文件)中的beats输入插件:
input {
beats {
port => "5044"
}
}
我天真地认为节拍通过HTTP请求与logstash通信,因此我使用Postman向logstash发出POST请求,但是我在logstash中收到了 InvalidFrameProtocolException:节拍协议的无效版本错误。 / p>
我试图用Wireshark检查数据包,以查看原始数据包的格式,但我只能看到TCP数据包,而没有HTTP协议。我想那时插件无法通过HTTP请求进行通信。
具有更多专业知识的人可以对此发表评论吗?有没有一种方法可以通过邮递员将节拍输出数据模拟到logstash?
解决方法
感谢@leandrojmp,我知道节拍和logstash通过伐木工人协议而非HTTP进行通信。
我最终使用了http logstash输入插件,以便可以通过邮递员模拟我的beats事件。我没有修改原始的管道配置文件,但是我使用了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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。