본문 바로가기

개발이야기/open source

[Telegraf + influxDB + Grafana]10분만에 데브옵스를 위한 모니터링 시스템 구축하기


 

 

각 솔루션이 하는 역할

 

 

 

위와 같은 솔루션을 선택한 이유 

-> [Telegraf + influxDB + Grafana]DevOps를 위한 서버 모니터링 솔루션 선택 보러가기(클릭)

 

무엇을 할까?

내 컴퓨터를 위한 시스템(cpu, memory 등)을 모니터링하는 이쁘고 귀여운 모니터링 시스템

 

준비사항

* 10분

맥북

Homebrew

 

 

앱 설치, 설정(3min)

1. 텔레그래프 설치

$ brew install telegraf

 

2. 텔레그래프 설정

$ cd /usr/local/Cellar/telegraf/1.5.1/bin
$ telegraf config > telegraf.conf
$ vi telegraf.conf

###############################################################################
#                            OUTPUT PLUGINS                                   #
###############################################################################

# Configuration for influxdb server to send metrics to
[[outputs.influxdb]]
  ## The full HTTP or UDP URL for your InfluxDB instance.
  ##
  ## Multiple urls can be specified as part of the same cluster,
  ## this means that only ONE of the urls will be written to each interval.
  # urls = ["udp://127.0.0.1:8089"] # UDP endpoint example
  urls = ["http://127.0.0.1:8086"] # required
  ## The target database for metrics (telegraf will create it if not exists).
  database = "telegraf" # required

 

telegraf에서 수집된 정보를 influxdb로 보내기(output) 하기위해 위와 같이 설정

 

3. influxdb 설치

$ brew install influxdb

 

4. grafana 설치

$ brew install grafana

 

앱 스타트(1min)

1. influxdb 스타트

$ ln -sfv /usr/local/opt/influxdb/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.influxdb.plist

 

2. telegraf 데이터베이스생성 in influxdb

$ influx
Connected to http://localhost:8086 version v1.4.2
InfluxDB shell version: v1.4.2
> create database telegraf
> use telegraf
Using database telegraf

3. grafana 스타트

$ brew tap homebrew/services
$ brew services start grafana

4. telegraf 스타트

$ telegraf --config telegraf.conf

 

 

 

대시보드 꾸미기 (6min)

 

User : admin / Password : admin

 

 

InfluxDB details / User : admin / Password : admin

각 수집된 데이터에 대한 필드 명을 알려면 아래와 같이 입력.

 

$ influx
Connected to http://localhost:8086 version v1.4.2
InfluxDB shell version: v1.4.2
> SHOW FIELD KEYS
name: cpu
---------
fieldKey                fieldType
usage_guest             float
usage_guest_nice           float
usage_idle                    float
usage_iowait                  float
usage_irq                     float
usage_nice                    float
usage_softirq                 float
usage_steal                   float
usage_system                  float
usage_user                    float

name: mem
---------
fieldKey                fieldType
active                           integer
available                     integer
available_percent          float
buffered                      integer
cached                           integer
free                             integer
inactive                      integer
total                            integer
used                             integer
used_percent                  float

 

CPU usage 조회 할 수 있는 쿼리

select usage_user from cpu

Memory usage 조회 할 수 있는 쿼리

available_percent from mem

used_percent from mem

스택 모드 선택

 

 

또한 여러가지 플러그인을 사용하여 대시보드를 이쁘게 꾸밀수 있다!!

 

 

End of Documents

  • kmg 2018.04.04 23:08 댓글주소 수정/삭제 댓글쓰기

    stop은 어떻게 시키나요?

    • http://voidmainvoid.tistory.com/105 참고하시면 됩니다.
      터미널에서 아래와 같은 명령어로 stop가능합니다.

      그라파나 stop
      >kill `ps -ef | grep grafana | grep -v grep | grep -v tail | awk '{print $2}'`

      influxdb stop
      > kill `ps -ef | grep influxdb | grep -v grep | grep -v tail | awk '{print $2}'`

  • cgh 2019.10.23 08:32 댓글주소 수정/삭제 댓글쓰기

    현재까지는 잘 쫓아왔는데요...
    Grafana -> new dashboard 설정 단계에서 다음과 같은 오류현상이 발생하는데요 ㅠ
    무슨 상황인지 알수 있을까요? ㅠ

    Unable to find application file


    Grafana has likely been updated. Please try reloading the page.

    Error: 지정되지 않은 오류입니다.

    in div
    in div
    in t
    in t
    in div
    in t
    in t
    in div
    in div
    in t
    in Connect(t)


    ...
    ...
    ...
    ...
    ...
    ...
    ...

    Panel with id 2 not found

  • haebi 2020.01.22 11:06 댓글주소 수정/삭제 댓글쓰기

    안녕하세요
    텔레그라프 도커 환경 구성 검색 하다 들르게 되었습니다.
    텔레그라프를 도커로 설치 후 도커 내부에서 실행하고 있는데 바깥의 HOST 머신의 정보를 정확히 수집 못하고 있습니다.
    CPU, RAM 은 어느정도 맞는 듯한데 DISK IO 지표가 제대로 수집이 안되네요.
    혹시 이 부분 설정 관련 좀 알 수 없을 까요?

    • 안녕하세요.
      저도 물리환경에서 telegraf를 구성하여 사용했던지라 docker로 host machine의 resource를 잡는 방법에 대한 자세한 config방법은 잘 모르겟네요 ^^;;
      나중에 알게 된다면 다시 댓글로 남겨드리겟습니다.