返回

Elasticsearch:数据流与数据生命周期管理(二)

后端

数据流设置

  1. 创建索引模板:
  • 使用以下命令创建索引模板:
PUT _index_template/template_name
{
  "index_patterns": ["logstash-*"],
  "mappings": {
    "properties": {
      "@timestamp": {
        "type": "date"
      },
      "message": {
        "type": "text"
      }
    }
  }
}
  • 此模板将用于自动创建索引,并为每个索引分配适当的映射。
  1. 创建数据流:
  • 运行以下命令创建数据流:
POST /_data_stream/my-data-stream
  • 创建数据流后,您可以使用以下命令向其写入数据:
POST /my-data-stream/_doc
{
  "message": "Hello, world!"
}

ILM策略创建

  1. 创建ILM策略:
  • 以下命令创建ILM策略:
PUT /_ilm/policy/my-ilm-policy
{
  "policy": {
    "states": [
      {
        "name": "hot",
        "actions": [
          {
            "rollover": {
              "max_size": "50gb"
            }
          }
        ],
        "transitions": [
          {
            "state_name": "warm",
            "conditions": {
              "max_age": "30d"
            }
          }
        ]
      },
      {
        "name": "warm",
        "actions": [
          {
            "rollover": {
              "max_age": "60d"
            }
          }
        ],
        "transitions": [
          {
            "state_name": "cold",
            "conditions": {
              "max_age": "90d"
            }
          }
        ]
      },
      {
        "name": "cold",
        "actions": [
          {
            "freeze": {}
          }
        ]
      }
    ]
  }
}
  • 此策略将把索引生命周期划分为三个阶段:“热”、“温”和“冷”。在“热”阶段,索引将保留在活动状态并定期轮换。在“温”阶段,索引将被移动到只读节点上,并每60天轮换一次。在“冷”阶段,索引将被冻结,不再接受写入操作。

使用index template

  1. 创建index template:
  • 使用以下命令创建index template:
PUT /_index_template/template_name
{
  "index_patterns": ["logstash-*"],
  "ilm_policy": "my-ilm-policy"
}
  • 此模板将把所有匹配“logstash-*”模式的索引都分配给“my-ilm-policy”策略。

数据生命周期管理

  1. 在数据生命周期内管理数据:
  • ILM策略将自动在数据生命周期内管理数据。在“热”阶段,索引将保留在活动状态并定期轮换。在“温”阶段,索引将被移动到只读节点上,并每60天轮换一次。在“冷”阶段,索引将被冻结,不再接受写入操作。

结论
通过本系列文章的学习,您应该对Elasticsearch数据流和数据生命周期管理有了更深入的了解。您可以使用这些功能来管理您的数据,并确保它们在整个生命周期内都得到妥善处理。