from elasticsearch import Elasticsearch
# 配置Elasticsearch连接
es = Elasticsearch(["http://localhost:9200"], http_auth=('elastic', 'your_password'))
# 获取索引健康状态
index_name = "your_index_name"
health = es.cluster.health(index=index_name)
print(f"Index {index_name} health status: {health['status']}")
# 如果状态是黄色或红色,尝试修复
if health['status'] == 'yellow':
print(f"Index {index_name} is yellow. Reducing number of replicas.")
es.indices.put_settings(index=index_name, body={"number_of_replicas": 0})
elif health['status'] == 'red':
print(f"Index {index_name} is red. Attempting to reroute and retry failed allocations.")
es.cluster.reroute(retry_failed=True)
# 关闭并重新打开索引
es.indices.close(index=index_name)
es.indices.open(index=index_name)
# 再次检查索引健康状态
health = es.cluster.health(index=index_name)
print(f"Index {index_name} health status after fix attempt: {health['status']}")