Запись диагностических данных
Инструмент Elasticsearch Support Diagnostic создаёт моментальный снимок статистики кластера и большинства настроек. Он работает со всеми версиями Elasticsearch.
Эта информация может быть использована для устранения проблем с вашим кластером. Примеры проблем, которые можно устранить с помощью вывода инструмента Support Diagnostic, см. в блоге Elastic.
Вы можете сгенерировать диагностическую информацию с помощью этого инструмента перед обращением в поддержку Elastic или форум Elastic, чтобы сократить время обработки.
См. это видео для пошаговой инструкции по записи диагностики Elasticsearch.
Требования
- Java Runtime Environment или Java Development Kit v1.8 или выше
Доступ к инструменту
Инструмент Support Diagnostic включён как подбиблиотека в некоторых развертываниях Elastic:
- Elastic Cloud Enterprise: Расположен в Elastic Cloud Enterprise > Развертывание > Операции > Подготовить пакет > Elasticsearch.
- Elastic Cloud на Kubernetes: Запускается как
eck-diagnostics.
Вы также можете загрузить файл diagnostics-X.X.X-dist.zip для последней версии Support Diagnostic с репозитория support-diagnostic.
Запись диагностической информации
Чтобы записать диагностическую информацию Elasticsearch:
-
В терминале проверьте, достаточны ли ваше сетевое подключение и разрешения пользователя для подключения к кластеру Elasticsearch, проверив состояние кластера состояние.
Например, с параметрами
host:localhost,port:9200иusername:elasticвы бы использовали следующий запрос curl:curl -X GET -k -u elastic -p https://localhost:9200/_cluster/health
Если вы получите ответ HTTP 200
OK, то можете перейти к следующему шагу. Если вы получите другой код ответа, то устраните проблему перед продолжением. -
Используя те же параметры среды, запустите скрипт диагностического инструмента.
Дополнительную информацию о параметрах, которые можно передать инструменту, см. в справочнике по параметрам диагностики.
Рекомендуются следующие параметры команд:
Системы на базе Unix
sudo ./diagnostics.sh --type local --host localhost --port 9200 -u elastic -p --bypassDiagVerify --ssl --noVerify
Windows
sudo .\diagnostics.bat --type local --host localhost --port 9200 -u elastic -p --bypassDiagVerify --ssl --noVerify
Режимы выполнения скрипта
Вы можете выполнить скрипт в трёх режимах:
-
local(по умолчанию, рекомендуется): Опрашивает API Elasticsearch, собирает информацию об операционной системе и записывает журналы кластера и сборки мусора. -
remote: Устанавливает сеанс ssh на соответствующий целевой сервер для получения той же информации, что иlocal. -
api: Опрашивает API Elasticsearch. Вся остальная информация должна быть собрана вручную.
-
- После завершения скрипта проверьте, что в
diagnostic.logне было зарегистрировано ошибок. Если журнал ошибок содержит ошибки, обратитесь к Устранение ошибок вdiagnostic.log. - Если скрипт завершился без ошибок, то архив с форматом
<diagnostic type>-diagnostics-<DateTimeStamp>.zipсоздаётся в рабочей директории или в указанной вами директории вывода. При необходимости вы можете просмотреть или поделиться диагностическим архивом.
Устранение ошибок ответа состояния кластера, отличного от 200
При опросе состояния кластера, если вы получите любой ответ, кроме 200 0K, то инструмент диагностики может не работать должным образом. Ниже приведены возможные коды ошибок и их решения:
- HTTP 401
UNAUTHENTICATED - Дополнительная информация в сообщении об ошибке, как правило, указывает, что ваша пара
username:passwordневерна или что ваш индекс.securityнедоступен, и вам нужно настроить временного пользователя сrole:superuserдля аутентификации. - HTTP 403
UNAUTHORIZED - Ваш
usernameраспознаётся, но имеет недостаточные права для запуска диагностики. Используйте другой имя пользователя или повысьте права пользователя. - HTTP 429
TOO_MANY_REQUESTS(например,circuit_breaking_exception) - Ваш имя пользователя аутентифицирован и авторизован, но кластер подвергается достаточно высокой нагрузке, чтобы не отвечать на API-вызовы. Такие ответы, как правило, временны. Вы можете продолжить запуск диагностики, но результаты диагностики могут быть неполными.
- HTTP 504
BAD_GATEWAY - У вашей сети возникли проблемы с доступом к кластеру. Возможно, вы используете прокси или брандмауэр. Попробуйте запустить инструмент диагностики из другого места, подтвердите свой порт или используйте IP-адрес вместо доменного имени URL.
- HTTP 503
SERVICE_UNAVAILABLE(например,master_not_discovered_exception) - В вашем кластере в данный момент нет избранного узла-мастера, что необходимо для API-отклика. Это может быть временно, пока мастер-узел не переключится. Если проблема сохраняется, то исследуйте причину перед продолжением.
Устранение ошибок в diagnostic.log
Ниже приведены распространённые ошибки, которые могут возникнуть при запуске диагностического инструмента:
-
Error: Could not find or load main class com.elastic.support.diagnostics.DiagnosticAppЭто указывает на то, что вы случайно загрузили файл исходного кода вместо
diagnostics-X.X.X-dist.zipсо страницы релизов. -
Could not retrieve the Elasticsearch version due to a system or network error - unable to continue.Это указывает на то, что диагностика не смогла выполнить команды на кластере. Повторите опрос состояния кластера и убедитесь, что при запуске пакетной или командной файла вы используете те же параметры.
-
Ошибка
security_exception, которая включаетis unauthorized for user:У предоставленного пользователя недостаточно прав администратора для запуска инструмента диагностики. Используйте другого пользователя или предоставьте пользователю права
role:superuser.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/diagnostic.html