采用 json 格式的 HA 代理日志



我是 ha-proxy 的新手,并尝试使用 filebeat 将日志推送到弹性搜索。 由于 filebeat 仅采用 json 格式,并且我没有办法配置 ha-proxy 以 json 格式输出日志,其中包括成功和错误情况。

我已经在 conf 文件中尝试了以下日志格式 -

log-format '{"host":"%H","ident":"haproxy","pid":%pid,"time":"%Tl","haproxy":{"conn":{"act":%ac,"fe":%fc,"be":%bc,"srv":%sc},"queue":{"backend":%bq,"srv":%sq},"time":{"tq":%Tq,"tw":%Tw,"tc":%Tc,"tr":%Tr,"tt":%Tt},"termination_state":"%tsc","retries":%rc,"network":{"client_ip":"%ci","client_port":%cp,"frontend_ip":"%fi","frontend_port":%fp},"ssl":{"version":"%sslv","ciphers":"%sslc"},"request":{"method":"%HM","uri":"%[capture.req.uri,json(utf8s)]","protocol":"%HV","header":{"host":"%[capture.req.hdr(0),json(utf8s)]","xforwardfor":"%[capture.req.hdr(1),json(utf8s)]","referer":"%[capture.req.hdr(2),json(utf8s)]"}},"name":{"backend":"%b","frontend":"%ft","server":"%s"},"response":{"status_code":%ST,"header":{"xrequestid":"%[capture.res.hdr(0),json(utf8s)]"}},"bytes":{"uploaded":%U,"read":%B}}}'

现在,json 日志与常规日志一起写入同一个旧日志文件中。但是文件节拍和单独的文件中需要一个 pule json 日志文件。

任何线索都会有所帮助。

谢谢。

Filebeat 对于 JSON 日志或纯文本日志来说非常好。相反的情况甚至主要适用于服务器或系统日志消息等基础设施日志。

我另外,filebeat 为您提供了一个专用的 ha-proxy 模块,这将大大简化您的任务。请参阅文档,您应该需要为 HA 代理设置文件节拍。

玩得愉快!

最新更新