[Cluster Health]
기본적인 cluster health check부터 시작해 보자. 이를 통해 우리는 cluster가 어떻게 작업을 수행하고 있는지 볼 수 있다. Curl을 사용하여 health check하겠지만, HTTP/REST call을 수행할 수 있는 어떤 tool을 사용해도 된다. Elasticsearch를 실행한 node에 있다고 가정하고, 또 다른 command shell window를 open하자.
Cluster health check하기 위해서, _cat API를 사용할 것이다. 이전에 node의 endpoint 주소를 기억해보면 9200 포트를 사용했다.
curl 'localhost:9200/_cat/health?v'
응답 결과는 다음과 같다.
epoch timestamp cluster status node.total node.data shards pri
relo init unassign
1394735289 14:28:09
elasticsearch green 1 1 0 0 0 0 0
Cluster name이 elasticsearch임을 알 수 있다. 현재 cluser 상태는 green status이다.
Cluster health에 대해 언제든지 질의하면, green/yellow/red 중 한가지 상태를 알 수 있다. Green은 모든 것이 좋은 상태 (cluster가 모든 기능을 정상적으로 수행)임을 의미하고, yellow는 모든 data를 이용할 수는 있지만, 몇몇 replicas가 아직 할당되지 않은 상태(cluster가 모든 기능을 정상적으로 수행)임을 의미하고, red는 몇몇 데이터를 이용할 수 없는 상태임을 의미한다. Cluster가 red 상태일지라도 부분적으로 동작한다. (이용 가능한 shard에 있는 데이터에 대한 검색 요청을 지속적으로 수행) 하지만, 유실한 데이터가 있기 때문에 ASAP(As Soon As Possible) 문제 상황을 fix해야 한다.
위의 응답 결과로부터 우리는 전체 1개의 node가 있고, 0개의 shard가 있음을 알 수 있다. 왜냐하면 아직 데이터가 없기 때문이다. Default cluster name (elasticsearch)를 사용했고, 다른 node를 discover하기 위해서 elasticsearch는 multicase를 사용하므로 네트워크 상에서 하나 이상의 node를 우연하게 실행하면 모두 cluster에 join하게 된다. 이 시나리오에서는 응답 결과로 1개 이상의 node를 볼 수 있을 것이다.
다음과 같이 cluster에 있는 node list를 볼 수 있다.
curl 'localhost:9200/_cat/nodes?v'
응답은 다음과 같다.
curl 'localhost:9200/_cat/nodes?v'
host ip heap.percent
ram.percent load node.role master name
mwubuntu1 127.0.1.1 8 4 0.00 d * New Goblin
여기서 우리는 현재 cluster에 있는 단일 node name이 "New Goblin"임을 알 수 있다.
댓글을 달아 주세요
댓글 RSS 주소 : http://www.yongbi.net/rss/comment/689