오픈소스/ElasticSearch

ES API

민둥곰 2021. 9. 15. 15:35

API


 

모니터링 API


 

 

# 클러스터 및 인덱스 모니터링 API 
#해당 서버 node 및 cluster $curl -XGET http://{Elasticsearch server ip}:9200
 {
 "name" : "{node-name}",
 "cluster_name" : {"Clustername}",
 "cluster_uuid" : "{UUID}",
 "version" : { 
"number" : "7.10.2",
 "build_flavor" : "default",
 "build_type" : "rpm",
 "build_hash" : "747e1cc71def077253878a59143c1f785afa92b9",
 "build_date" : "{DATE}",
 "build_snapshot" : false, "lucene_version" : "8.7.0",
 "minimum_wire_compatibility_version" : "6.8.0",
 "minimum_index_compatibility_version" : "6.0.0-beta1"
 },
 "tagline" : "You Know, for Search"

 #cluster health 체크 green이 정상이며 yellow 는 개발 대역에서 크게 신경 안 써도 되는 부분.
 $ curl -XGET http://{Elasticsearch server ip}/_cluster/health?pretty
 {
 "cluster_name" : {"Clustername}",
 "status" : "yellow",
 "timed_out" : false,
 "number_of_nodes" : 1,
 "number_of_data_nodes" : 1,
 "active_primary_shards" : 35,
 "active_shards" : 35,
 "relocating_shards" : 0,
 "initializing_shards" : 0,
 "unassigned_shards" : 10,
 "delayed_unassigned_shards" : 0,
 "number_of_pending_tasks" : 0,
 "number_of_in_flight_fetch" : 0,
 "task_max_waiting_in_queue_millis" : 0,
 "active_shards_percent_as_number" : 77.77777777777779
 }

 # index 별 상황 및 세부 정보 확인 AP
I $ curl -XGET http://{Elasticsearch server ip}/_cat/indices?v
 health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
 green open .triggered_watches B_JNRjXqSz-BMvOiKeQxUw 1 0 0 0 296b 296b
 green open .reporting-2020.05.31 BR0puqHxRMWZDNUjuFTLbA 1 0 1 0 12.9kb 12.9kb
 green open .reporting-2020.03.15 dlLzAIkuSOuc2BG_jmCjUA 1 0 1 0 27.2kb 27.2kb
 green open .apm-custom-link zh9buSLmRqCtDgO3mkeATA 1 0 0 0 208b 208b green open .kibana_task_manager_2 7lq-iARZRJCKiCZJhb4OlA 1 0 6 24349 16.3mb 16.3mb (...중략...)

 

Index 설정 변경 API


# single 노드에서 index health green으로 바꾸기 위한 설정
$ curl -XPUT http://{Elasticsearch server ip}:9200/*/_settings
{
"index" : {
  "number_of_replicas":0,
  "auto_expand_replicas": false
 }
}

 

 

ILM (Index-Lifecycle-Management)


#hot-warm 미 적용 delete 정책만 적용
#ILM 정책 생성
#30일 후 삭제 정책
#현재 확인 결과 day 기준으로만 설정 가능 현재 인덱스명-YY.MM으로 되어 있어 인덱스명-YY.MM.DD로 설정 변경 필요
PUT /_ilm/policy/sql-slowquery-policy
{
"policy": {
  "phases": {
    "hot": {
    "actions": {}
  },
  "delete": {
    "min_age": "30d",
    "actions": {
      "delete": {}
      }
    }
  }
 }
}
 
 
#인덱스 템플릿 ILM 적용 예제
......
"settings": {
"number_of_shards": {number},
"number_of_replicas": {number},
"index.lifecycle.name": "policy-name"
}
.....