안녕하세요
이번 시간에는 InfluxDB 2.0과 Grafana를 연동하여 TIG 환경을 구성하는 실습을 진행하겠습니다.
0. 사전 준비(Ubuntu Server 22.04 LTS, Telegraf, InfluxDB 2.0 설치)
[OSS] Telegraf에 대해 알아보고 Ubuntu 22.04 LTS에 설치하기 (tistory.com)
[OSS] InfluxDB에 대해 알아보고 Ubuntu 22.04 LTS에 설치하기(InfluxDB 2.0 최신) (tistory.com)
실습 진행 전 Telegraf와 InfluxDB 2.0이 설치되어 있어야 합니다. 설치되지 않았다면 이전 포스팅을 보고 설치해 주세요.
1. TIG (Telegraf, InfluxDB, Grafana)란?
TIG는 Telegraf, InfluxDB, Grafana의 약어로, 모놀리식 시스템 모니터링 스택입니다. TIG를 사용하면 데이터 수집, 데이터 저장, 데이터 시각화를 하나의 시스템에서 처리할 수 있습니다.
1. Telegraf
Telegraf는 여러 소스에서 데이터를 수집하고 InfluxDB와 같은 데이터베이스에 데이터를 전송하는 에이전트입니다. 다양한 데이터 소스를 지원하며, 모니터링, 로그 수집, 성능 측정 등에 사용됩니다.
2. InfluxDB
InfluxDB는 분산 시계열 데이터베이스로, Telegraf에서 수집한 데이터를 저장하고 조회할 수 있습니다. InfluxDB는 높은 성능, 확장성, 유연성을 가지고 있으며, 대규모 데이터 처리에 적합합니다.
3. Grafana
Grafana는 InfluxDB에서 저장된 데이터를 시각화하는 대시보드 툴입니다. 다양한 그래프, 차트, 표 등을 제공하며, 대시보드를 쉽게 구성할 수 있습니다.
2. TIG (Telegraf, InfluxDB, Grafana)의 장점 (사용하는 이유)
1. 높은 성능
모놀리식 시스템으로, Telegraf, InfluxDB, Grafana가 하나의 시스템에서 동작합니다. 이를 통해 데이터 처리 및 시각화에 대한 지연 시간을 최소화하고 높은 처리 성능을 보장할 수 있습니다.
2. 높은 확장성
수집할 데이터의 양이 늘어나면, Telegraf와 InfluxDB를 추가하여 확장할 수 있습니다. 이를 통해 대규모 데이터 처리를 위한 시스템을 구성할 수 있습니다.
3. 쉬운 사용 방법
Grafana와 같은 직관적인 대시보드 툴을 제공하여, 사용자가 데이터를 쉽게 시각화할 수 있습니다. 또한, Telegraf와 InfluxDB의 설정도 간단하게 구성할 수 있습니다.
4. 오픈 소스
오픈소스로 개발되어 있으며, 라이선스 비용이 없습니다. 또한, 개발자들은 소스 코드를 사용하여 자신만의 기능을 추가하거나 수정할 수 있습니다.
5. 다양한 데이터 소스 지원
다양한 데이터 소스를 지원합니다. 이를 통해 여러 소스에서 데이터를 수집하고, 저장하고, 시각화하는 시스템을 구성할 수 있습니다.
3. Telegraf와 InfluxDB 2.0 연동하기
[OSS] Telegraf와 InfluxDB 2.0 연동 실습하고 InfluxDB 기능 알아보기 (tistory.com)
Telegraf와 InfluxDB를 연동하는 방법은 위의 링크에서 이전 포스팅을 참고해 주시면 되겠습니다.
4. InfluxDB 2.0과 Grafana 연동하기
1. Grafana에서 InfluxDB Data source 설정하기
Grafana GUI에 접속하면 좌측 하단에 [Configuration] - [Data sources]를 선택합니다.
[Add data source]를 선택합니다.
데이터 소스를 검색하는 검색창에 InfluxDB를 검색하신 후 화면에 보이는 [InfluxDB]를 선택합니다.
여기서 데이터 소스의 이름과 Query Language를 선택해야 하는데
InfluxDB 2.0에서는 Flux가 기본 쿼리 언어이므로, 데이터베이스 및 쿼리 설정을 Flux로 설정해야 합니다. InfluxDB 2.0에서 InfluxQL을 사용하려는 경우 InfluxQL 패키지를 설치하여 InfluxQL을 사용할 수 있습니다.
만약 여기서 [Query Language] - [Flux]가 뜨지 않는다면 Grafana를 다시 설치해 보시길 바랍니다.
[OSS] Grafana에 대해 알아보고 Ubuntu 22.04 LTS에 설치하기 / Grafana 초기 아이디, 비밀번호 (tistory.com)
2. InfluxDB Data source 상세하게 설정하기
1. URL | InfluxDB 2.0의 URL (로컬 환경이라면 localhost:8086) |
2. User | Grafana ID 값 (변경하지 않았다면 admin) |
3. Password | Grafana Password 값 (변경하지 않았다면 admin) |
4. Organization | InfluxDB의 Organization 값 |
5. Token | InfluxDB에서 Bucket에 접근 가능한 Token 값 (새로운 All access Token 발급 필요) |
6. Defualt Bucket | InfluxDB Bucket 값 |
2-1. Organization 값 확인하기
InfluxDB 2.0 GUI 웹에 접속하여 우측 상단에 [About] - [organization id] 값을 확인한 후 4번 자리에 넣습니다.
2-2. Token 생성하기
[Data] - [Tokens] - [Generate Token] - [All Access Token]을 누르고 이름을 지정한 후 저장합니다.
다음과 같이 Access Token이 생성되는데 이 값을 5번에 넣으시면 됩니다.
2-3. Bucket 확인하기
[Data] - [Buckets]를 누르고 Bucket 이름을 확인한 후 6번에 넣으시면 됩니다.
여기까지 완료가 되었다면 우측 [Dashboards] - [New dashboard] - [Add a new panel]을 선택합니다.
from(bucket: "basic")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "cpu")
|> filter(fn: (r) => r["_field"] == "usage_idle")
|> filter(fn: (r) => r["cpu"] == "cpu-total")
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|> map(fn: (r) => ({ r with _value: r._value * -1.0 + 100.0 }))
|> toFloat()
|> yield(name: "mean")
#bucket은 내 bucket 명
아래 Flux 쿼리 넣는 곳에 다음 코드를 붙여 넣으신 후 Ctrl+S를 누르면 그래프가 생성됩니다.
패널의 제목을 지어준 후 [Apply]를 눌러주세요.
그러면 다음과 같이 CPU Utilization을 보여주는 Panel이 생성됩니다.
2-4. 오류 발생
만약 Flux 쿼리를 넣고 Ctrl+S를 눌렀는데도 그래프가 생성되지 않는다면 2가지 상황을 의심해 볼 수 있습니다.
1. Flux 쿼리 구문: 쿼리 구문에서 틀린 것은 없는지 Bucket 이름은 내 Bucket 이름에 맞게 잘 넣었는지 확인하기
2. Telegraf가 실행 중인지 확인하기
telegraf --config <telegraf.conf 파일>
Telegraf가 실행 중이 아니라면 데이터를 수집해서 InfluxDB로 전송하는 값이 없기 때문에 당연히 [No data]가 뜹니다.
이렇게 이번 시간에는 TIG 환경을 구축하는 실습을 진행했습니다.
생각보다 사전에 준비해야 될 것들이 많고 Telegraf, InfluxDB, Grafana를 연동하는 것이 어렵게 느껴질 수 있는데
포스팅을 보고 하나하나 해보시면 연동하실 수 있을 것이라고 생각됩니다.
실습에서 안 되는 부분이 있으시다면 댓글 남겨주세요.
감사합니다.
'OSS' 카테고리의 다른 글
클라우드, 개발, 자격증, 취업 정보 등 IT 정보 공간
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!