본문 바로가기

개발이야기/open source

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





각 솔루션이 하는 역할




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

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


무엇을 할까?

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


준비사항

* 10분

맥북

Homebrew



앱 설치, 설정(3min)

1. 텔레그래프 설치

1
$ brew install telegraf
cs


2. 텔레그래프 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ 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
cs

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


3. influxdb 설치

1
$ brew install influxdb
cs


4. grafana 설치

1
$ brew install grafana
cs


앱 스타트(1min)

1. influxdb 스타트

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


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

1
2
3
4
5
6
$ influx
Connected to http://localhost:8086 version v1.4.2
InfluxDB shell version: v1.4.2
> create database telegraf
> use telegraf
Using database telegraf
cs


3. grafana 스타트

1
2
$ brew tap homebrew/services
$ brew services start grafana
cs


4. telegraf 스타트

1
$ telegraf --config telegraf.conf
cs



대시보드 꾸미기 (6min)


User : admin / Password : admin



InfluxDB details / User : admin / Password : admin

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$ 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
cs


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