logstash 输出到文件并忽略编解码器
logstash output to file and ignores codec
有人可以向我解释一下,为什么 logstash 一直忽略 "codec => plain => format" 设置,我正在尝试设置?
我正在使用的cfg文件:
input {
gelf {
host => "[some ip]"
port => 12201
}
}
output {
elasticsearch {
host => "[some ip]"
bind_port => "9301"
}
file {
codec => plain {
format => "%{[time]} | %{[severity]} : /%{[thread]}/ %{[loggername]} (%{[sourcemethodname]}) - %{[message]}"
}
path => "/Users/[some user]/logs/%{host}/%{facility}-%{+YYYY-MM-dd}.log"
}
}
我以为我使用了错误的格式,为字段尝试了不同的组合,例如“%{time}”,甚至尝试使用常量文本,例如:
codec => plain {format => "Simple line"}
但似乎没有任何效果。它输出到 elasticsearch 很好,创建 folder/files,但输出为 JSON.
如果有人知道这是怎么回事,请帮忙。
谢谢
file
有一个 message_format
参数,这是您要使用的参数:
file {
message_format => "%{[time]} | %{[severity]} : /%{[thread]}/ %{[loggername]} (%{[sourcemethodname]}) - %{[message]}"
path => "/Users/[some user]/logs/%{host}/%{facility}-%{+YYYY-MM-dd}.log"
}
参数 message_format
已弃用,并将在未来的 Logstash 版本中删除。而不是使用 message_format
尝试这样的事情:
file {
codec => line {
format => "%{[time]} | %{[severity]} : /%{[thread]}/ %{[loggername]} (%{[sourcemethodname]}) - %{[message]}"
}
path => "/Users/[some user]/logs/%{host}/%{facility}-%{+YYYY-MM-dd}.log"
}
PS:您的示例使用编解码器 plain
,尝试使用 line
.
有人可以向我解释一下,为什么 logstash 一直忽略 "codec => plain => format" 设置,我正在尝试设置?
我正在使用的cfg文件:
input {
gelf {
host => "[some ip]"
port => 12201
}
}
output {
elasticsearch {
host => "[some ip]"
bind_port => "9301"
}
file {
codec => plain {
format => "%{[time]} | %{[severity]} : /%{[thread]}/ %{[loggername]} (%{[sourcemethodname]}) - %{[message]}"
}
path => "/Users/[some user]/logs/%{host}/%{facility}-%{+YYYY-MM-dd}.log"
}
}
我以为我使用了错误的格式,为字段尝试了不同的组合,例如“%{time}”,甚至尝试使用常量文本,例如:
codec => plain {format => "Simple line"}
但似乎没有任何效果。它输出到 elasticsearch 很好,创建 folder/files,但输出为 JSON.
如果有人知道这是怎么回事,请帮忙。 谢谢
file
有一个 message_format
参数,这是您要使用的参数:
file {
message_format => "%{[time]} | %{[severity]} : /%{[thread]}/ %{[loggername]} (%{[sourcemethodname]}) - %{[message]}"
path => "/Users/[some user]/logs/%{host}/%{facility}-%{+YYYY-MM-dd}.log"
}
参数 message_format
已弃用,并将在未来的 Logstash 版本中删除。而不是使用 message_format
尝试这样的事情:
file {
codec => line {
format => "%{[time]} | %{[severity]} : /%{[thread]}/ %{[loggername]} (%{[sourcemethodname]}) - %{[message]}"
}
path => "/Users/[some user]/logs/%{host}/%{facility}-%{+YYYY-MM-dd}.log"
}
PS:您的示例使用编解码器 plain
,尝试使用 line
.