Grafana & Influxdb 설치

시각화 툴로 유명한 것들이 있지만, 그 중에서 TrueNAS로 검색을 해보았을 때 Grafana가 우선적으로 검색이 되어서 이것으로 선택했다. 시계열 DB도 종류가 여러가지가 있는데 그 중에서 Influxdb를 이용해야 했다.

나는 Docker를 이용할 것이므로 사용하는 포트를 미리 알아 두어야 했다. Grafana는 기본적으로 3000번 포트를 이용한다. 하지만 나의 경우 이 것은 생체 모니터에서 데이터 전송에 사용하고 있으므로 4000번으로 변경해서 사용하고자 했다. 꼭 필요한지는 좀 더 알아봐야 하는데 Influxdb는 8086번을 graphite의 경우 2003번을 이용해서 혹시나 싶은 마음에 이것도 설정해 두었다.

sudo docker run -it -p 4000:4000 -p 8086:8086 -p 2003:2003 --name=grafana debian

필요한 패키지들을 설치한다.

echo exit 0 > /usr/sbin/policy-rc.d
echo 'Acquire::http::Proxy "http://rcc.work:3142";' > /etc/apt/apt.conf
rm -rf /etc/localtime; ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime 

apt -y update && apt -y upgrade && apt -y install wget libfontconfig1 dialog sudo procps nano influxdb influxdb-client

미리 받아둔 grafana 프로그램을 다운 받아서 설치한다. 편의상 /root에 다운 받는다.

cd ~
wget http://rcc.work:3143/grafana-enterprise_9.5.1_amd64.deb
sudo dpkg -i grafana-enterprise_9.5.1_amd64.deb

/etc/grafana.ini 를 수정한다.

...
[server]
http_port = 4000

그 후에 grafana를 실행한다. 오류 메세지가 나오더라도 보통은 실행된다… ;(

service grafana-server start

/etc/influxdb/influxdb.conf 파일을 수정한다.

...
[http]
  # Determines whether HTTP endpoint is enabled.
   enabled = true

  # The bind address used by the HTTP service.
   bind-address = ":8086"

  # Determines whether user authentication is enabled over HTTP/HTTPS.
   auth-enabled = true


...
[[graphite]]
  # Determines whether the graphite endpoint is enabled.
   enabled = true
   database = "graphite"
   retention-policy = ""
   bind-address = ":2003"
   protocol = "tcp"
   consistency-level = "one"
...

InfluxDB를 실행한다.

echo service influxdb start

사용자 ID와 비밀번호를 설정한다. 편의상 admin/1로 설정했다. 다른 SQL과 다른게 마지막에 새미콜론이 빠져도 된다.

> create user admin with password '1' with all privileges

exit 입력 후 다시 설정한 ID와 PW로 로그인 한다.

influx -username "admin" -password "1"

influxdb.conf 에서 graphite 부분에 database 이름을 graphite라고 했으므로 graphite DB를 생성한다.

> create database graphite

생성된 database를 확인해 본다.

> show databases
name: databases
name
----
_internal
graphite

Grafana에 접속해서 다음의 메뉴를 찾는다.

HTTP URL을 입력하고, Auth 에 Basic auth 선택, Basic Auth Details에서 ID/PW를 입력한다. PW를 입력하고 나면 configured 라고 나온다.

그리고 아래 부분에서 Database를 입력해주고, HTTP Method에서 GET을 선택한다.