관리 메뉴

HAMA 블로그

InfluxDB 와 Grafana 를 이용한 빅데이터 가시화 본문

데이터 가시화 (d3.js , Plotly, Grafana, Kibana 등)

InfluxDB 와 Grafana 를 이용한 빅데이터 가시화

[하마] 이승현 (wowlsh93@gmail.com) 2016. 4. 15. 11:05

* 너무 옛날 버전이라 참고하지마세요 (2015년경)
* 2021년 버전은 -> hamait.tistory.com/1120


InfluxDB 

간략 소개 

InfluxDB

*  2013년도에  만들어진 시계열 데이타를 저장하기위한 NoSQL 저장소

*  구글이 만든 key/value database library 인 LevelDB를 사용

*  distributed and scale horizontally하게 설계되었습니다. 따라서, cluster에 새로운 node만 추가하면 쉽게 scale-out 할 수 있습니다. 

Schemaless design 입니다. 

 

Grafana

* 데이타 소스로 Graphite / Elasticsearch / InfluxDB 등을 이용하여  타임시리즈를 그래프 / 대쉬보드로 가시화해주는 툴입니다. 

* ubuntu 16.04 기준 
* InfluxDB 0.9 version
* Grafana 2.6.4 version 
* python 2.7 

1. InfluxDB 설치  (Ubuntu) 

* 2021년 3월현재 1.1.1이 설치됩니다. docs.influxdata.com/influxdb/v2.0/get-started/?t=Linux 로가면 2.0기반으로 설치 할 수 있습니다.

sudo curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
sudo echo "deb https://repos.influxdata.com/ubuntu bionic stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt update sudo apt install influxdb

sudo systemctl stop influxdb
sudo systemctl start influxdb
sudo systemctl enable --now influxdb
sudo systemctl is-enabled influxdb

2. InfluxDB  자신의 database 만들기 (콘솔) 

$ influx
>

* influx  를 입력하여 db 에 접속합니다. 기본 포트는 8086 이며 종료는 exit 혹은 ctrl + D
* 만약 influx명령어가 없으면, sudo apt install influxdb-client 받습니다.

> CREATE DATABASE mydb

*  처음엔 데이타베이스가 없기때문에 원하는 이름으로 하나 만들어줍니다. 여기서는 (mydb)

3. InfluxDB  입력테스트

> CREATE DATABASE testdb
> use testdb

*  testdb 를 만들고 use 명령어를 통해 해당 db 를 사용해보겠습니다.

 {
            "measurement": "officepower ",

            "tags": {
                "host": "server01",
                "region": "us-west"
            },

            "time": "2009-11-10T23:00:00Z",
            "fields": {
                "value": 0.64
            } 

}

* 일반 구성은 위와 같습니다. 

mesurement 가 sql 로 말하면 테이블 명과 같으며 , tags / time / fields 로 구성됩니다.

  위에는 2개의 로우를 입력하였습니다.
   (

mesurement 는 officepower ,   tags  는  node=2  ,  values 는  watt,apc,pfc 등등)

 * 중간에 select * from officepower 를 통해서 데이터들을 보여줍니다.

 * select *  from officepower where node = '3'      // node 가 3 인 로우만 선택되며,  * select *  from officepower where apc >= 300   // apc 가 300 이상인 로우만 선택됩니다

 * 브라우저를 통한 관리기능도 제공합니다. 포트 8083(127.0.0.1:8083) 으로 접근하여  확인합니다.

 

4. InfluxDB  입력  (파이썬을 통해) 

4-1. InfluxDB 파이썬 클라이언트 설치 

sudo apt-get install python-pip

$ sudo pip install influxdb $ sudo pip install --upgrade influxdb

자세한것은 여기 참고 : https://github.com/influxdata/influxdb-python

Grafana 

5. Graphana 설치 및 실행  

5-1. 설정정보 저장용 데이타베이스를 influxDB 에 추가

> CREATE DATABASE grafana

5-2. Graphana install (http://docs.grafana.org/installation/debian/)

$ wget https://grafanarel.s3.amazonaws.com/builds/grafana_2.6.0_amd64.deb
$ sudo apt-get install -y adduser libfontconfig
$ sudo dpkg -i grafana_2.6.0_amd64.deb

5-3. Grafana start  

$ sudo service grafana-server start

* 서버 재부팅후 자동으로 켜지게 하려면 아래 추가. 

(ubuntu 14.04)

   sudo update-rc.d grafana-server defaults

(ubuntu 16.04)

아래로 테스팅 

systemctl daemon-reload
systemctl start grafana-server
systemctl status grafana-server
이것으로 설정 
sudo systemctl enable grafana-server.service

5-4. 브라우저를 통한 Grafana 접속

* http://설치ip:3000 으로 접속합니다.  ( 아디/비번은 admin/admin) 

6. Grafana 를 통한 가시화  (http://docs.grafana.org/datasources/influxdb/ )

6-1. Data source 설정하기 

admin/admin 으로 로긴하고 들어간후에 위에 그림처럼 1~3번까지 누르면 data source 를 편집할수 있게 됩니다.

* Name 은 아무거나 ( 제 경우는 InfluxdbOffice 라고 했습니다) 

* Type 은  InfluxDB 0.9x  선택 

* Url 은 InfluxDB 설치한 곳 IP:8086 해주시고 

* Database 는 자신이 만든 db 이름 ( 제 경우는 powerdb) 

* User / Password 는 기본값 root/root 

6-2. 자신의 Dashboard 을 통해 데이타 가시화 

* 상단의 HOME 을 누른후 아래 +New 를 클릭하여 새로운 dashboard 를 생성합니다.

* 왼쪽의 연두색 버튼 -> Add Panel ->   Graph 를 선택해줍니다.

*  select * from officepower 라는 쿼리로 지난 24시간의 데이타 값을 가시화 하였습니다.

*  다음처럼 수동으로 쿼리 설정을 할수도 있습니다.

6-3. Single Stat 에 이미지 넣기 

위치 : /usr/share/grafana/public/img 아래에 이미지 넣으시고 , (sudo mv  xxx.jpg   /usr/share/grafana/public/img)

 html 포맷으로 바꾼후 
<img src="img/your_img.png" alt="error" />   or  

<img src="public/img/your_img.png" alt="error" />  

7.  끝으로 

시작이 반이라는 말처럼 설치후에   InfluxDB 와 Grafana 에 대한 풍부한 기능들을 조금씩  배워 나가면 자신의 도메인 데이타에  적합한 데이터 가시화 환경을 만들수 있으리라 봅니다.

 

그라파나 업데이트 (2.6 -> 4.6.2)

전 아래처럼 해서 상관없었으나, 
책임 못지니 문서를 확인하세요. 상황에 따른 업그레이드 방법이 있습니다. 

* 업그레이드 시에는 항상 /var/lib/grafana/grafana.db 에 저장되는 sqllite3 디비를 항상 백업해 둡니다.


sudo service grafana-server stop 
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_4.6.2_amd64.deb

sudo dpkg -i grafana_4.6.2_amd64.deb

 

sudo service grafana-server restart

 

1 Comments
  • 프로필사진 hyunvinci 2017.08.07 11:47 신고 안녕하세요? 포스팅 잘 읽었습니다. 그치만 제가 멍청한건지 influxdb 설치도 하고 insert명령어로 db도 다 넣어지는데 그 담에 브라우저 상에 127.0.0.1:8086, 8083, 8080, 8090, 9090 등등.. 다 쳐봐도 안되네요.. 그렇다고 제 ip 주소를 넣고 포트번호를 넣어도 안되고요.. 뭐가 문젤까요? 브라우저상에서 보고 싶어도 안되네요... 부탁드립니다.
댓글쓰기 폼