2017-03-29 13 views
0

SQLデータベースからESに数百万のレコードを移行する必要があります。現在、私たちはGELF HTTP経由でESにレコードを挿入しますが、一度に1レコードしか実行できません。GrayLogでバルクが挿入されているメッセージが表示されない

私はこの2日間で作業しており、GrayLogとElasticSearchの両方に新しいものです。私はメッセージを一括してESに挿入し、それらをGrayLogに表示させる方法を見つけようとしています。私はCerebroを使って、それぞれのインデックスとメッセージ数を監視してきました。一括挿入を実行すると、正しいインデックスでメッセージ数が増えますが、GrayLogでは表示されません。

var _elasticsearchContext = new ElasticsearchContext(ConnectionString, new ElasticsearchMappingResolver()); 
var connectionSettings = new ConnectionSettings(new Uri(ConnectionString)) 
.MapDefaultTypeIndices(m => m.Add(typeof(Auditing_Dev), "auditing-dev_0")); 
var elasticClient = new ElasticClient(connectionSettings); 

var items = new List<Auditing_Dev>(); 

//I loop through a DataReader creating new Auditing_Dev objects 
//and add them to the items collection 

var bulkResponse = elasticClient.Bulk(b => b.IndexMany(items, (d, doc) => d.Document(doc).Index("auditing-dev_0").Type("message"))); 

私は戻って有効な応答を取得し、私は、監査-dev_0指数の脳内の文書数の増加を参照してください。ここで

は私が持っているものです。バルクで挿入したメッセージとHTTPリクエストで挿入したメッセージを比較すると、インデックスとタイプは同じです。私は挿入

メッセージ:HTTP経由で挿入されたものに比べ

{ 
    "_index" : "auditing-dev_0", 
    "_type" : "message", 
    "_id" : "AVsWWn-jNp2NX1vOria1", 
    "_version" : 1, 
    "found" : true, 
    "_source" : { 
    "level" : 5, 
    "origin" : "10.80.3.2", 
    "success" : true, 
    "type" : "AppRiver.Enterprise", 
    "user" : "[email protected]", 
    "gl2_source_input" : "57193c1d0cf25a44afc31c15", 
    "gl2_source_node" : "5866cc80-382e-4287-ae5b-8a0a68a9a1f1", 
    "gl2_remote_ip" : "10.100.20.164", 
    "gl2_remote_port" : 52273, 
    "streams" : [ "578fbabe738a897c6d91336b" ] 
    } 
} 

{ 
    "_index" : "auditing-dev_0", 
    "_type" : "message", 
    "_id" : "e3d34d50-0a8a-11e7-84bb-00155d007a32", 
    "_version" : 1, 
    "found" : true, 
    "_source" : { 
    "level" : 5, 
    "gl2_remote_ip" : "192.168.211.114", 
    "origin" : "192.168.211.35", 
    "gl2_remote_port" : 2960, 
    "streams" : [ "578fbabe738a897c6d91336b" ], 
    "gl2_source_input" : "57193c1d0cf25a44afc31c15", 
    "success" : "True", 
    "gl2_source_node" : "5866cc80-382e-4287-ae5b-8a0a68a9a1f1", 
    "user" : "[email protected]", 
    "timestamp" : "2017-03-16 22:43:44.000" 
    } 
} 

私は_idが異なるフォーマットであることがわかりますが、そのことをしますか?

GrayLogには、入力が1つしかなく、これはGELF HTTP用です。新しい入力を追加する必要はありますか?

答えて

0

タイムスタンプフィールドが存在しないことが判明しました。誰かわかったね?

関連する問題