【问题标题】:Logstash character encoding with cisco syslog使用 cisco syslog 进行 Logstash 字符编码
【发布时间】:2018-01-09 15:13:10
【问题描述】:

我已经在服务器上设置了一个 ELK 堆栈。我配置了 logstash 和其他东西,并将 syslog 测试消息发送到 logstash。一切正常。

现在我尝试从 Cisco WLC 和 Cisco Switch 发送 syslog 消息到 logstash,但消息编码似乎错误。

在 logstash 日志文件中,我看到以下条目(我删除了该消息)

[2018-01-09T16:04:24,603][WARN][logstash.codecs.plain] 收到一个与您配置的字符编码不同的事件。 {:text=>"0\x82\u0002B\u0002\u0001\u0001\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"]
  }
}

我已经尝试在输入中使用编解码器,但没有成功。我做错了什么?

【问题讨论】:

    标签: elasticsearch logstash kibana elastic-stack logstash-configuration


    【解决方案1】:

    Logstash 仅支持 RFC3164 系统日志消息,而 Cisco 仅支持 RFC5424。 所以你需要找到一种将 RFC5424 转换为 RFC3164 的方法

    【讨论】:

      【解决方案2】:

      我也有类似的问题。我在输入配置中有一个默认的“tcp”模式。我将它替换为“beats”(因为我使用filebeat将日志发送到logstash),问题就解决了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-21
        • 2015-01-11
        • 2023-03-29
        • 1970-01-01
        • 2012-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多