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] 그래프가 다른 시간대에 그려지는 이슈 해결
'눈가락' 카테고리의 다른 글
[AWS] 첫 사용자를 위한 Tutorial 유튜브 링크 (영어) (0) | 2021.02.08 |
---|---|
[IT] 분산환경에서의 메세지 시스템 전략 설명 및 링크 (0) | 2021.01.29 |
[Git] 직접 실습해보는 사이트 링크 (0) | 2021.01.03 |
[Vi/Vim] 줄 번호 넣거나 검색어 하이라이트 넣는 방법 (0) | 2020.12.24 |
[Ansible] 설명 링크 (0) | 2020.11.03 |