我對如何將日誌條目直接放到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