서버 모니터링 grafana, influx, telegraf

mhlee·2021년 2월 19일
1

grafana, influx, telegraf 설치

0. 배경

서버모니터링이 필요하다.
zabbix, grafana중 확장성이 좀더 있어보이는 grafana로 결정

전체적인 구성은 아래와 같다.
user --조회--> grafana ----> influxDB <--데이터전송-- telegraf

  • influxDB : 시계열 DB로 모니터링 데이터 저장소
  • telegraf : 모니터링 agent
  • grafana : 모니터링 서버 (visualization layer)

설치환경은 ubuntu 20.04 버젼이다.

1. influxDB 설치

공식 홈페이지 문서보고 하면 특별한 문제없이 잘 설치된다.

sudo apt-get install influxdb -y

influxDB 활성화 및 상태 확인

sudo systemctl enable --now influxdb
sudo systemctl start influxdb
sudo systemctl status influxdb

2. grafana 설치

공식 홈페이지 설치 문서 보고 하면 특별한 문제없이 잘 설치된다.

sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_7.4.2_amd64.deb
sudo dpkg -i grafana_7.4.2_amd64.deb

정상적으로 설치되면 서비스 활성화 및 상태확인

 sudo /bin/systemctl daemon-reload
 sudo /bin/systemctl enable grafana-server
 sudo /bin/systemctl start grafana-server

3. telegraf 설치

공식 홈페이지 문서 보고 하면 특별한 문제없이 잘 설치된다.
홈페이지 진입하여, version을 클릭하면 플랫폼별 설치 커맨드가 잘 설명되어 있다.

wget https://dl.influxdata.com/telegraf/releases/telegraf_1.16.2-1_amd64.deb
sudo dpkg -i telegraf_1.16.2-1_amd64.deb

역시 정상적으로 설치되었다면 서비스 활성화

sudo systemctl enable --now telegraf
sudo systemctl start telegraf
systemctl status telegraf

4. influxdb-client 설치 및 database 생성

influxdb에 접속하기 위해 clinet를 설치하자

sudo apt install influxdb-client

설치되었다면, influx 명령어로 접속하자.
그리고, database를 생성하고, user 생성, grant 작업을 수행

influx

--> influx shell에 접속후

# database 생성
> create database telegrafdb

# user 생성
> create user telegraf with password 'password'

# grant 작업
> grant all on telegrafdb to telegraf

SQL을 알고 있다면, 명령어가 익숙하게 느껴질것이다.

show databases를 통해 생성된 database를 확인하고,
show users를 통해 telegraf 유저가 생성된것을 확인하자.
그리고 exit를 통해 shell로 나간다.

4. telegraf 설정

telegraf.conf 파일 생성 및 수정

telegraf config -input-filter cpu:mem:swap:system:processes:disk -output-filter influxdb > sudo /etc/telegraf/telegraf.conf

sudo vi /etc/telegraf/telegraf.conf
#아래와 같이 수정하자
[[outputs.influxdb]]
  ## The full HTTP or UDP URL for your InfluxDB instance.
  ##
  ## Multiple URLs can be specified for a single cluster, only ONE of the
  ## urls will be written to each interval.
  # urls = ["unix:///var/run/influxdb.sock"]
  # urls = ["udp://127.0.0.1:8089"]
  urls = ["http://127.0.0.1:8086"]

  database = "telegraf"

  ## HTTP Basic Auth
  username = "telegraf"
  password = "password"

수정완료후 telegraf 재시작

sudo systemctl restart telegraf

#아래 명령을 수행하여 설정 검증 및 테스트 가능하다
telegraf --config /etc/telegraf/telegraf.conf --test

5. Grafana data source 설정

여기까지 진행하였다면, telegraf -> influxDB로 데이터를 쏘는부분까지 진행된 것이다.
이제 모니터링 데이터를 Grafana를 통해 시각화 하는 단계이다.

우선 http://:3000 으로 접속하자.
아래와 같은 화면이 나올것이다.

id = admin, password = admin을 입력하자.
그러면, 새로운 패스워드를 설정하는 화면이 출력되고, 메인화면으로 이동한다.

가운데 "DATA SOURCES" 항목을 클릭하고, influxDB를 선택하자.

4번 항목에서 입력한 influxDB정보를 설정해준다.

만약 influxDB Bad Gateway에러가 발생하면, 상단 server 주소를 입력하자.
디폴트로 설정시, 입력항목에 http://localhost:8086이라고 나오는데, 이건 입력된게 아니고 힌트텍스트이다. 즉, 이런식으로 입력하라는 내용이다. 따라서, 서버주소를 입력해야 한다.

완료되었다면, 저장하고 좌측의 "+"버튼을 클릭후 import 메뉴를 선택한다.

하단의 influxDB에서 influxDB를 선택한다.

그러면 아래와 같은 멋진화면이 나올것이다.
모니

이글은 아래 글을 참조하여 작성하였습니다.
ubuntu 20.04에서 패키지에 문제가 있어서, 몇가지 설정을 해주어야 한다고 나오나 저의 경우 특별한 문제는 없었습니다. 혹시 패키지 설치중 문제있으면 아래 글을 참조하시기 바랍니다.

https://www.atlantic.net/vps-hosting/install-and-set-up-grafana-monitoring-dashboards-with-telegraf-and-influxdb-backend-on-ubuntu-20-04/

profile
삽질하는 개발자

1개의 댓글

comment-user-thumbnail
2023년 4월 10일

감사합니다!!!잘되네요 20.04에서

답글 달기