有没有办法检查 Filebeat 是否收到任何 UDP 数据包?

Is there a way to check if Filebeat received any UDP packets?

在我的 filebeat.yml 文件中我有这个:

filebeat.inputs:
- type: udp
  host: "localhost:15656"
  enabled: true

output.elasticsearch:
  hosts: ["localhost:9200"]
  username: "elastic"
  password: "changeme"

按照此处的指南操作:https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation-configuration.html#start

我发送了命令:filebeat setup -e 然后是 sudo service filebeat start 检查状态显示它正在侦听 UDP 连接:

Mar 22 11:07:20 ip-172-41-12-144 filebeat[425]: 2021-03-22T11:07:20.706Z        INFO        udp/input.go:99        Starting UDP input
Mar 22 11:07:20 ip-172-41-12-144 filebeat[425]: 2021-03-22T11:07:20.706Z        INFO        [UDP]        dgram/server.go:96        **Started listening for UDP connection**
Mar 22 11:07:20 ip-172-41-12-144 filebeat[425]: 2021-03-22T11:07:20.707Z        INFO        cfgfile/reload.go:164        Config reloader started
Mar 22 11:07:20 ip-172-41-12-144 filebeat[425]: 2021-03-22T11:07:20.707Z        INFO        cfgfile/reload.go:224        Loading of config files completed.

但我无法知道我是否收到任何 UDP 数据包。如果每当收到数据包时在屏幕上输出一些内容,那就太好了。我在 elasticsearch 或 kibana 中没有看到任何东西,我确信我正在正确发送数据包,因为 logstash 可以接收它们。我停止使用 logstash,因为它在我的服务器上太慢了,所以我尝试使用 filebeat,但我无法让它接收 UDP 数据包...

您可以做的是用 console one 替换 elasticsearch 输出,这样您收到的每个事件都会显示在您的终端中:

#output.elasticsearch:
#  hosts: ["localhost:9200"]
#  username: "elastic"
#  password: "changeme"

output.console:
  pretty: true