안녕하세요. 오늘은 python을 통한 elasticsearch 연동 관련 프로젝트에서 가장 기본!!! 바로 elasticsearch를 연동해서 클러스터 정보를 출력하는 방법에 대해서 알아보도록 하겠습니다.
저의 환경은 python 3.8, visual studio code에서 진행하고 있습니다.
elasticsearch version 7.6에서 진해했습니다.
visual studio code의 장점은 실제 서버에서 진행되는 것처럼 밑에 터미널 형식으로 나와있다는 점입니다. 그래서 만약 elasticsearch 모듈이 설치가 안되어 있다면 해당 실행 창에서 elasticsearch 모듈 설치 후 진행할 수 있습니다.
일단 아래는 기본적인 소스코드입니다. 정말로 간단하죠?
from elasticsearch import Elasticsearch
import pprint
es = Elasticsearch(f'ip주소:9200', timeout = 30, max_retries=10, retry_on_timeout=True)
pprint.pprint(es.info())
파이썬의 쉽고 예쁘게 출력할 수 있는 pprint 모듈을 활용한 출력
{'cluster_name': 'test-cluster',
'cluster_uuid': 'cluster_uuid',
'name': 'node_001',
'tagline': 'You Know, for Search',
'version': {'build_date': '2020-02-06T00:09:00.449973Z',
'build_flavor': 'default',
'build_hash': '',
'build_snapshot': False,
'build_type': 'deb',
'lucene_version': '8.4.0',
'minimum_index_compatibility_version': '6.0.0-beta1',
'minimum_wire_compatibility_version': '6.8.0',
'number': '7.6.0'}}
기본적인 print를 이용한 출력을 했을 때의 출력.
{'name': 'node_001', 'cluster_name': 'test-cluster', 'cluster_uuid': 'cluster_uuid', 'version': {'number': '7.6.0', 'build_flavor': 'default', 'build_type': 'deb', 'build_hash': '', 'build_date': '2020-02-06T00:09:00.449973Z', 'build_snapshot': False, 'lucene_version': '8.4.0', 'minimum_wire_compatibility_version': '6.8.0', 'minimum_index_compatibility_version': '6.0.0-beta1'}, 'tagline': 'You Know, for Search'}
확실히 이쁘게 출력했을 때 가독성이 좋은 것을 알 수 있습니다.
하지만 이런 기본적인 출력을 원하시는 경우는 없기 때문에 다음 시간부터 실제 필요한 python + elasticsearch 모듈에 대해서 알아보도록 하겠습니다.