[미션] grafana + influxdb + telegraf : Docker 세팅

==========================================================
1. ESXI SSL 적용하기 – http://t.jscomz.net/t/3W
2. grafana + influxdb + telegraf : Docker 세팅 – http://t.jscomz.net/t/3X
3. fluentd + Nginx Log Plugin
4. Kapacitor to Slack Alert
5. Apache guacamole
==========================================================

이번에는 요즘 아니 예전부터 나름 핫한 알기는 예전부터 알고 있었는데 너무 방치한 내용들 나름 정리

Dokcer도 개인적으로 처음 접했을때는 뭐 별거 아니구나 그리고 이거 뭐에 쓸수 있나? 했는데…

지금은 참 … 알긴 알았는데 책도 사고 공부도 했는데 다시 집중해서 봐야 하는 …  개인적으로 내가 너무 했네~ ㅎ

 

각설하고 요즘 Docker , Docker-compose가 워낙 잘 되어 있어서 설치 자체가 어려운건 없으니 패스

위 구성에서 필요한 부분 과 내가 나름 고민하고 작업한 내욘만 적어 보기로 하겠습니다.

 

뭔저 설치는 아래 링크들 참고 해서 설지 해보시길… – 검색해보면 워낙 많은 내용들이 나와서

grafana : https://grafana.com/docs/grafana/latest/installation/docker/ ( 편하긴 한데 전 Plugin, 설정 좀 다테일하게 보고 싶고 향후 google oauth or open id 인증부분때문에 직접 설치 했음. )

influxdb + telegraf : https://semode.tistory.com/236 , https://dev-t-blog.tistory.com/34

추가 알두면 좋은 Tip ansblie : https://mrsence.tistory.com/73 ( 전 실제 서비스하는 서버들 관리때문에 즐겨사용합니다. ansilbe  )

일단 기본적으로 1 스텝에서 ESXI SSL 올리기 해봤는데 ESXI에서 서버 한대 올려 두고 작업. ( SSL 작업과는 연관성이 없음 )

 

grafana는 템플릿을 잘 활용하는것도 중요 처음부터 할려고 하면 중간에 포기 하기 쉽상! ( https://grafana.com/grafana/dashboards )

influxdb는 시계열 데이터라는건 어느정도 아실것이고 기존 RDB(Relational Database) 종류인 mysql 유사하지만 정확하게 같지는 않음.

개념상으로 비슷하게 매칭 시키고 이해를 하면 좋을듯 함.

참고 링크 : https://musma.github.io/2019/07/08/getting-started-with-influxdb-time-series-database.html

참고 이미지1

위체 캡쳐본은 원본글 일부중 제가 참고한 부분…  위 캡쳐 부분만 개념으로 잡고 있으면 influxdb 사요하시는데 전혀 문제 없음요.

 

일단 모든 설치를 맞치고 직접 접속해봄.

grafana login

 

로그인 화면에서 보면 Google Oauth가 연동 되어 있는데 기회되면 다음에 추가적으로 방법론을 공유 하겠습니다.

일단 위 화면까지는 너무쉽게 일사 철리로 가능함.

 

이제 실제 수집 대상 서버에  telegraf를 설치하고 influxdb와 연동하는 과정을 예로 설명 드리겠습니다.

 

일단 수집해서 데이터를 모을곳 influxdb database 생성. 예제에서는  telegraf 로 하고 만드는건 위에 링크에 있을껀데 한번더 적자면.

 

# influx  <– CLI 접속  *별도 패스워드 설정하지않은 기준으로 *

Connected to http://localhost:8086 version 1.7.9
InfluxDB shell version: 1.7.9

> create database telegraf  <– 데이터 베이스 생성

=========================================

telegraf 연동하고 난 뒤 해당 DB에 내용을 아래와 같이 살펴 볼 수 있음.

=========================================

> use telegraf
Using database telegraf

> show MEASUREMENTS
name: measurements
name
—-
cpu
disk
diskio
interrupts
kernel
linux_sysctl_fs
mem
mysql
net
netstat
processes
soft_interrupts
swap
system
> show SERIES FROM system
key

system,MYGRP=jscomz,MYIP=x.x.x.1,MYSERVICE=SYS,host=X-MON
system,MYGRP=jscomz,MYIP=x.x.x.3,MYSERVICE=CACHE,host=NODE3
system,MYGRP=jscomz,MYIP=x.x.x.4,MYSERVICE=CACHE,host=NODE4
system,MYGRP=jscomz,MYIP=x.x.x.5,,MYSERVICE=JSIMG-CACHE,host=ST-S
system,MYGRP=jscomz,MYIP=x.x.x.6,,MYSERVICE=JSIMG-CACHE,host=ST-M

===========================================

그리고 telegraf에 관한 짤은 설명을 드리면

Agent 형태의 리소스 체크기라고 생각하시면 됩니다.
방식은 메인 프레임에서 Agent로 데이터를 요청해서 가져가는게 아니고 Agent가 정해진 스케줄에 의해서 메인 프레임으로 전달하는 방식이죠.

Munin과는 반대 개념!

이점이 있는지 없는지 퍼포먼스 체크는 나중에 한번 검증 해보고 지금은 일단 telegraf 에 중요 설정들을 한번 쭉 훌터 보겠습니다.

출처 : https://www.popit.kr/influxdb_telegraf_grafana_2/

여기 찬찬히 읽어 보시면 agent / output plugin / input plugin 이 부분을 충분히 숙지 하시고 진행하시면 됩니다.

위에 샘플로 취합된 데이터들은 기본 설치시 디폴트로 설정이 됩니다.

그리고 중요한것 influxdb 에서 KEY값을 가지고 grafana에서 다양한 Variables 활용 되기때문에 개념 잡아 두시면 아주 편합니다.

 

그래서 전 위에 언급된것 말고 global_tags 만 설명드립니다. ^^;

[global_tags]
# dc = “us-east-1” # will tag all metrics with dc=us-east-1
# rack = “1a”
## Environment variables can be used as tags, and throughout the config file
# user = “$USER”
MYGRP = “jscomz”
MYIP = “$MYIP”
MYSERVICE = “SYS”

뭔가 눈에 익으신 것들이.. 맞습니다. ^^;

telegraf에서 데이터를 메인프레림으로 넘길때 KEY 데이터(인덱스값)를 포함하여 보내는 설정입니다.

모든 데이터에 글로벌 선언되어 있어 함께 같이 보내집니다.

이 KEY를 어떻게 활용하는것이냐는…  다음 grafana Dashboard에서 살펴 보겠습니다.

 

ltEibtS[1]

 

위 이미지 클릭해서 보시면 상단에

HSESPC9[1]

이거 때문에 global KEY 세팅을 하는겁니다. ㅎㅎ

결국에는 여러 데티터를 취함하여 Sort하기 위하여 KEY활용 하는데요.

위 드롭버튼을 눌러보면 리스트들이 주욱 나옵니다.

Dashboard 설정에서 보면 다름과 같이 보이는 거죠~ 설정 하기 나름인데 influxdb에 원본 데이터에 KEY가 있어야만 하겠죠.

P5z4YS3[1]

gt1MxU0[1]

지금 보시는 Dashboard는 https://grafana.com/grafana/dashboards/8451 입니다.

검색 잘 해보시거나 컨셉 참고해서 잘 꾸며 보시길 바랍니다.

생각보다 주저리 말이 많았네요.

다음에는 fluentd + Nginx Log Plugin 도전 해보겠습니다.

==========================================================
1. ESXI SSL 적용하기 – http://t.jscomz.net/t/3W
2. grafana + influxdb + telegraf : Docker 세팅 – http://t.jscomz.net/t/3X
3. fluentd + Nginx Log Plugin
4. Kapacitor to Slack Alert
5. Apache guacamole
==========================================================

 

댓글 남기기