为什么我的 Graylog 消息使用 Clojure 中的 taoensso.timbre.appenders.3rd-party.gelf appender 不是人类可读的?

Why are my Graylog messages using the taoensso.timbre.appenders.3rd-party.gelf appender in Clojure not human readable?

我在 Clojure 1.9.0 中使用 [com.taoensso/timbre "4.10.0"] Java1.8.

openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

我用以下函数配置了音色:

(defn init [config]
  (timbre/merge-config! {:level        :debug
                         :appenders    {:println (appenders/println-appender)
                                        :spit    (appenders/spit-appender {:fname "log/myapp.log" :append? true})
                                        :gelf    (gelf/gelf-appender (:gelf-host config) (:gelf-port config) (:gelf-protocol config))}})))

我正在通过 :udp 发送数据,数据似乎被压缩或编码或其他。我在 appender 中看不到任何允许我配置压缩的选项。

你知道我需要配置什么才能让我的 Graylog 消息在通过 upd 发送时可读吗?我已经尝试通过 tcp 发送消息,但不知何故,即使我在端口 1514 上有 TCP 输入,但在发送后数据包丢失了。

打印到控制台和日志文件的消息都没有问题。

问题是您使用的是 syslog/udp 端口而不是 gelf/udp 输入端口;通常 gelf 端口是 12201,您可以通过转到 UI.

中的系统-> 输入来检查您的输入配置

顺便说一句,您不需要为 gelf appender 指定 :udp,因为这是音色的默认值。