Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 日志存储udp输入不工作_Logging_Udp_Log4net_Logstash_Logstash Configuration - Fatal编程技术网

Logging 日志存储udp输入不工作

Logging 日志存储udp输入不工作,logging,udp,log4net,logstash,logstash-configuration,Logging,Udp,Log4net,Logstash,Logstash Configuration,我对logstash很陌生,但我已经花了相当长的时间试图把它做好,但没有成功。我正在通过udp从不同服务器上的多个应用程序发送日志以进行记录。 以下是日志存储配置: input{ udp{ port => 5960 type => "log4net" } } filter { grok { match => ["message", "(?m)%{TIMESTAMP_ISO8601:sourceTimestamp}\s*%{WORD:Syste

我对logstash很陌生,但我已经花了相当长的时间试图把它做好,但没有成功。我正在通过udp从不同服务器上的多个应用程序发送日志以进行记录。 以下是日志存储配置:

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中试用过)
OS-CentOs 6.5
Java-OpenJDK运行时环境(rhel-2.5.5.1.el6_6-x86_64 u79-b14)

您很可能错过发送程序的路径。如果是这种情况,发生的情况是:

  • 您收到发送到日志存储IP/端口的数据包
  • 您可以在tcpdump中看到它,因为它是网络层
  • 然后内核尝试到达发送方(即使是UDP)
  • 若并没有路由,它就会失败,从而丢弃UDP数据包,而你们在应用程序级别上看不到它
  • 检查日志存储日志以查看它在哪个主机上打开端口。默认值为0.0.0.0。这是不可能实现的。在udp定义中添加“主机”参数
  • 使用端口检查工具(如Windows上的)检查端口是否实际被侦听

  • logstash.stdout文件中是否出现任何内容?logstash.log或logstash.err中是否存在任何错误或警告?为了更好地进行调试,我使用命令bash logstash-f my.config在bash中运行logstash。配置文件包含上层配置。。。我只在控制台中获得“Logstash startup completed”(日志存储启动完成)-没有错误,之后我不会收到任何调试输出(我应该这样认为)。。。.stdout文件或.err.Try中没有任何内容,请包含-l/your-logfile.log以获取来自LS的一些日志,这些日志可能有助于您查找问题日志文件(如您所述指定)已创建,但仍然为空。这就像udp消息从未到达目标端口,尽管tcpdump说13:33:26.821332 IP[someip]。64697>[localip]。5960:udp,长度180。根据netstat,一旦启动logstashudp0:5960::::*28199/java,我就打开了端口