2016-03-31 36 views
0

私はログテーブルをMySQLテーブルから取得しています。データには、MySQL DBのタイムゾーンに保存されるタイムスタンプフィールド、つまりUTCが含まれています。私のアプリからの時間として "10:27:15"を保存すると、DB内の行には、2時間オフセットされたヨーロッパ/ローマのtzにいるので、「08:27:15Z」が含まれます。
MySQLプラグインを使用してlogstash/esに取得すると、レコードは「de-zoned」となり、データには「06:27:15Z」が含まれます。
正しいTZをデータに適用しようとしているので、ESで「08:27:15Z」と表示されます。 私はConvert timestamp timezone in Logstash for output index nameを試しました。それは、フィールドを複製して、TZを再び適用して再解析しています。
問題は、私は正しいフォーマットである
match => ["tztstamp", "ISO8601"]
を使用して
"tztstamp" => "2016-03-31T06:17:47.000Z"
を解析する「_dateparsefailure」を得ることです。私は無駄な目的のために作られた他のフォーマットも試しました。
サーバーはEurope/Romeタイムゾーンで実行されます。 「@timezone」フィールドには、自動的に正しいUTC時間(現在は2時間)が設定されます。
私の時間をESに修正する方法はありますか?
私はlogstashは「ヨーロッパ/ローマ」タイムゾーンを持つマシン上で実行されている理解では、私は何もLogstashでタイムゾーンを変更します

答えて

0

をしない場合は、「視覚的」の例を追加するには、これはDB
MySQL
Logstash なり。 あなたの例では、tstamp(2016-03-31 08:17:47)フィールドにはTimeZone Infoがありませんので、logstashは "Europe/Rome"で考えます。 Logstashはあなたがdateフィルタのtimezoneオプションを指定する必要が正しいタイムゾーンについて知っているように :

date { 
    match => [ "tstamp", "yyyy-MM-dd HH:mm:ss"] 
    timezone => "UTC" 
} 

また、あなたは_dateparsefailureを取得しているため、tstampのはISO8601形式ではありません。

+0

「2016-03-31T06:17:47.000Z」は、実際にはISO8601です。スクリーンショットはphpmyadminのものです。 –

関連する問題