如何解决filebeat日志中“别名指向多个索引而没有一个被指定为写入”的错误
作为一部分在仪表板中启用趋势我们需要启用Filebeat,它将日志和度量数据发送到Elasticsearch。如果你在Artifactory filebat .log文件中观察到“别名指向多个索引,而没有一个被指定为写”,这将是由于多个别名名为“active_metrics_data”,而弹性搜索不知道该写哪个索引。
完全错误将类似于下面的一个:2021-08-13 t6:55:31.689 z ERROR [elasticsearch] elasticsearch/客户端。go:224 failed to perform any bulk index operations: 400 Bad Request: {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"no write index is defined for alias [active_metrics_data]. "写索引可以使用is_write_index=false显式禁用,或者别名指向多个索引而没有指定一个为写索引"}],"type":"illegal_argument_exception","reason":"没有为别名[active_metrics_data]定义写索引。写索引可以使用is_write_index=false显式禁用,或者别名指向多个索引而没有指定一个为写索引"},"status":400}
进一步删除其他重复索引的别名将解决这个问题,这样就只剩下一个索引。请参考以下步骤:
执行以下命令来验证重复的active_metrics_data别名:旋度-uadminhttp://localhost:8082/elasticsearch/_cat/aliases| grep "active_metrics_data "
从上面的API输出,如果我们看到active_metrics_data有多个重复的别名,我们必须使用下面的命令设置LATEST别名:curl -X POST -uadminhttp://localhost:8082/elasticsearch/_aliases——header 'Content-Type:application/json' -d '{"actions":[{"add":{"index":"active_metrics_data_2021.08.13-3","alias":"active_metrics_data","is_write_index":true}}]}'然后删除重复的使用下面的删除API:curl -X DELETE -uadminhttp://localhost:8082/elasticsearch/active_metrics_data_2021.08.12-5注意:在添加最新的别名和删除重复的别名时请谨慎。
