Logstash: получено событие с другой кодировкой символов

#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
}
  

http://logstash.net/docs/1.3.3/codecs/plain

Ответ №2:

Если вы получили журналы с внешнего сервера, попробуйте использовать:

 input {
   udp {
     port => yourListenPort
     type => inputType
     codec => plain {
       charset => "ISO-8859-1"
     }
   }
}
  

у меня та же ошибка, и я использовал это, работает!