파이썬 프로그래밍으로 Kibana 시각화 기능 확장하기

소개

Kibana는 Elastic Stack의 한 요소로, 데이터를 시각적으로 탐색하고 분석하는 강력한 도구입니다. 그러나 기본적으로 제공되는 시각화 기능 이외에도 추가적인 기능이 필요한 경우가 있습니다. 이때 파이썬 프로그래밍을 사용하여 Kibana의 시각화 기능을 확장할 수 있습니다. 이 글에서는 파이썬을 활용하여 Kibana 시각화를 확장하는 방법에 대해 알아보겠습니다.

필요한 도구 설치

Kibana 시각화를 확장하기 위해 몇 가지 도구를 설치해야 합니다. 먼저, 파이썬을 설치해야 합니다. 최신 버전의 파이썬이 설치되어 있는지 확인하고 없는 경우 파이썬 공식 웹사이트에서 다운로드하고 설치합니다. 또한, Elasticsearch-Py 라이브러리를 설치해야 합니다. 이 라이브러리는 파이썬에서 Elasticsearch와 통신하기 위한 도구입니다. 설치는 pip 명령어를 사용하면 간단히 할 수 있습니다.

pip install elasticsearch

Kibana 시각화 확장하기

Kibana는 Elasticsearch로부터 데이터를 가져와 시각화하는 기능을 제공합니다. 이때 파이썬을 사용하여 Elasticsearch로부터 데이터를 가져오고 원하는 형태로 가공한 후 Kibana에 전달하는 방식으로 시각화 기능을 확장할 수 있습니다. 예를 들어, Elasticsearch에서 로그 데이터를 가져와 특정 기준으로 그룹화하여 막대 그래프로 시각화하는 경우를 살펴보겠습니다.

먼저, Elasticsearch에 연결하여 로그 데이터를 가져옵니다.

from elasticsearch import Elasticsearch

es = Elasticsearch()

# 로그 데이터 가져오기
response = es.search(
    index="logs",
    body={
        "query": {
            "match_all": {}
        }
    }
)

# 가져온 데이터 가공하기
logs = [hit["_source"] for hit in response["hits"]["hits"]]

# 로그 데이터 그룹화하기
grouped_logs = {}
for log in logs:
    group = log["group"]
    if group not in grouped_logs:
        grouped_logs[group] = []
    grouped_logs[group].append(log)

그리고 가공한 데이터를 Kibana에 전달하여 막대 그래프로 시각화합니다.

import requests

# Kibana에 시각화 요청 보내기
url = "http://localhost:5601/api/mobility/visualization/_doc"
payload = {
    "type": "histogram",
    "data": grouped_logs
}
response = requests.post(url, json=payload)

# 시각화 요청 결과 확인하기
if response.status_code == 200:
    print("시각화가 성공적으로 생성되었습니다.")
else:
    print("시각화 생성에 실패했습니다.")

결론

이런식으로 파이썬 프로그래밍을 활용하여 Kibana의 시각화 기능을 확장할 수 있습니다. Elasticsearch-Py 라이브러리를 사용하여 데이터를 가져오고 원하는 형태로 가공한 후, Kibana에 전달하여 시각화하는 방법을 알아보았습니다. 이를 통해 Kibana를 더욱 다양한 방법으로 사용할 수 있게 되었습니다.

Reference: https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/index.html

#Kibana #파이썬