Просмотреть все выполненные запросы elasticsearch
Я хочу просмотреть все запросы, выполненные против экземпляра elasticsearch. Можно ли запустить elasticsearch в режиме отладки или сообщить ему, чтобы сохранить все запросы, выполненные против него?
Цель состоит в том, чтобы увидеть, какие запросы запускаются из программного обеспечения, используя elasticsearch для анализа.
Ответы
Ответ 1
Вы можете изменить настройки в файле конфигурации 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
Отрегулируйте настройки и перезапустите node, а затем обратитесь к журналам, чтобы просмотреть запросы, выполненные против вашего node. Обратите внимание, что в файлах производственного журнала файлы будут быстро увеличиваться.
Ответ 2
Начиная с версии 5 ElasticSearch взимает деньги за эту функциональность. Он называется "Журнал аудита" и теперь является частью X-Pack. Существует бесплатная базовая лицензия, но эта лицензия дает вам только упрощенную функциональность мониторинга. Аутентификация, ведение журнала запросов и все эти довольно простые вещи теперь стоят денег.
Ответ 3
В версии 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: сохранить существующие настройки
Если вы не хотите перезаписывать существующие настройки, а просто добавляете новые, добавьте '' '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"
}