Кодировка символов Logstash с помощью системного журнала cisco

Я установил стек ELK на сервере. Я настроил logstash и другие вещи и отправил тестовые сообщения системного журнала в logstash. Все работает нормально.

Теперь я пытаюсь отправить сообщения системного журнала от Cisco WLC и коммутатора Cisco в logstash, и кажется, что кодировка сообщений неверна.

В файле журнала logstash я вижу следующую запись (я удалил сообщение)

[2018-01-09T16:04:24,603][WARN ][logstash.codecs.plain ] Получено событие с кодировкой символов, отличной от настроенной вами. {:text=>"0\x82B\u000... [УДАЛЕНО ИЗ СООТВЕТСТВИЯ БЕЗОПАСНОСТИ], :expected_charset=>"UTF-8"}

Ввод моего конфигурационного файла logstash выглядит следующим образом:

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

filter {
  if [type] == "syslog" {
    grok {
     match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
     add_field => [ "received_at", "%{@timestamp}" ]
     add_field => [ "received_from", "%{host}" ]
    }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}


output {
  elasticsearch {
  hosts => ["localhost:9200"]
  }
}

Я уже пробовал экспериментировать с кодеком на входе, но безуспешно. Что я делаю неправильно?


person Hannes    schedule 09.01.2018    source источник


Ответы (2)


Logstash поддерживает только сообщения системного журнала RFC3164, а Cisco поддерживает только RFC5424. поэтому вам нужно найти способ преобразовать RFC5424 в RFC3164.

person Mozart4242    schedule 13.11.2018

У меня аналогичная проблема. У меня был режим «tcp» по умолчанию во входной конфигурации. Я заменил его на «биты» (потому что я использую filebeat для отправки журналов в logstash), и проблема была решена.

person Francisco Javier Tsao Santín    schedule 08.05.2018