暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何在aws es中正确的管理日志数据

耶喝运维 2021-08-05
2129

目标:

  • 统一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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论