我使用ELK堆栈来分析我的日志文件。我上周已经测试过,一切正常。
今天,我测试了但是当我输入“http://localhost:9200/iot_log/_count”(iot_log是我的索引模式)时出现此错误:
{ “错误”:{ “ROOT_CAUSE”:[{ “类型”: “index_not_found_exception”, “理由”:“无 这样 指数 “ ”resource.type“: ”index_or_alias“, ”resource.id“: ”iot_log“, ”index_uuid“: ” NA “, ”索引“: ”iot_log“}],” 类型“:”index_not_found_exception“,”reason“:”没有这样的 指数”, “resource.type”: “index_or_alias”, “resource.id”: “iot_log”, “index_uuid”: “ NA ”, “索引”: “iot_log”}, “状态” :404}
我真的在论坛上搜索过但我还没有找到解决方案,我想知道这个问题的原因是什么,我该怎么纠正呢?
答案 0 :(得分:11)
确保索引iot_log存在,如果不存在,则create it:
curl -X PUT "localhost:9200/iot_log" -H 'Content-Type: application/json' -d'{ "settings" : { "index" : { } }}'
答案 1 :(得分:3)
您需要在action.auto_create_index
文件中设置elasticsearch.yml
参数。
示例:
action.auto_create_index: -l*,+z*
使用这种配置,将自动创建以“z”开头的索引,而不会以“l”开头的索引。
答案 2 :(得分:0)
在我的情况下,我的所有数据在弹性搜索中自动删除,在弹性搜索中再次导入数据后,我的应用程序运行正常。
答案 3 :(得分:0)
使用以下设置解决问题的最佳方法
允许自动创建YourIndexName和index10,并且不允许任何与index1 *相匹配的索引名称以及与ind *相匹配的任何其他索引。模式按照给定的顺序进行匹配。
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'{
"persistent": {
"action.auto_create_index": "YourIndexName,index10,-index1*,+ind*"
}
}'
停止任何自动索引
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'{
"persistent": {
"action.auto_create_index": "false"
}
}'
允许任何索引自动创建
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'{
"persistent": {
"action.auto_create_index": "true"
}
}'
```