1

我正在尝试使用 ELK 堆栈监视 symfony 应用程序。

我正在使用以下配置将日志发送到 logstash:

monolog:
    handlers:
        main:
            type: gelf
            publisher:
                hostname: elk-host
                port: 10514
            formatter: monolog.formatter.gelf_message
            level: INFO

在 kibana 上,我看到我收到了日志,但消息以一种奇怪的方式编码;这是 kibana 显示的示例:

x\x9CMP\xC1n\x830\f\xFD\u0015+\xA7V\xAAB\xA1\f(\xD7j;表示\xDD\"Ui0`)\u0004D\(\x9A\xF6\xEF\v\x9B\xD6\ xEDf\xBFg\xFB\xF9\xBD\u000F1\xE1\xE8\xA9w\xA2\u0014\xB1指令\x9Dh{ϡ\u0019\xFA\x915Y\xCF^\xDA\xDEh\e\u0018\xDF\u0006\ xEC指令\xF7\xBA\xC10\xF2\x8A5\x8E\xE8\f\xB9\u0006\xB8EP\xC2\xF4#*\u0001xct\xEBQ\xB8,@\xEC\xC1\xE9\u000EaSaM\u000E\xAB\ u0015l\x90\x9F\u0003\xB6\xD9n\x81

这是我的独白配置文件:

input {
    gelf {
        codec => "json"
    }
    syslog {
       port => 10514
       type => "syslog"
    }
}

filter {
}

output {
    elasticsearch {}
}

我尝试添加一个编码选项(charset => "UTF-8"),但效果并不好。

另外,为什么我的日志显示为“syslog”类型,而不是我在 monolog config 中指定的“gelf”?

4

1 回答 1

1

您将 GELF (JSON) 输出发送到 SYSLOG 侦听器,您需要更改以将其发送到 GELF 端口而不是 SYSLOG 端口

于 2018-05-25T10:35:21.887 回答