elasticsearch 在Elastic中使用Logstash来执行索引策略

icnyk63a  于 7个月前  发布在  ElasticSearch
关注(0)|答案(1)|浏览(80)

我在这件事上寻求帮助,来自Logstash的数据流以索引格式发送数据,例如okd-%{[@metadata][beat]}-%{[@metadata][version]}-2023.10.31我在Elastic中设置了一个名为okd的索引模板,索引模式设置为okd-*-*-*,ILM - name - okd - hot 1d,delete - 2d我得到错误:
非法参数异常:index.lifecycle.rollover_alias [okd-*-*-*]未指向索引[okd-%{[@metadata][beat]}-%{[@metadata][version]}-2023.10.31]
我做错了什么?我试着用不同的别名来做,它仍然不工作,它不根据别名创建文件,也不执行生命策略enter image description here

jljoyd4f

jljoyd4f1#

看起来你的文档不包含任何[@metadata][beat][@metadata][version]字段(也就是说,它们不来自任何Beats,因为你有http和tcp输入),所以索引名不是你所期望的,因为这些字段不能被解析为实际值。
您应该简单地创建一个名为okd-%{+YYYY.MM.dd}的索引,使用像okd-*这样的索引模式,不需要多个通配符。
您还需要更改okd别名以指向这个新索引,可以这样做:

# create the new index
PUT okd-2023.11.01

# clean up aliases
POST _aliases
{
  "actions": [
    {
      "remove": {
        "index": "okd-*",
        "alias": "okd"
      }
    },
    {
      "add": {
        "index": "okd-2023.11.01",
        "alias": "okd"
      }
    }
  ]
}

# remove the lifecycle policies from the old indexes
# note: the index name must be URL-encoded because of the special characters
POST okd-%25%7B%5B%40metadata%5D%5Bbeat%5D%7D-%25%7B%5B%40metadata%5D%5Bversion%5D%7D-*/_ilm/remove

字符串
试试看,看看会有什么结果。

相关问题