При работе администратором баз данных понимание того, как управлять кластером, является одним из наиболее важных моментов.
В этой статье мы покажем, как начать работу с администрированием кластера, получая и обновляя настройки кластера.
Elasticsearch Получение API настроек кластера
Для получения настроек кластера в Elasticsearch мы можем использовать API GET cluster settings, как показано в следующем синтаксисе:
1 | GET /_cluster/settings |
API должен вернуть настройки кластера. Следует помнить, что для работы с этой конечной точкой API могут потребоваться привилегии monitor или manage.
Пример: Получение всех настроек кластера
Следующий пример запроса показывает все настройки кластера в явном виде:
1 | curl -XGET "http://localhost:9200/_cluster/settings" -H "kbn-xsrf: reporting" |
Полученный результат выглядит следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | { "persistent": { "action": { "auto_create_index": ".ent-search-*-logs-*,-.ent-search-*,+*" }, "cluster": { "indices": { "close": { "enable": "true" } }, "metadata": { "display_name": "elk_stack" } }, "slm": { "retention_schedule": "0 20,50 * * * ?" } }, "transient": { "action": { "auto_create_index": ".ent-search-*-logs-*,-.ent-search-*,+*" } } } |
Чтобы включить настройки кластера по умолчанию, мы можем включить параметр include_defaults, как показано ниже:
1 | curl -XGET "http://localhost:9200/_cluster/settings?include_defaults=true" -H "kbn-xsrf: reporting" |
Установка параметра include_defaults в true включает настройки кластера по умолчанию, как показано в следующем примере:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | "defaults": { "cluster": { "max_voting_config_exclusions": "10", "metadata": { "managed_index_templates": ".cloud-", "managed_repository": "found-snapshots", "managed_policies": "[cloud-snapshot-policy]" }, "auto_shrink_voting_configuration": "true", "discovery_configuration_check": { "interval": "30000ms" }, "election": { "duration": "500ms", "initial_timeout": "100ms", "max_timeout": "10s", "back_off_time": "100ms", "strategy": "supports_voting_only" }, "no_master_block": "write", "persistent_tasks": { "allocation": { "enable": "all", "recheck_interval": "30s" } }, "blocks": { "read_only_allow_delete": "false", "read_only": "false" }, "remote": { "initial_connect_timeout": "30s", "node": { "attr": "" }, "connections_per_cluster": "3" }, "follower_lag": { "timeout": "90000ms" }, "routing": { "use_adaptive_replica_selection": "true", "rebalance": { "enable": "all" }, "allocation": { "enforce_default_tier_preference": "true", "node_concurrent_incoming_recoveries": "2", "node_initial_primaries_recoveries": "4", "same_shard": { "host": "false" }, "total_shards_per_node": "-1", "type": "balanced", "disk": { "threshold_enabled": "true", "reroute_interval": "60s", "watermark": { "flood_stage.frozen.max_headroom": "20GB", "flood_stage": "95%", "high": "90%", "low": "85%", "enable_for_single_data_node": "true", "flood_stage.frozen": "95%" } }, "awareness": { "attributes": [ "region", "logical_availability_zone" ] }, "balance": { "index": "0.55", "threshold": "1.0", "shard": "0.45" }, "enable": "all", "node_concurrent_outgoing_recoveries": "2", "allow_rebalance": "indices_all_active", "cluster_concurrent_rebalance": "2", "node_concurrent_recoveries": "2" } }, "indices": { "tombstones": { "size": "500" } }, "join_validation": { "cache_timeout": "60s" }, "max_shards_per_node.frozen": "3000", "nodes": { "reconnect_interval": "10s" }, "service": { "master_service_starvation_logging_threshold": "5m", "slow_master_task_logging_threshold": "10s", "slow_task_logging_threshold": "30s" }, "publish": { "timeout": "30000ms", "info_timeout": "10000ms" }, "name": "93bb98ab7e8c413bbb62abd77d602be8", "fault_detection": { "leader_check": { "interval": "1000ms", "timeout": "10000ms", "retry_count": "3" }, "follower_check": { "interval": "1000ms", "timeout": "10000ms", "retry_count": "3" } }, "max_shards_per_node": "1000", "initial_master_nodes": [ "instance-0000000000", "instance-0000000001", "tiebreaker-0000000002" ], "deprecation_indexing": { "enabled": "true", "x_opaque_id_used": { "enabled": "true" } }, ------------------ ВЫВОД УСЕЧЕН ---------------------- |
Мы также можем показать настройки кластера в плоском формате, задав параметр flat_settings, как показано ниже:
1 | curl -XGET "http://localhost:9200/_cluster/settings?flat_settings=true" -H "kbn-xsrf: reporting" |
Выходные данные:
1 2 3 4 5 6 7 8 9 10 11 | { "persistent": { "action.auto_create_index": ".ent-search-*-logs-*,-.ent-search-*,+*", "cluster.indices.close.enable": "true", "cluster.metadata.display_name": "elk_stack", "slm.retention_schedule": "0 20,50 * * * ?" }, "transient": { "action.auto_create_index": ".ent-search-*-logs-*,-.ent-search-*,+*" } } |
Заключение
В этой статье вы научились получать настройки кластера с помощью API получение параметров кластера.