파이썬으로 Kibana 시각화 만들기

Kibana는 Elasticsearch를 위한 시각화 및 대시보드 도구로, 데이터를 시각적으로 표현하고 인사이트를 발견하는 데 도움을 줍니다. 파이썬을 사용하여 Kibana 시각화를 만들 수 있는 몇 가지 방법을 살펴보겠습니다.

1. Kibana REST API 활용

Kibana는 REST API를 통해 데이터를 가져오고 대시보드를 생성할 수 있습니다. 파이썬에서 requests 라이브러리를 사용하여 Kibana의 REST API를 호출하여 데이터를 가져온 후, Matplotlib 또는 Plotly 등의 시각화 라이브러리를 사용하여 데이터를 시각화할 수 있습니다.

예를 들어, 다음은 Kibana REST API를 사용하여 Elasticsearch에서 데이터를 가져와 막대 그래프로 시각화하는 간단한 예제입니다.

import requests
import matplotlib.pyplot as plt

# Kibana REST API 호출
response = requests.get('http://localhost:5601/api/saved_objects/_find?type=index-pattern&fields=title')
data = response.json()

# 데이터 처리 및 시각화
titles = [hit['title'] for hit in data['saved_objects']]
counts = [len(title) for title in titles]

plt.bar(titles, counts)
plt.xlabel('Title')
plt.ylabel('Count')
plt.title('Index Patterns')
plt.xticks(rotation=90)
plt.show()

2. Elasticsearch Python 클라이언트 사용

또 다른 방법은 Elasticsearch Python 클라이언트를 사용하여 데이터를 직접 Elasticsearch로부터 가져와 시각화하는 것입니다. elasticsearch 라이브러리를 사용하여 Elasticsearch에 연결하고 쿼리를 실행한 후, 시각화에는 Matplotlib, Plotly, Seaborn 등을 사용할 수 있습니다.

다음은 Elasticsearch Python 클라이언트를 사용하여 Elasticsearch에서 데이터를 가져와 막대 그래프로 시각화하는 예제입니다.

from elasticsearch import Elasticsearch
import matplotlib.pyplot as plt

# Elasticsearch에 연결
es = Elasticsearch('http://localhost:9200')

# Elasticsearch에서 데이터 쿼리
query = {
  "size": 5,
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "count": {
        "order": "desc"
      }
    }
  ]
}

response = es.search(index='your_index', body=query)
data = response['hits']['hits']

# 데이터 처리 및 시각화
x = [hit['_source']['title'] for hit in data]
y = [hit['_source']['count'] for hit in data]

plt.bar(x, y)
plt.xlabel('Title')
plt.ylabel('Count')
plt.title('Sample Data')
plt.xticks(rotation=90)
plt.show()

위의 예제에서는 Elasticsearch Python 클라이언트를 사용하여 Elasticsearch에 연결하고 쿼리를 실행하여 데이터를 가져와 막대 그래프로 시각화하였습니다.

결론

파이썬을 사용하여 Kibana 시각화를 만드는 것은 Elasticsearch 데이터를 쉽고 편리하게 시각화할 수 있는 방법입니다. Kibana REST API를 활용하거나 Elasticsearch Python 클라이언트를 사용하여 데이터를 가져와 시각화하는 방법을 사용할 수 있습니다. 이를 통해 데이터 분석 및 시각화의 효과적인 결과물을 얻을 수 있습니다.

#Kibana #파이썬