2014-02-13 13 views
31

Ich möchte alle Abfragen sehen, die für eine elasticsearch-Instanz ausgeführt werden. Ist es möglich, elasticsearch in einem Debug-Modus auszuführen oder ihm mitzuteilen, dass alle Abfragen, die dagegen ausgeführt werden, gespeichert werden sollen?Alle ausgeführten Elasticsearch-Abfragen anzeigen

Der Zweck ist zu sehen, welche Abfragen von einer Software gestartet werden, die elasticsearch für Analyse verwendet.

Antwort

23

In Versionen von ElasticSearch vor 5 können Sie dies erreichen, indem Sie die ElasticSearch.yml-Konfigurationsdatei ändern. Ganz am Ende dieser Datei können Sie die Aufzeichnungszeit einstellen alle aufnehmen:

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 

Passen Sie die Einstellungen und starten Sie den Knoten, dann die Protokolle Anhörung der Abfragen für Ihren Knoten ausgeführt anzuzeigen. Beachten Sie, dass in Produktionsprotokolldateien die Größe schnell zunimmt.

+0

Ist es nur protokolliert die langsamen Abfragen? Ich möchte alle Abfragen sehen, sie sind immer noch nicht im Protokoll. – paweloque

+0

@paweloque Passen Sie den Zeitraum so an, dass alle Abfragen und nicht nur diese langsamen Abfragen erfasst werden. – Nate

+2

Um genauer zu sein, sollten Sie in der Lage sein, den Zeitgrenzwert auf Null zu setzen und somit jede Abfrage protokollieren zu lassen. –

1

Beginnend mit Version 5 berechnet ElasticSearch Geld für diese Funktionalität. Es heißt "Audit Log" und ist jetzt Teil von X-Pack. Es gibt eine kostenlose Basislizenz, aber diese Lizenz bietet nur eine einfache Überwachungsfunktionalität. Authentifizierung, Abfrageprotokollierung und all diese eher einfachen Dinge kosten jetzt Geld.

2

In Version 5.x müssen Sie die langsame Protokollierung pro Index festlegen.

Befehlszeile:

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" 
}' 

Oder, wenn Sie verwenden Kibana, gehen Sie zu den Entwicklungstools bar und geben Sie ein:

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: Bewerben Sie sich ALLE Indizes

Sie können die Einstellung für alle Indizes mit dem folgenden Befehl anwenden:

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: Konserve vorhandene Einstellungen

Wenn Sie vorhandene Einstellungen nicht überschrieben werden sollen, sondern nur neue hinzufügen, hinzufügen ‚‘ ‚preserve_existing = true‘ ‚‘ nach _settings, wie folgt aus:

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"} 

Die obige Anfrage wird nur die Einstellungen hinzufügen, wenn sie nicht existieren. Es wird sie nicht ändern, wenn sie schon da sind.

# 3: Alle verfügbaren Protokolleinstellungen

Alle verfügbaren langsamen Protokolleinstellungen sind here und unten für Ihre Referenz:

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" 
}