Symfony& ELK:我应该在gelf中使用哪种编码?

时间:2017-01-30 12:22:40

标签: symfony syslog elastic-stack monolog gelf

我正在尝试使用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; Nڴ\的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 \ XC 1 \ xE9 \ u000EaSaM \ u000E \ XAB \ u0015l \ X90 \ x9F \ U0003 \ XB6 \ xD9n \ X81

这是我的monolog配置文件:

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

filter {
}

output {
    elasticsearch {}
}

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

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

1 个答案:

答案 0 :(得分:1)

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