2017-02-10 11 views
0

私は{ "TS": "1486418325.948487"}のように、ログファイルからタイムスタンプ持っている "filebeat" 5.2.0 私のインフラストラクチャをしている - 私は "TS" へのマッピングを試してみました> "elasticsearch" 5.2decimal timestampに一致する任意のelasticsearchデータ型?

を「日付" - " epoch_second "がファイルビートで失敗しました。

PUT /auth_auditlog 
{ 
    "mappings": { 
    "auth-auditlogs": { 
     "properties": { 
     "ts": { 
      "type": "date", 
      "format": "epoch_second" 
     } 
     } 
    } 
    } 
} 

WARN Can not index event (status=400): {"type":"mapper_parsing_exception","reason":"failed to parse [ts]","caused_by":{"type":"illegal_argument_exception","reason":"Invalid format: \"1486418325.948487\""}} 

ようfilebeatエラーMSG私は、ESは、小数点形式のタイムスタンプを受け入れていないと思うので、 "1486418325" はokです、使用してみました。しかし、pythonのデフォルト出力タイムスタンプはこの形式です。

私の目的は、elasticsearchに正しく入力することです。私はelasticsearchの元のタイムスタンプとしてTSを使用したいと思います。 元のログデータを変更する場合を除き、すべてのソリューションを歓迎します。

答えて

1

Filebeatには、この種類のプロセッサ用のプロセッサはありません。 @timestampをFilebeatのログに置き換えることはできません。あなたができることは、そのようなものをlogstashに送り、dateがパーズエポックをフィルタリングするようにすることです。

date { 
    match => ["timestamp","UNIX","UNIX_MS"] 
} 

他のオプションは、インジェストノードを使用することです。私はこれを自分で使っていませんが、仕事をすることもできるようです。ドキュメントhereをご覧ください。

+0

はい。 ESの5.xシリーズでは、[date processor](https://www.elastic.co/guide/en/elasticsearch/reference/master/date-processor.html) } 'ESの中で、どこかに完全な吹き出しパイプラインに頼ることなくフィルタリングします。 – sysadmin1138

関連する問題