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=\\\"[email protected]\\\" to=\\\"[email protected]\\\" 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"
}
}
イベントの正しい形式にどのコーデックを使用すればよいかわかりませんか?問題は主題分野にあります。
これは、デフォルトの文字セットがUTF-8であり、着信メッセージにUTF-8セットにない文字が含まれていたためです
これを修正するには、コーデックと正しい文字セットを使用して、入力セクションの文字セットを設定します。例えば
file {
path => "var/log/http/access_log"
type => Apache_access_log
codec => plain {
charset => "ISO-8859-1"
}
stat_interval => 60
}
Uが外部サーバーからログを受け取った場合は、以下を使用してみます。
input {
udp {
port => yourListenPort
type => inputType
codec => plain {
charset => "ISO-8859-1"
}
}
}
私は同じエラーがあり、これを使用しました、動作します!