Elasticsearch - API кластера

API кластера используется для получения информации о кластере и его узлах и внесения в них изменений. Чтобы вызвать этот API, нам нужно указать имя узла, адрес или _local.

GET /_nodes/_local

При запуске приведенного выше кода мы получаем ответ, как показано ниже -

………………………………………………
cluster_name" : "elasticsearch",
   "nodes" : {
      "FKH-5blYTJmff2rJ_lQOCg" : {
         "name" : "ubuntu",
         "transport_address" : "127.0.0.1:9300",
         "host" : "127.0.0.1",
         "ip" : "127.0.0.1",
         "version" : "7.0.0",
         "build_flavor" : "default",
         "build_type" : "tar",
         "build_hash" : "b7e28a7",
         "total_indexing_buffer" : 106502553,
         "roles" : [
            "master",
            "data",
            "ingest"
         ],
         "attributes" : {
………………………………………………

Состояние кластера

Этот API используется для получения статуса работоспособности кластера путем добавления ключевого слова «здоровье».

GET /_cluster/health

При запуске приведенного выше кода мы получаем ответ, как показано ниже -

{
   "cluster_name" : "elasticsearch",
   "status" : "yellow",
   "timed_out" : false,
   "number_of_nodes" : 1,
   "number_of_data_nodes" : 1,
   "active_primary_shards" : 7,
   "active_shards" : 7,
   "relocating_shards" : 0,
   "initializing_shards" : 0,
   "unassigned_shards" : 4,
   "delayed_unassigned_shards" : 0,
   "number_of_pending_tasks" : 0,
   "number_of_in_flight_fetch" : 0,
   "task_max_waiting_in_queue_millis" : 0,
   "active_shards_percent_as_number" : 63.63636363636363
}

Состояние кластера

Этот API используется для получения информации о состоянии кластера путем добавления URL-адреса ключевого слова state. Информация о состоянии содержит версию, главный узел, другие узлы, таблицу маршрутизации, метаданные и блоки.

GET /_cluster/state

При запуске приведенного выше кода мы получаем ответ, как показано ниже -

………………………………………………
{
   "cluster_name" : "elasticsearch",
   "cluster_uuid" : "IzKu0OoVTQ6LxqONJnN2eQ",
   "version" : 89,
   "state_uuid" : "y3BlwvspR1eUQBTo0aBjig",
   "master_node" : "FKH-5blYTJmff2rJ_lQOCg",
   "blocks" : { },
   "nodes" : {
      "FKH-5blYTJmff2rJ_lQOCg" : {
      "name" : "ubuntu",
      "ephemeral_id" : "426kTGpITGixhEzaM-5Qyg",
      "transport
   }
………………………………………………

Статистика кластера

Этот API помогает получать статистику о кластере с помощью ключевого слова stats. Этот API возвращает номер шарда, размер хранилища, использование памяти, количество узлов, ролей, ОС и файловую систему.

GET /_cluster/stats

При запуске приведенного выше кода мы получаем ответ, как показано ниже -

………………………………………….
"cluster_name" : "elasticsearch",
"cluster_uuid" : "IzKu0OoVTQ6LxqONJnN2eQ",
"timestamp" : 1556435464704,
"status" : "yellow",
"indices" : {
   "count" : 7,
   "shards" : {
      "total" : 7,
      "primaries" : 7,
      "replication" : 0.0,
      "index" : {
         "shards" : {
         "min" : 1,
         "max" : 1,
         "avg" : 1.0
      },
      "primaries" : {
         "min" : 1,
         "max" : 1,
         "avg" : 1.0
      },
      "replication" : {
         "min" : 0.0,
         "max" : 0.0,
         "avg" : 0.0
      }
………………………………………….

Настройки обновления кластера

Этот API позволяет обновлять настройки кластера с помощью ключевого слова settings. Есть два типа настроек - постоянные (применяются при перезапусках) и временные (не выдерживают полного перезапуска кластера).

Статистика узла

Этот API используется для получения статистики еще одного узла кластера. Статистика узла почти такая же, как и у кластера.

GET /_nodes/stats

При запуске приведенного выше кода мы получаем ответ, как показано ниже -

{
   "_nodes" : {
      "total" : 1,
      "successful" : 1,
      "failed" : 0
   },
   "cluster_name" : "elasticsearch",
   "nodes" : {
      "FKH-5blYTJmff2rJ_lQOCg" : {
         "timestamp" : 1556437348653,
         "name" : "ubuntu",
         "transport_address" : "127.0.0.1:9300",
         "host" : "127.0.0.1",
         "ip" : "127.0.0.1:9300",
         "roles" : [
            "master",
            "data",
            "ingest"
         ],
         "attributes" : {
            "ml.machine_memory" : "4112797696",
            "xpack.installed" : "true",
            "ml.max_open_jobs" : "20"
         },
………………………………………………………….

Узлы hot_threads

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

GET /_nodes/hot_threads

При запуске приведенного выше кода мы получаем ответ, как показано ниже -

:::{ubuntu}{FKH-5blYTJmff2rJ_lQOCg}{426kTGpITGixhEzaM5Qyg}{127.0.0.1}{127.0.0.1:9300}{ml.machine_memory=4112797696,
xpack.installed=true, ml.max_open_jobs=20}
 Hot threads at 2019-04-28T07:43:58.265Z, interval=500ms, busiestThreads=3,
ignoreIdleThreads=true: