使用 cisco syslog 的 Logstash 字符编码
Logstash character encoding with cisco syslog
我已经在服务器上设置了一个 ELK 堆栈。我配置了 logstash 和其他东西,并将 syslog 测试消息发送到 logstash。一切正常。
现在我尝试将 syslog 消息从 Cisco WLC 和 Cisco 交换机发送到 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"]
}
}
我已经尝试在输入中尝试使用编解码器,但没有成功。我做错了什么?
我也有类似的问题。我在输入配置中有一个默认的 "tcp" 模式。我将其替换为 "beats"(因为我使用 filebeat 将日志发送到 logstash),问题已解决。
Logstash 仅支持 RFC3164 syslog 消息,而 Cisco 仅支持 RFC5424。
所以你需要找到一种方法将 RFC5424 转换为 RFC3164
我已经在服务器上设置了一个 ELK 堆栈。我配置了 logstash 和其他东西,并将 syslog 测试消息发送到 logstash。一切正常。
现在我尝试将 syslog 消息从 Cisco WLC 和 Cisco 交换机发送到 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"]
}
}
我已经尝试在输入中尝试使用编解码器,但没有成功。我做错了什么?
我也有类似的问题。我在输入配置中有一个默认的 "tcp" 模式。我将其替换为 "beats"(因为我使用 filebeat 将日志发送到 logstash),问题已解决。
Logstash 仅支持 RFC3164 syslog 消息,而 Cisco 仅支持 RFC5424。 所以你需要找到一种方法将 RFC5424 转换为 RFC3164