티스토리 뷰

반응형

InfluxDB를 활용한 Grafana의 Scouter 모니터링 시스템

시계열 데이터베이스인 InfluxDB를 활용해서 Scouter Server의 모니터링 시스템을 만들어보도록 하겠습니다. Scouter 모니터링 시스템의 구조는 다음과 같이 Scouter Server에서 InfluxDB로 데이터를 보내고, 해당 데이터를 Grafana에서 받아서 출력합니다.


      Scouter Server → InfluxDB → Grafana


주의사항

Scouter와 InfluxDB를 연동할 때의 주의점은 InfluxDB의 버전입니다. 테스트 결과 새로나온 InfluxDB의 1.4.2 버전에서는 연동이 제대로 되지 않았고, 0.10.0 버전에서만 가능했습니다. (0.13.0까지도 불가능)

그렇기 때문에 pgwatch2의 InfluxDB와 함께 사용할 수가 없어서 pgwatch2를 실행시킨 서버와는 다른 서버에 InfluxDB를 설치하고 연동을 진행하였습니다. (nifa-db에서 진행)

Scouter는 Zabbix가 설치된 서버인 nifa-was에서 구동하였습니다.

또한, InfluxDB와 Scouter Server는 UDP로 통신합니다.


InfluxDB 설치

우선, nifa-db 서버에 InfluxDB를 설치합니다. (0.10.0 버전)

#InfluxDB 설치(ver 0.10.0)
wget --no-check-certificate https://s3.amazonaws.com/influxdb/influxdb-0.10.0-1.x86_64.rpm
sudo yum localinstall influxdb-0.10.0-1.x86_64.rpm

#InfluxDB 실행권한 변경
sudo chown -R tomcat:tomcat /etc/influxdb

설치를 완료하면 /etc/influxdb/influxdb.conf 로 설정파일이 생기며 데이터파일들은 /var/lib/influxdb 에 저장됩니다.

향후 운영관점에서 데이터가 늘어날 것을 대비하여 미리 용량이 충분한 위치로 데이터파일들을 옮기고 싶으면 influxdb를 정지한 다음 데이터파일들을 옮긴 후 설정 파일을 수정하고 influxdb 를 다시 기동 하면 됩니다.

  • [meta] > dir
  • [data] > dir, wal-dir
  • [hinted-handoff] > dir
#InfluxDB 설치 확인
influx --version


InfluxDB 실행

설치가 완료되면 InfluxDB를 실행합니다.

#InfluxDB 실행
sudo service influxdb start


InfluxDB & Scouter Server 연결

InfluxDB 설정

우선 Scouter Server와 InfluxDB를 연동하기 위해 InfluxDB에 scouterCounter 데이터베이스를 생성하고 influxdb.conf 파일을 수정합니다.

# InfluxDB 실행
influx

# ScouterCounter 데이터베이스 생성
CREATE DATABASE scouterCounter
SHOW DATABASES
exit

# influxdb.conf 파일 수정
vi /etc/influxdb/influxdb.conf

influxdb.conf 파일에서 httpudp 항목을 다음과 같이 수정합니다.

[http]
  enabled = true
  bind-address = ":8086"
  auth-enabled = false
  log-enabled = true
  write-tracing = false
  pprof-enabled = false
  https-enabled = false
  https-certificate = "/etc/ssl/influxdb.pem"



[[udp]]
  enabled = true
  bind-address = ":8089"
  database = "scouterCounter"
  retention-policy = "default"

  batch-size = 100 # will flush if this many points get buffered
  batch-pending = 5 # number of batches that may be pending in memory
  batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit
  read-buffer = 0 # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.



수정이 완료되면 InfluxDB를 재실행합니다. InfluxDB를 중지한 상태에서 ps -ef 명령을 통해 InfluxDB를 실행중인 프로세스가 없는지 확인한 뒤 InfluxDB를 다시 시작합니다. (간혹 InfluxDB를 중지시켜도 InfluxDB에 대한 프로세스가 다시 살아나 수정한 설정파일이 제대로 적용되지 않는 경우가 있음)

만약 InfluxDB를 중지시켰는데도 불구하고 InfluxDB에 대한 프로세스가 실행중인 경우에는 kill -9 <PID> 명령을 통해 해당 프로세스를 직접 죽이고 InfluxDB를 다시 시작합니다.

# InfluxDB 재실행
sudo service influxdb stop
ps -ef | grep influx
sudo service influxdb start

InfluxDB를 다시 시작하고 나서 status 명령을 통해 상태를 확인합니다. Active 상태가 active (running)으로 출력되어야 정상적으로 동작중인 것입니다.

# InfluxDB 상태 확인
sudo service influxdb status



Scouter Server 설정

이제 Scouter Server에 InfluxDB의 Plugin을 설치하고, 설정 파일을 수정합니다.

# Scouter Server에 InfluxDB Plugin 설치

# Scouter Server 설정 파일 수정
vi /was-data/scouter/scouter/server/conf/scouter.conf

UDP 통신을 위해 scouter.conf 파일에 다음 내용을 추가합니다.

ext_plugin_influxdb_enabled : true
ext_plugin_influxdb_measurement : counter

ext_plugin_influxdb_udp : true
ext_plugin_influxdb_udp_target_ip : 172.16.25.80
ext_plugin_influxdb_udp_target_port : 8089

ext_plugin_influxdb_http_target_ip : 172.16.25.80
ext_plugin_influxdb_http_target_port : 8086
ext_plugin_influxdb_http_retention_policy : default

ext_plugin_influxdb_id : root
ext_plugin_influxdb_password : root
ext_plugin_influxdb_dbName : scouterCounter



Plugin 설치와 설정 파일 수정이 완료되면 Scouter Server를 재기동합니다.

# Scouter Server 재기동
cd /was-data/scouter/scouter/server
./stop.sh
./startup.sh


InfluxDB & Scouter Server 연결 확인

InfluxDB와 Scouter Server의 연결이 완료되면 InfluxDB에 데이터가 잘 들어오는지 확인해보아야 합니다.

# InfluxDB 접속
influx

show measurements 명령을 실행했을 때, 데이터가 출력이 되면 연결이 성공한 것입니다.

# 데이터 확인
use scouterCounter
show measurements
select * from counter limit 5


Grafana에 데이터 출력

이제 해당 내용을 Grafana에 출력해봅시다.

출력을 위해 Grafana 페이지에 로그인합니다. pgwatch2에서 기본적으로 설정된 admin 계정은 다음과 같습니다.

  • ID : admin
  • PW : pgwatch2admin

Data Source 추가

Grafana 페이지에서 Scouter에 대한 Data Source를 추가해줍니다. http://172.16.25.70:3000/datasources

  • Name: Scouter
  • Type: InfluxDB
  • URL: http://172.16.25.80:8086
  • Access: proxy
  • Database: scouterCounter
  • User: root
  • Password: root




대시보드 생성

Grafana에서 Graph 형식의 대시보드를 하나 추가하고 다음과 같이 입력합니다.

General



Metrics



Axes



Legend



Display: Series overrides



저장

위와 같이 Graph를 만들고 저장 버튼을 클릭해 대시보드의 이름을 Scouter로 지정하면 다음과 같은 대시보드 화면이 출력됩니다.



현재에는 Grafana에서 Scouter에 대한 모니터링 대시보드를 따로 제공하지 않기 때문에 이런 식으로 사용자가 직접 대시보드를 만들어서 사용해야 합니다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함