Управление задачами Elasticsearch

Upravlenie Zadacami Elasticsearch



«В этом посте мы рассмотрим один из экспериментальных API Elasticsearch (на момент написания этого руководства), который позволяет нам просматривать информацию о текущих задачах в кластере.

Управление задачами — важный фактор для любого администратора, и при работе со сложной системой, такой как Elasticsearch, вам потребуется выполнять некоторый мониторинг задач».

Давайте рассмотрим, что влечет за собой этот API и как он может помочь вам как системному администратору.







ПРИМЕЧАНИЕ. В зависимости от конфигурации вашего кластера и настроек безопасности для этого API могут потребоваться права мониторинга.



Синтаксис запроса

Ниже показан синтаксис для отправки запроса в API управления задачами.



ПОЛУЧИТЬ / _задачи /< идентификатор_задачи >

ПОЛУЧИТЬ / _задачи

После запроса API команда должна вернуть подробную информацию о текущих задачах или задаче с указанным идентификатором.





Параметры пути запроса

Запрос поддерживает один параметр пути:

  • — уникальное значение идентификатора задачи, информацию о которой вы хотите получить. Идентификатор задачи соответствует шаблону node_id:task_number.

Запрос параметров запроса

Чтобы настроить поведение и формат возврата запроса, вы можете указать следующие параметры:



  1. Действия — это определяет набор действий, используемых для ограничения запроса. Здесь вы можете определить действия в виде списка значений, разделенных запятыми.
  2. Detailed — это логический параметр, который определяет, показывает ли запрос подробную информацию о восстановлении сегментов или нет. Этот параметр по умолчанию имеет значение false
  3. Group_by — задает ключи, по которым группируются задачи из ответа. Допустимые значения включают:
    • Узлы – идентификатор узла.
    • Parents – идентификатор родителя.
    • Узел – не группировать.
  4. Node_id — определяет узел или список узлов, из которых нужно получить информацию.
  5. parent_task_id — определяет идентификатор родителя, используемый для фильтрации информации ответа. Чтобы показать все задачи, укажите для parent_task_id значение -1.
  6. master_timeout — указывает продолжительность, в течение которой запрос ожидает подключения к мастер-узлу. Если запрос не получает ответа от мастера по истечении времени master_timeout, он терпит неудачу и возвращает ошибку. Продолжительность по умолчанию установлена ​​на 30 секунд.
  7. Timeout — аналогично master_timeout, но это значение определяет продолжительность ожидания любого ответа.
  8. Wait_for_completion — если true, запрос блокируется до завершения операции. По умолчанию ложно.

Ответ

В случае успеха запрос вернет подробную информацию об указанной задаче или задачах. Если задача не найдена, запрос возвращает код статуса 404.

Пример использования

В следующем примере показано, как использовать API управления задачами для отображения информации обо всех задачах, запущенных в кластере (всех узлах).

завиток -XGET «http://localhost:9200/_tasks» -ЧАС 'kbn-xsrf: отчетность'

Запрос должен предоставить информацию о задачах в кластере, как показано в выходных данных ниже:

Пример 2

В следующем примере мы используем параметр узлов, чтобы ограничить ответ только задачами, которые выполняются на узле slave_1.

завиток -XGET «http://localhost:9200/_tasks?nodes=slave_1» -ЧАС 'kbn-xsrf: отчетность'

Это должно вернуть задачи в указанном узле, как показано в выводе ниже:

'задачи' : {
'Fit416fGR1GJefJxOxLurw: 1651265' : {
'узел' : 'раб_1' ,
'я бы' : 1651265 ,
'тип' : 'транспорт' ,
'действие' : 'индексы:монитор/парк/глобальные_контрольные точки' ,
'start_time_in_millis' : 1664214054489 ,
'running_time_in_nanos' : 94450056094 ,
'отменяемый' : ЛОЖЬ,
'заголовки' : {
'X-эластичный-продукт-происхождение' : 'флот'
}
}

Пример 3

В примере 3 мы используем API управления задачами, чтобы показать информацию о задаче с указанным идентификатором:

завиток -XGET «http://localhost:9200/_tasks/Fit416fGR1GJefJxOxLurw:1656310» -ЧАС 'kbn-xsrf: отчетность'

Информация о задаче вывода выглядит следующим образом:

Пример 4

Чтобы отобразить подробную информацию о задаче, добавьте в запрос подробный параметр, как показано ниже:
[cc lang=”apache” width=”100%” height=”100%” escape=”true” theme=”blackboard” nowrap=”0″]
завиток -XGET «http://localhost:9200/_tasks?detailed=true” -H “kbn-xsrf: reporting”
[/с]с
Это должно предоставить дополнительную информацию о задачах:

Вывод

Этот пост исследовал как использовать API управления задачами в Elasticsearch. Этот API позволяет нам получать информацию о текущих задачах в кластере.

Ваше здоровье!! & Я поймаю вас в следующем.