6

データにタイムスタンプを追加し、elasticsearch-py で一括インデックスを作成してから、kibana でデータを表示しようとしています。

私のデータはキバナに表示されていますが、タイムスタンプは使用されていません。インデックス パターンを構成した後に [Discovery] タブに移動すると、0 件の結果が返されます (はい、検索時間を調整してみました)。

バルク インデックス json は次のようになります。

{'index': 
         {'_timestamp': u'2015-08-11 14:18:26', 
          '_type': 'webapp_fingerprint', 
          '_id': u'webapp_id_redacted_2015_08_13_12_39_34',
          '_index': 'webapp_index'
         }
}

****JSON DATA HERE***

これは Elasticsearch によって受け入れられ、Kibana にインポートされますが、_timestamp フィールドは実際にはインデックス化されません (「時間フィールド名」の下でインデックス パターンを構成するときにドロップダウンに表示されます)。

また、次のようにメタフィールドをフォーマットしようとしました。

{'index': {
           '_type': 'webapp_fingerprint', 
           '_id': u'webapp_id_redacted_2015_08_13_12_50_04', 
           '_index': 'webapp_index'
          }, 
           'source': {
                      '_timestamp': {
                                     'path': u'2015-08-11 14:18:26',
                                     'enabled': True, 
                                     'format': 'YYYY-MM-DD HH:mm:ss'
                                    }
                     }
}

これも機能しません。

最後に、_timestamp フィールドをインデックス内に含めてフォーマットを適用しようとしましたが、elasticsearch でエラーが発生しました。

{'index': {
           '_timestamp': {
                          'path': u'2015-08-11 14:18:26', 
                          'enabled': True, 
                          'format': 'YYYY-MM-DD HH:mm:ss'
                         }, 
           '_type': 'webapp_fingerprint', 
           '_id': u'webapp_id_redacted_2015_08_13_12_55_53', 
           '_index': 'webapp_index'
          }
}

エラーは次のとおりです。

elasticsearch.exceptions.TransportError: 
TransportError(500,u'IllegalArgumentException[Malformed action/metadata 
line [1], expected a simple value for field [_timestamp] but found [START_OBJECT]]')

誰かが提供できるどんな助けも大歓迎です。問題を十分に説明していない場合は、お詫び申し上げます。さらに明確にする必要がある場合はお知らせください。ありがとう。

4

2 に答える 2

7

私自身の問題を修正しました。基本的に、インデックスを作成したときにタイムスタンプのマッピングを追加する必要がありました。

request_body = {
    "settings" : {
        "number_of_shards": 1,
        "number_of_replicas": 0
    },
    "mappings" : {
        "_default_":{
            "_timestamp":{
                 "enabled":"true",
                 "store":"true",
                 "path":"plugins.time_stamp.string",
                 "format":"yyyy-MM-dd HH:m:ss"
             }
         }
    }
}
print("creating '%s' index..." % (index_name))
res = es.indices.create(index = index_name, body = request_body)
print(" response: '%s'" % (res))
于 2015-08-14T13:28:04.427 に答える