目标:
统一logstash/filebeat索引入口 优雅的管理分片 实现索引的生命周期管理 利用s3作为温节点,降低es索引存储费用
使用方法:
AWS ES ISM policy rollover AWS ES index alias
ISM的rollover限制
索引格式必须与模式匹配:^.*-\d+$. 例如,(logs-000001)
如果在ES设置rollover,首先我们创建一个test-log-000001 的索引
PUT test-log-000001
复制
创建好索引之后,要为这个索引创建一个alias
POST /_aliases
{
"actions" : [
{ "add" :
{ "index" : "test-log-000001", "alias" : "test-log" }
}
]
}复制
当创建好别名之后我们在logstash(filebeat)中直接把数据上传到test-log 这个索引中,在es中他其实会往test-log-000001中写入数据
创建好了之后我们创建一个rollover规则
PUT _opendistro/_ism/policies/rollover_policy
{
"policy": {
"policy_id": "rollover_policy",
"description": "rollover",
"schema_version": 1,
"error_notification": null,
"default_state": "hot",
"states": [
{
"name": "hot",
"actions": [
{
"rollover": {
"min_size": "1gb"
}
}
],
"transitions": [
{
"state_name": "warm"
}
]
},
{
"name": "warm",
"actions": [
{
"replica_count": {
"number_of_replicas": 2
}
}
],
"transitions": []
}
],
"ism_template": [
{
"index_patterns": [
"test-log*"
],
"priority": 100,
}
]
}
}复制
这个规则我们定义了首先当test-log*索引的分片大小达到1gb的时候,我们会自动rollover,把当前的数据变温后replica变为2并且创建一个 test-log-000002的索引,之后我们在通过索引模板的方式为这个新创建的索引附加我们的policy规则
PUT _template/test-log-rollover
{
"index_patterns": [
"test-log-*"
],
"settings": {
"index.opendistro.index_state_management.rollover_alias": "test-log"
}
}复制
这样设置之后新创建的索引也会自动关联 policy的规则并且自动关联test-log 的alias,这样就实现了优雅的管理索引的方式
相关文档:
温数据
索引状态管理
文章转载自耶喝运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。