繁体   English   中英

Logstash udp输入不起作用

[英]Logstash udp input not working

我对Logstash相当陌生,但是我花了很多时间试图使此正确,但没有成功。 我正在通过udp从不同服务器上的多个应用程序发送日志,以进行记录。 这是logstash配置:

input{
  udp{
    port => 5960
    type => "log4net"
  }
}
filter {
  grok {
    match => ["message", "(?m)%{TIMESTAMP_ISO8601:sourceTimestamp}\s*%{WORD:System}\s*%{LOGLEVEL:logLevel}\s*-\s*%{WORD:logger}\s*-\s*%{NOTSPACE:source}\s*%{NOTSPACE:action}\s*%{UUID:transactionId}\s*%{GREEDYDATA:message}"]
  }
}
output {
  elasticsearch {
    protocol => "http"
    host => "[mylocalip]"
    port => "9200"
   }
  stdout { codec => rubydebug }
}

不幸的是,没有消息记录。 我检查并确保启动Logstash时端口可用。 我还正确配置了防火墙,以允许通过此端口的udp消息。 当我tcpdump时,我可以看到udp消息到达。 另外,我尝试了另一种输入方法(来自nginx的日志),并且工作正常。 我究竟做错了什么?
ElasticSearch 1.4版
Logstash版本-1.5(最初在1.4中也尝试过)
操作系统-CentOs 6.5
Java-OpenJDK运行时环境(rhel-2.5.5.1.el6_6-x86_64 u79-b14)

您很可能会错过去往发件人的路线。 如果是这种情况,将发生以下情况:

  1. 您收到发送到logstash IP /端口的数据包。
  2. 您可以在tcpdump中看到它,因为它是网络层。
  3. 然后内核尝试到达发送者(甚至对于UDP)。
  4. 如果没有路由,它将失败,因此会丢弃UDP数据包,而您在应用程序级别看不到它。
  1. 检查logstash日志以查看打开端口的主机。 默认值为0.0.0.0。 不会达到。 在udp定义中添加“主机”参数。
  2. 使用端口检查工具(如Windows上的qryport )检查端口是否被实际侦听。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM