728x90
반응형

Index Template에 ILM 정책에 대한 rollover alias 지정 (legacy index template 용이 아님)

PUT _index_template/app_log
{
  "template": {
    "settings": {
      "index": {
        "lifecycle": {
          "name": "testILM",
          "rollover_alias": "test-alias"
        }
      }
    }
  },
  "index_patterns": [
    "app_log*"
  ],
  "composed_of": []
}

geo_point 추가

POST /_template/access
{
  "mappings": {
    "properties": {
      "geoip": {
        "dynamic": true,
        "type": "object",
        "properties": {
          "location": {
            "type": "geo_point"
          },
          "latitude":{
            "type": "float"
          },
          "longitude":{
            "type": "float"
          }
        }
      }
    }
 },
  "aliases": {}

}


PUT access
{
  "mappings": {
    "properties": {
      "location": {
        "type": "geo_point"
      }
    }
  }
}

인덱스의 쌓인 Document 수 확인

GET /app_log/_count
{
  "query" : {
    "term": { "@timestamp" : "2021-03-09" } /* 하루 쌓이는 document 양 */
  }
}

기존 인덱스에 매핑 등록

PUT sre-www-2023.05
{
  "mappings": {
    "s.type": {
      "full_name": "s.type",
      "mapping": {
        "type": {
          "type": "keyword"
        }
      }
    }
  }
}

새로운 인덱스 생성 및 매핑 등록

PUT sre-www-2023.05-backup
{
  "mappings": {
    "properties": {
      "s.type": {
        "type": "keyword"
      }
    }
  }
}

인덱스의 매핑 필드 정보 보기

GET sre-*/_mapping/field/s.type

인덱스 삭제

DELETE sre-www-2023.05-backup

Reindex 하기

POST /_reindex?wait_for_completion=false
{
  "source": {
    "index": "sre-www-2023.05"
  },
  "dest": {
    "index": "sre-www-2023.05-backup"
  }
}

진행 Task 결과 보기

GET /_tasks

GET /_tasks/H-hNeNJFSCq0J1WPJocVeg:2335496579

POST /_tasks/H-hNeNJFSCq0J1WPJocVeg:2335882225/_cancel

매핑 정보 안들가 있는 인덱스에 넣기

PUT sre-www-2023.02/_mapping
{
  "properties": {
    "s.type": {
      "type": "keyword"
    }
  }
}

기존에 없는 Field 삽입

POST sre-www-2023.02/_update_by_query?conflicts=proceed
{
  "script": {
    "lang": "painless",
    "source": """
      if (ctx._source.s.domain == 'abc.co.kr' || ctx._source.s.domain == 'www.abc.co.kr') {
        ctx._source['s.type'] = 'abc PC';
      } else if(ctx._source.s.domain == 'm.abc.co.kr' || ctx._source.s.domain == 'brandapp-m.abc.co.kr') {
        ctx._source['s.type'] = 'abc 모바일';
      }
    """
  },
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "s.domain": "abc.co.kr"
          }
        },
        {
          "term": {
            "s.domain": "www.abc.co.kr"
          }
        },
        {
          "term": {
            "s.domain": "m.abc.co.kr"
          }
        },
        {
          "term": {
            "s.domain": "brandapp-m.abc.co.kr"
          }
        }
      ]
    }
  }
}

기존에 field의 type이 맞지 않게 들어갔거나 field 나중에 추가된 경우 이전에 것도 Aggreation 하려면 필요한 절차들 이다

728x90
300x250

+ Recent posts