상세 컨텐츠

본문 제목

5분 59초만에 InfluxDB + Grafana를 EC2 Instance 위에서 연동하기

Log.Develop/DevOps

by bluayer 2021. 7. 1. 15:43

본문

서론

환경설정에 앞서, 본 문서는 Amazon Linux 2 AMI 기반 인스턴스에서 환경설정한 것을 바탕으로 쓰여졌음을 알린다.
또한 InfluxDB는 2.0.7 버전을 바탕으로 쓰여졌음을 밝힌다.

필자는 왜 InfluxDB + Grafana 조합을 선택했는가?

원래 필자가 고려했던 스택은 Prometheus + Grafana 조합이었다.

Prometheus의 경우 Metric(지표)을 Polling하는 방식이다.

당연히 서비스가 여러 개로 늘면 Service Discovery가 필요하게 된다.

프로메테우스가 인스턴스들의 고정된 IP를 알고 있거나, 혹은 k8s처럼 프로메테우스에서 SD를 지원해주거나

Service Discovery를 위한 설계가 있지 않다면 사용하기 어렵다는 결론을 내렸다.

따라서, 자연스럽게 Metric들을 쌓을 수 있는 InfluxDB를 사용하게 되었다.

 

대쉬보드로 그라파나를 사용한 이유는 InfluxDB와 Prometheus와의 조합이 좋고

설정 자체가 엄청 쉬워보였기 때문이다! (실제로 설정이 엄청 쉬웠다)

 

InfluxDB 환경 설정

해당 문서들을 참고해서 환경설정을 진행하였다.
https://docs.influxdata.com/influxdb/v2.0/install/?t=Linux

 

Install InfluxDB | InfluxDB OSS 2.0 Documentation

Install InfluxDBThe InfluxDB 2.0 time series platform is purpose-built to collect, store, process and visualize metrics and events. Download, install, and set up InfluxDB OSS.Install InfluxDB v2.0Use HomebrewWe recommend using Homebrew to install InfluxDB

docs.influxdata.com

https://portal.influxdata.com/downloads/

 

Downloads

Telegraf open source data collector Telegraf is a plugin-driven server agent for collecting and sending metrics and events from databases, systems, and IoT sensors. Telegraf is written in Go and compiles into a single binary with no external dependencies,

portal.influxdata.com


1. 해당 명령어를 순서대로 실행한다.

$ wget https://dl.influxdata.com/influxdb/releases/influxdb2- 2.0.7.x86_64.rpm
$ sudo yum localinstall influxdb2-2.0.7.x86_64.rpm
$ sudo service influxdb start
$ sudo service influxdb status

2. 기본 설정해주기
http://<instance pulbic ip>:8086/ 로 접속하여
기본 admin, password, default organization, default bucket을 적어준다.
(참고 : influx 1.x.x 버전은 GUI가 자동으로 실행되지 않는 것으로 보인다.
따라서 GUI가 안 뜬다면, 버전을 의심해봐야 한다.)

3. Token 저장해두기
왼쪽 사이드 바의 Data 탭을 누르고 들어가서 Tokens 탭에 들어간다.
그러면 admin's Token이 기본으로 생성되어 있는데, 해당 토큰은 읽고 쓰기 등 모두 가능하다.
만약 권한 제어를 하고 싶다면 새로운 토큰을 만들고, 빠르게 구축하는 것이 목표라면 해당 토큰을 클릭하여 사용하도록 하자.
토큰 정보는 Grafana 설정에서 필요하기 때문에 저장해둔다.

 


Grafana 환경 설정

해당 문서들을 참고하여 환경설정을 진행하였다.
https://grafana.com/docs/grafana/latest/installation/rpm/

 

Install on RPM-based Linux

› Installation › Install on RPM-based Linux Install on RPM-based Linux (CentOS, Fedora, OpenSuse, Red Hat) This page explains how to install Grafana dependencies, download and install Grafana, get the service up and running on your RPM-based Linux syst

grafana.com


1. 해당 명령어를 실행하여 파일을 만든다.

$ sudo nano /etc/yum.repos.d/grafana.repo

(vim을 이용해도 무방하지만, 공식 문서에서 nano를 썼기 때문에 그대로 진행하겠다.)

2. 그라파나 레포 관련 설정을 파일에 적어둔다.
해당 파일에 이 내용을 Copy & Paste 하자.

[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

그리고 저장한다.

3. 해당 명령어로 그라파나를 설치하자.

$ sudo yum install grafana

설치가 끝났다. 실행시키자.

4. 그라파나 실행
참고로 맨 마지막 명령어는 부팅 시에 그라파나를 시작하게 만들도록 설정하는 명령어이다.
실행하지 않아도 문제는 없으나, 재부팅하면 귀찮아지기 때문에 설정해주도록 하자.

$ sudo systemctl daemon-reload
$ sudo systemctl start grafana-server
$ sudo systemctl status grafana-server
$ sudo systemctl enable grafana-server

그라파나가 실행되었다.

5. 그라파나 접속하기
http://<instance pulbic ip>:3000으로 접속해보자.
GUI가 이쁘게 잘 뜰 것이다. 마찬가지로 ID, PWD를 설정해주도록 하자.
참고로 기본 ID는 admin, PWD는 admin이다.

InfluxDB와 Grafana 연동하기

1. Grafana에서 Configuration에 들어가서 Add datasource 버튼을 클릭한다.


2. 인플럭스 DB 선택


3. 설정하기
우리는 InfluxDB 2.x.x를 선택했기 때문에 Query Language로 Flux를 선택할 수 밖에 없다.
따라서 Query Language로 Flux를 선택하고, URL을 적어주도록 하자.(http://<instance ip>:8086)

인플럭스 세팅


네트워크 통신이 안 되는 상황을 맞이할 수도 있다.
일단 인프라 설정을 한 번 확인해본 후, grafana가 설치되어 있는 인스턴스에서

$ curl http://<instance ip>:8086/health

를 실행해보자. 만약 응답이 정상적으로 온다면 괜찮은 것이다.

아래 그림의 Details에 Organiztion, Default Bucket, Token 세 가지 정보를 InfluxDB에서 보고 넣도록 하자.
그러고 나서 Save & Test를 해서 버킷이 생성되었다는 메시지를 받으면 성공한 것이다.

인플럭스 디테일

 

실제로 그라파나로 만든 대시보드

그라파나로 만든 대시보드

관련글 더보기

댓글 영역