practice makes perfect

모니터링 시스템 모듈 사용 구조 본문

Monitoring

모니터링 시스템 모듈 사용 구조

후니옹 2024. 5. 6. 01:31
  • ELK+Kafka+InfluxDB를 현재 사용하고 있으며 조금 더 알아보기 위해 정리해본다.
  • 각각의 모듈은 데이터 수집쪽과, 메세지 큐, 데이터 저장소, 데이터 시각화를 담당하고 있다

 

1. Beats, Logstash, Telegraf

Beats는 Server들의 Log Data를 수집하고 Logstash로 전달한다.

Logstash는 Beats가 모은 Log Data를 수집하고 필터링하여 Kafka로 전달하는 기능을 수행한다.

Telegraf는 Server들의 Monitoring Data를 수집하고 Output인 Kafka로 Direct로 전달한다.

 

[Beats와 Telegraf의 수집 데이터 차이]
Beats에서 수집하는 데이터는 주로 분석을 위한 로그 데이터를 수집합니다.

Search Engine인 ElasticSearch를 통해 인덱싱 작업과, 데이터 검색을 통해 분석하기 위한 용도로써 사용합니다. 

Telegraf에서 수집하는 데이터는 주로 실시간성이 요구되는 모니터링과 상태 측정을 위한 데이터를 수집합니다.
Time Series DB인 InfluxDB를 통해 Time Stamp로 수집된 데이터를 통해 실시간 알람과 모니터링을 위한 용도로써 사용합니다.

 

2. Kafka

Kafka는 모든 Data를 받아서 전달하는 Streaming 기능을 수행하는데,

Topic별로 용도에 맞게 분리하여, Logstash나 Telegraf가 보낸 데이터를 Product하고

그 데이터를 Elasticsearch나 Influxdb로 Consumer를 통해 보내는 작업을 수행합니다.

Telegraf의 경우, Consumer 할 때, Kafka Node들을 관리하는 Zookeeper의 정보와, Kafka Node들의 대한 Monitoring Data도 같이 전달합니다.

 

3. Elasticsearch, InfluxDB

Elasticsearch는 검색엔진으로써 Log Data를 저장하고 Log Data를 사용자가 원하는데로 가공할 수 있도록 작업을 수행합니다.

InfluxDB는 시계열 Database로써 SQL Command를 통해 DB로써의 기능을 수행하며 시계열 DB에 맞게 시간 순서대로 정렬된 데이터를 통해

실시간으로 Monitoring Data들을 사용자가 Configuration을 통해 Alert(kapacitor)기능을 수행하며 오랜 주기의 데이터를 조회(query)하는 기능을 수행합니다.

 

4. Kibana, Grafana

Kibana와 Grafana는 각각 Elasticsearch와 InfluxDB의 모여있는 데이터를 Dashboard를 통해 그래프등으로 보여주며, Alert 기능의 설정과

User의 권한 관리를 통해 계정에 맞게 접근 제어나 뷰를 제어할 수 있습니다.

Grafana에도 Kibana에서 수행하는 Dashboard 기능은 원할히 수행할 수 있으나, Kibana에서 제공하는 Elasticsearch의 Data Search 기능이 조금 부족합니다.

'Monitoring' 카테고리의 다른 글

ELK 설치 (with Azure Blob)  (0) 2024.05.06
Comments