马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1. 节点属性设置
在 Elasticsearch 的每个节点的设置文件(elasticsearch.yml)中,为节点分配自界说属性:
- # 热节点(性能较高的节点)
- node.attr.data_tier: hot
- # 温节点(性能适中的节点)
- node.attr.data_tier: warm
- # 冷节点(性能较低的节点,用于索引归档)
- node.attr.data_tier: cold
复制代码 2. 设置 ILM
ILM 可以主动管理数据的生命周期,包罗将索引从热节点迁移到温节点、冷节点,或最终删除。
创建一个生命周期策略:
- PUT _ilm/policy/log_data_policy
- {
- "policy": {
- "description": "Hot-Warm-Cold ILM",
- "phases": {
- "hot": {
- "min_age": "0ms",
- "actions": {
- "rollover": {
- "max_age": "1d",
- "max_size": "50gb"
- }
- }
- },
- "warm": {
- "min_age": "1d",
- "actions": {
- "allocate": {
- "require": {
- "data_tier": "warm"
- }
- },
- "forcemerge": {
- "max_num_segments": 1
- }
- }
- },
- "cold": {
- "min_age": "7d",
- "actions": {
- "allocate": {
- "require": {
- "data_tier": "cold"
- }
- },
- "forcemerge": {
- "max_num_segments": 1
- },
- "freeze": {}
- }
- },
- "delete": {
- "min_age": "30d",
- "actions": {
- "delete": {}
- }
- }
- }
- }
- }
复制代码 这个策略分为四个阶段:
- 热(hot)阶段:索引会在热节点上存储,支持高频访问。
- 温(warm)阶段:1 天后,索引被迁移到温节点,减少资源斲丧。
- 冷(cold)阶段:7 天后,迁移到冷节点,冻结索引,仅用于低频访问。
- 删除(delete)阶段:30 天后,删除索引以释放存储空间。
3.创建索引模板并绑定 ILM 策略
- PUT _template/log_template
- {
- "index_patterns": [
- "*-log-data-*"
- ],
- "order": 0,
- "settings": {
- "number_of_shards": 1,
- "number_of_replicas": 1,
- "index.routing.allocation.require.data_tier": "hot",
- "index.lifecycle.name": "log_data_policy",
- "index.lifecycle.rollover_alias": "log_alias"
- },
- "aliases": {
- "app_log": {}
- },
- "mappings": {
- "dynamic": false,
- "properties": {
- "@timestamp": {
- "type": "date"
- },
- "application": {
- "type": "keyword",
- "ignore_above": 30
- },
- "class": {
- "type": "keyword",
- "index": false,
- "ignore_above": 256
- },
- "client_ip": {
- "type": "ip"
- },
- "original_ip": {
- "type": "ip"
- },
- "level": {
- "type": "keyword",
- "ignore_above": 10
- },
- "message": {
- "type": "text",
- "analyzer": "standard"
- },
- "response_time": {
- "type": "integer",
- "index": false
- },
- "servlet_path": {
- "type": "keyword",
- "ignore_above": 50
- },
- "status": {
- "type": "integer"
- },
- "thread": {
- "type": "keyword",
- "index": false,
- "ignore_above": 30
- },
- "logtime": {
- "type": "date",
- "format": "yyyy-MM-dd HH:mm:ss.SSS"
- }
- }
- }
- }
复制代码 设置解释:
热阶段(hot phase):
- min_age: "0ms" 表示索引刚创建时就进入热阶段,存储当天的数据。
- rollover 操纵:当索引达到 max_age: "1d" 或者 max_size: "50gb" 时,会触发索引的滚动,创建新的索引并继续写入数据。max_age: "1d" 确保热节点只存储当天的索引。
温阶段(warm phase):
- min_age: "1d" 表示数据在热阶段存储 1 天后转到温阶段,存储1天外至7天内的数据。
- allocate 操纵:将索引迁移到标记为 warm 的节点上,可以在温节点上做段合并(forcemerge),提高查询服从。
冷阶段(cold phase):
- min_age: "7d" 表示数据在7天后进入冷阶段,存储7天外至30天内的数据。
- allocate 操纵:将索引迁移到标记为 cold 的节点上。
- freeze 操纵:将冷数据冻结,这会显著减少存储需求,但会降低查询性能,因为冻结后的索引不能被写入,只能读取。
删除阶段(delete phase):
- min_age: "30d" 表示在数据存储超过30天后将其删除,防止逾期数据占用过多存储空间。
freeze 操纵:
- 在冷阶段使用 freeze 操纵将索引冻结。冻结索引在读取时更节流空间,但不能举行写入或更新操纵。适用于存储不再活跃、且访问频率低的汗青数据。
forcemerge 操纵:
- 在温节点和冷节点阶段举行段合并,减少索引中的段数量,从而提高查询服从和减少存储空间占用。确保该操纵只应用于只读索引。
delete 操纵:
- 设置为30天后删除数据,防止数据积累过多。可以调整 min_age 来控制删除数据的时间窗口。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |