我对如何将日志条目直接放到elasticsearch
(而不是logstash)有点困惑。到目前为止,我发现几个appender(log4j.appender.SocketAppender
,log4j.appender.server
等)允许将日志发送到远程主机,并且ConversionPattern
似乎允许我们将日志转换为“弹性友好”格式,但这种方法看起来很怪异...还是我错了?这是发送日志到elastic
的一种方法吗?Log4j直接登录到elasticsearch服务器
到目前为止,我有一个这样的配置:
log4j.rootLogger=DEBUG, server
log4j.appender.server=org.apache.log4j.net.SocketAppender
log4j.appender.server.Port=9200
log4j.appender.server.RemoteHost=localhost
log4j.appender.server.ReconnectionDelay=10000
log4j.appender.server.layout.ConversionPattern={"debug_level":"%p","debug_timestamp":"%d{ISO8601}","debug_thread":"%t","debug_file":"%F", "debug_line":"%L","debug_message":"%m"}%n
但我得到一个错误:
log4j:WARN Detected problem with connection: java.net.SocketException: Broken pipe (Write failed)
我无法找到任何有用的例子,所以我不明白我该怎么办错误和如何解决它。谢谢。
那是不可能的。你需要Logstash。如果您想使用已弃用的log4j插件(https://www.elastic.co/guide/en/logstash/current/plugins-inputs-log4j.html),那么可以,但我们建议将log4j日志写入文件并使用Filebeat接他们并将它们发送给Elasticsearch。 –
看到这个问题:https://stackoverflow.com/questions/32302421/logging-from-java-app-to-elk-without-need-for-parsing-logs – diginoise
@diginoise'如果你指向这个文件logstash'这意味着我会将日志写入文件,这不是我所需要的 – Daria