#logstash
#logstash
Вопрос:
при использовании logstash я вижу ошибку, подобную этой :
Received an event that has a different character encoding than you configured. {:text=>"2014-06-22T11:49:57.832631 02:00 10.17.22.37 date=2014-06-22 time=11:49:55 device_id=LM150D9L23000422 log_id=0312318759 type=statistics pri=information session_id=\"s617nnE2019973-s617nnE3019973\" client_name=\"[<IP address>]\" dst_ip=\"<ip address>\" from=\"machin@machin.fr\" to=\"truc@machin.fr\" polid=\"0:1:1\" domain=\"machin.fr\" subject=\"\xF0\xCC\xC1\xD4\xC9 \xD4\xCF\xCC\xD8\xCB\xCF \xDA\xC1 \xD0\xD2\xCF\xC4\xC1\xD6\xC9!\" mailer=\"mta\" resolved=\"OK\" direction=\"in\" virus=\"\" disposition=\"Quarantine\" classifier=\"FortiGuard AntiSpam\" message_length=\"1024\"", :expected_charset=>"UTF-8", :level=>:warn}
мой logstash.conf :
input {
file{
path => "/var/log/fortimail.log"
}
}
filter {
grok {
# grok-parsing for logs
}
}
output {
elasticsearch {
host => "10.0.10.62"
embedded => true
cluster => "Mastertest"
node_name => "MasterNode"
protocol => "http"
}
}
Я не знаю, какой кодек следует использовать для правильного формата событий??
проблема в поле subject.
Ответ №1:
Это связано с тем, что кодировкой по умолчанию является UTF-8, а входящее сообщение содержало символ, не входящий в набор UTF-8
Чтобы исправить это, установите кодировку в разделе ввода, используя кодек и правильную кодировку. Например
file {
path => "var/log/http/access_log"
type => apache_access_log
codec => plain {
charset => "ISO-8859-1"
}
stat_interval => 60
}
Ответ №2:
Если вы получили журналы с внешнего сервера, попробуйте использовать:
input {
udp {
port => yourListenPort
type => inputType
codec => plain {
charset => "ISO-8859-1"
}
}
}
у меня та же ошибка, и я использовал это, работает!