Проблема при разборе лога

Добрый день!

Пытаюсь загнать в ELK технологический журнал от 1С, но при разборе лога не могу занести кириллическое значение в индекс.

Есть сообщение вида

49:38.102017-17,CALL,1,p:processName=ut,Context=ОбщийМодуль.Вызов : ОбщийМодуль.прОбщегоНазначенияСервер.Модуль.ПолучитьТекстОповещенийПользователю,MemoryPeak=927719,InBytes=0,OutBytes=0,CpuTime=0

filebeat.yml

filebeat.inputs:

  • type: log
    enabled: true
    paths:
    • C:\1C\calls\rphost**.log
      fields:
      type: onec_call
      fields_under_root: true
      encoding: utf-8

Создал конфиг для Logstash

input {
stdin {
codec => json { charset=>"UTF-8" }
}
}
filter {
if [type] == "onec_call" {
grok {
match => { "message" => ["%{NUMBER:num_min}:%{BASE10NUM:num_sec}-%{WORD:duration},%{WORD:event1c},%{WORD:level_event},p:processName=%{WORD:process1c},Context=%{WORD:context}"]}
}
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
index => "onectj-%{+yyyy.MM.dd}"
}
}

При этом, запись помечается тэгами beats_input_codec_plain_applied, _grokparsefailure и, соответственно, не разбирается.

Если из filter убрать Context=%{WORD:context} (то, что и содержит кириллическое значение), всё нормально разбирается.

Пробовал в input указать codec => plain { charset=>"UTF-8" }, вообще удалить отовсюду указания кодировки, ничего не помогает. В чём может быть проблема?

А вы уверены, что у вас лог в UTF-8, а не, скажем, в какой-нибудь 1251?

Ну, как минимум, Notepad++ распознаёт его как UTF-8 BOM

А если hexdump-ом на байтики посмотреть?

С hexdump не работал, но в WinHex кодовая страница Unicode UTF-8

А какая ошибка в логах filebeat?

А какая ошибка в логах filebeat?

Иногда появляется ошибка:

|2020-02-19T22:06:28.205+0300|ERROR|logstash/async.go:256|Failed to publish events caused by: write tcp 192.168.0.125:57297->192.168.0.204:5044: wsasend: An existing connection was forcibly closed by the remote host.|
|2020-02-19T22:06:29.568+0300|ERROR|pipeline/output.go:121|Failed to publish events: write tcp 192.168.0.125:57297->192.168.0.204:5044: wsasend: An existing connection was forcibly closed by the remote host.|

Но не похоже на то, что это проблема с разбором

В логе logstash ошибок нет

Похоже, что я не там начал копать. Не в кодировке проблема. Проблема, похоже, в том, что %{WORD:event1c}, похоже, не работает с киррилицей. Я бы, наверное, воспользовался csv филтром, а потом потом доработал отдельные поля гроком по необходимости.

csv не такой удобный, мне кажется. Но да, через него всё работает, спасибо!