我正在尝试使用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”?
答案 0 :(得分:1)
您将GELF(JSON)输出发送到SYSLOG侦听器,您需要更改以将其发送到GELF端口而不是SYSLOG端口