Посмотреть все выполненные запросы эластичного поиска
Я хочу видеть все запросы, выполненные для экземпляра эластичного поиска. Можно ли запустить asticsearch в режиме отладки или сказать ему хранить все запросы, выполненные для него?
Цель состоит в том, чтобы увидеть, какие запросы запускаются из программного обеспечения, использующего эластичный поиск для анализа.
4 ответа
В версиях 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
Настройте параметры и перезапустите узел, а затем просмотрите журналы, чтобы просмотреть запросы, выполненные для вашего узла. Обратите внимание, если в производственных файлах журнала будет быстро увеличиваться в размере.
В версии 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 и введите:
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: Сохранить существующие настройки
Если вы не хотите перезаписывать существующие настройки, а просто добавлять новые, добавьте '''preserve_existing=true''' после _settings, например так:
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: Все доступные настройки журнала
Все доступные настройки медленного журнала здесь и ниже для вашей справки:
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"
}
Начиная с версии 5 ElasticSearch взимает деньги за эту функциональность. Он называется "Журнал аудита" и теперь является частью X-Pack. Существует базовая лицензия, которая является бесплатной, но эта лицензия дает вам только упрощенную функциональность мониторинга. Аутентификация, ведение журнала запросов и все эти довольно простые вещи теперь стоят денег.
Да, можно указать Elasticsearch регистрировать все запросы, выполняемые против него, и вы можете настроить уровни ведения журнала, например
DEBUG
. Вы можете изменить его в ES 7.13.x, используя curl:
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
"transient": {
"logger.org.elasticsearch.discovery": "DEBUG"
}
}
'
В macOS файлы журналов хранятся на
$ES_HOME
по умолчанию. Пожалуйста, проверьте документацию о ведении журнала Elasticsearch.