2017-10-17 6 views
0

私はELKスタックを初めて使用しています。過去1週間のログ検索と弾力的な検索を行います。タイムスタンプ(デフォルトは文字列型と見なされます)を日付型フィールドに変換するのは難しいです。 これは文字列「Thu May 18 06:39:44 CEST 2017」はツールログのタイムスタンプを表し、この文字列をlogstashフィルタ日付プラグインを使用して日付フィールドに変換します。私はそれを作る方法を知らない。ご意見やご協力をいただければ幸いです。ありがとう!logstashフィルタプラグインの文字列をデータフィールドに変換する方法

filter {  
csv {  
    columns =>["Make","Color","Price","Sold"]  
    separator =>","  
}  
date 
{  
match => ["Sold", "DD-MM-YYYY"] # Not sure how to match timestamp in log file to convert to date type.   
target => "Sold"  
}  
mutate{  
    convert => ["Price","float"]  
    }  
} 

//私のcsvファイルには以下のログが含まれているものとします。タイムスタンプ iPhone、銀、260のための最後のフィールド、木9月7日午前11時05分07秒CEST 2017

iPhone、金、400、10月7日(木)12時05分07秒CESTあなたのインデックスを設定し2017

+0

を最初にあなたの努力の一部を表示します。 –

+0

logstash設定ファイルを共有します。 –

+0

@HatimStovewala。お返事をありがとうございます。 plsは設定ファイルを見つけます。 – Arockiyaraj

答えて

0

最初に以下のコマンドを実行します。 (...列のあなたの残りの部分とそのタイプに交換してください。Elasticsearch Put Mappingを参照してください)

PUT date 
{ 
    "mappings": { 
    "date": { 
     "properties": { 
     ..., 
     "TimeStamp": { 
      "type": "date", 
      "format": "EEE MMM dd HH:mm:ss zzz yyyy" 
     }, 
     ... 
     } 
    } 
    } 
} 

さて、あなたはESにデータをプッシュするlogstashを進めることができます。 logstash設定ファイルから日付フィルタを削除します。 ESは文字列を解析して日付に変換します。

注:サンプルデータでテストしているうちに、CESTはタイムゾーンとして受け入れられませんでした。 CESTをCSTに置き換える必要があると思います。この種の解析には、referという問題があります。

タイムゾーンは、あなたのデータにCESTに固定されているなら、あなたは周りにこの作業を行うことができます。

PUT date 
{ 
    "mappings": { 
    "date": { 
     "properties": { 
     ..., 
     "TimeStamp": { 
      "type": "date", 
      "format": "EEE MMM dd HH:mm:ss 'CEST' yyyy" 
     }, 
     ... 
     } 
    } 
    } 
} 
+0

答えをありがとう。私はこの解決策を試し、あなたをアップデートします! – Arockiyaraj

+0

それは動作します!あなたは私の時間を救った。どうもありがとう :) – Arockiyaraj

関連する問題