web-dev-qa-db-ja.com

実行されたすべてのelasticsearchクエリを見る

Elasticsearchインスタンスに対して実行されたすべてのクエリを見たいです。 elasticsearchをデバッグモードで実行することはできますか、それに対して実行されたすべてのクエリを保存するように指示することは可能ですか?

目的は、分析用のelasticsearchを使用して、ソフトウェアから起動されたクエリを確認することです。

39
paweloque

ElasticSearchの5より前のバージョンでは、ElasticSearch.yml設定ファイルを変更することでこれを実現できます。このファイルの一番下で、ロギング時間を調整してすべてを記録できます。

index.search.slowlog.threshold.query.warn: 10s
index.search.slowlog.threshold.query.info: 5s
index.search.slowlog.threshold.query.debug: 2s
index.search.slowlog.threshold.query.trace: 500ms

index.search.slowlog.threshold.fetch.warn: 1s  
index.search.slowlog.threshold.fetch.info: 800ms
index.search.slowlog.threshold.fetch.debug: 500ms
index.search.slowlog.threshold.fetch.trace: 200ms

index.indexing.slowlog.threshold.index.warn: 10s
index.indexing.slowlog.threshold.index.info: 5s
index.indexing.slowlog.threshold.index.debug: 2s
index.indexing.slowlog.threshold.index.trace: 500ms

設定を調整してノードを再起動し、ログを参照して、ノードに対して実行されたクエリを表示します。運用ログファイルのサイズが急速に増加する場合に注意してください。

28
Nathan

バージョン5.xでは、インデックスごとにスローログロギングを設定する必要があります。

コマンドライン:

curl -XPUT 'http://localhost:9200/myindexname/_settings' -d '{
"index.indexing.slowlog.threshold.index.debug" : "0s",
"index.search.slowlog.threshold.fetch.debug" : "0s",
"index.search.slowlog.threshold.query.debug" : "0s"
}'

または、Kibanaを使用している場合は、Dev Toolsバーに移動しますそして入力:

PUT /myindexname/_settings 
{"index.indexing.slowlog.threshold.index.debug": "0s", 
"index.search.slowlog.threshold.fetch.debug" : "0s", 
"index.search.slowlog.threshold.query.debug": "0s"}

#1:すべてのインデックスに適用

次のコマンドを使用して、すべてのインデックスに設定を適用できます。

PUT /_all/_settings 
{"index.indexing.slowlog.threshold.index.debug": "0s", 
"index.search.slowlog.threshold.fetch.debug" : "0s", 
"index.search.slowlog.threshold.query.debug": "0s"}

#2:既存の設定を保持します

既存の設定を上書きせずに、新しい設定を追加するだけの場合は、_settingsの後に次のように '' 'preserve_existing = true' ''を追加します。

PUT /_all/_settings?preserve_existing=true 
{"index.indexing.slowlog.threshold.index.debug": "0s", 
"index.search.slowlog.threshold.fetch.debug" : "0s", 
"index.search.slowlog.threshold.query.debug": "0s"}

上記のリクエストは、設定が存在しない場合にのみ追加します。それらが既に存在する場合、それらは変更されません。

#3:利用可能なすべてのログ設定

参照可能なスローログ設定はすべて here 以下です。

PUT /test_index/_settings
{
"index.search.slowlog.threshold.query.warn": "60s",
"index.search.slowlog.threshold.query.info": "5s",
"index.search.slowlog.threshold.query.debug": "1s",
"index.search.slowlog.threshold.query.trace": "0.1s",
"index.search.slowlog.threshold.fetch.warn": "30s",
"index.search.slowlog.threshold.fetch.info": "5s",
"index.search.slowlog.threshold.fetch.debug": "1s",
"index.search.slowlog.threshold.fetch.trace": "0.1s",
"index.indexing.slowlog.threshold.index.warn": "6s",
"index.indexing.slowlog.threshold.index.info": "5s",
"index.indexing.slowlog.threshold.index.debug": "1s",
"index.indexing.slowlog.threshold.index.trace": "0.1s",
"index.indexing.slowlog.level": "info",
"index.indexing.slowlog.source": "1000"
}
12
IvanD

バージョン5以降、ElasticSearchはこの機能に料金を請求します。これは「監査ログ」と呼ばれ、現在はX-Packの一部です。無料の基本ライセンスが利用可能ですが、このライセンスは単純な監視機能のみを提供します。現在、認証、クエリロギング、およびこれらすべてのかなり基本的なことには費用がかかります。

8
Toumal