Docker InfluxDB 와 Docker Grafana 를 통해 Docker 의 Server Metric 을 확인하는 방법을 연구중.

* 아래 방법으로 정확히 Docker 내부 Metric 을 수집한다라고 아직 말 할 수 없음.연구중이라서.

 

Metric 을 가져오고 싶은 Docker Container 는 내가 자주 사용하는 Docker NiFi 를 사용.

 

 

목적 : Docker NiFi Container 내부의 Metric 을 Telefraf 로 수집하고, InfluxDB 에 저장한 후 Grafana 에 그래프로 그림

 

Containers : 

ㄴ influxDB : hub.docker.com/_/influxdb

ㄴ Grafana : hub.docker.com/r/grafana/grafana/

Telegraf : portal.influxdata.com/downloads/

 

구조 : 

nifi-net 이라는 Docker Network 를 생성

nifi-net 에 묶여있는 Docker NiFi 내부에서 Telegraf 실행

nifi-net 에 묶여있는 Docker InfluxDB Container 생성

nifi-net 에 묶여있는 Docker Grafana Container 생성

 

* NiFi 가 Standalone 이든 Cluster 든 과정은 똑같음

 

 

 

전체 과정 : 

 

* Docker Network (nifi-net) 생성 과정은 생략.

 

 

 

 

Docker InfluxDB Container 생성

docker run -d --name inf --network nifi-net influxdb:latest 

생성하면 influxDB 가 자동으로 실행됨.

 

 

 

 

Docker NiFi Container 생성

docker run -itd --name nifi --network nifi-net -p 8080:8080 apache/nifi:latest

다음 명령어로 root 권한을 갖고 NiFi Container 에 접근

docker exec -it -u root nifi bash

다음 명령어로 vim 설치

apt update ; apt-get install vim -y

특정 위치에 telegraf 를 다운받고 설치

아래 tar.gz 는 가장 위에 걸어둔 링크에서 받을 수 있음

mkdir telegraf ; cd telegraf
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.17.0_linux_amd64.tar.gz

tar xf telegraf-1.17.0_linux_amd64.tar.gz

/etc/telegraf/telegraf.conf 를 수정

vi /etc/telegraf/telegraf.conf
112 번째 줄 : urls = ["http://inf:8086"]
116 번째 줄 : database = "telegraf"

 

다음 명령어로 telegraf 실행

cd telegraf-1.17.0/usr/bin/
./telegraf start

 

 

 

 

다음 명령어로 influxDB 내부에 접근 가능

docker exec -it inf influx

telegraf 가 influxDB 에 잘 연결되었다면,

telegraf.conf 에서 database 이름으로 넣어준 "telegraf" 라는 이름의 database 가 생성되고

해당 테이블로 telegraf 가 수집하는 cpu, disk, system 등의 metric 들이 각각의 table 로 들어감.

 

다음 명령어로 telegraf database 가 잘 생성되었는지 확인하고 값이 잘 들어가는지 쿼리를 날려서 확인

show databases

 

 

 

다음 명령어로 Docker Grafana Container 실행

docker run -d --name grafana -p 3000:3000 --network nifi-net grafana/grafana:latest

인터넷 브라우저에서 localhost:3000 으로 접속 후

id : admin , pw : admin 으로 로그인

 

Data Source 로 InfluxDB를 추가하기 위해

Configuration > Data Sources > Add data source 클릭

InfluxDB 선택

다음과 같이 내부 설정

URL : http://inf:8086 (influxDB Container 의 이름)

Database : telegraf (influxDB 에서 telegraf 의 metric 을 저장하고 있는 database 이름)

 

Save & Test 를 통해 통신이 되는지 확인.

 

Server Metric 을 모니터링하는 그래프를 그리기 위해

Create > Import 를 선택하고 Import via grafana.com 에 아래 url 을 삽입 후 Load 클릭

https://grafana.com/grafana/dashboards/11912

InfluxDB Linux Server Telegraf 에서 위에서 설정한 InfluxDB 를 선택

 

이후 대시보드에서 InfluxDB Linux Server Telegraf 에 들어가서 Metric 그래프를 볼 수 있음.

 

 

 

 

기타 참고

jolokia + telegraf + influxDB + grafana 간단한 설명 및 링크

[Grafana] 그래프가 다른 시간대에 그려지는 이슈 해결

 

 

+ Recent posts