레이블이 InfluxDB인 게시물을 표시합니다. 모든 게시물 표시
레이블이 InfluxDB인 게시물을 표시합니다. 모든 게시물 표시

2015년 11월 19일 목요일

Grafana (RealTime Visualization) - version upgrade (2.1.3 -> 2.5.0)

Grafana 리얼타임 시각화 도구가 최근 2.1.3에서 2.5.0 으로 급격하게 버전이 바뀌었다. 패널을 드래그&드롭 하거나 크기를 자유롭게 마우스로 변경 한다던지, ElasticSearch 등에 대한 Full Featured Query Editing 을 지원한다던지 하는 기능도 추가 되었다.

  1. 다운로드 및 설치
    1. 다운로드 & yum install
    2. sudo yum install https://grafanarel.s3.amazonaws.com/builds/grafana-2.5.0-1.x86_64.rpm
  2. 설정 변경 ( 2.1.3과 좀 바뀐부분이 많다 )
    1. vi /etc/sysconfig/grafana-server  
      1. data 디렉토리 변경
        1. DATA_DIR=/data02/grafana/data
      2. log 디렉토리 변경
        1. LOG_DIR=/data02/grafana/log
    2. 그리고 vi /etc/grafana/grafana.ini 에서도 수정
      1. ;data = /data02/grafana/data
      2. ;logs = /data02/grafana/log
      3. ;http_port = 3033
    3. vi /usr/share/grafana/conf/defaults.ini (기본 port 는 요기서도 변경 해주어야 적용이 되었다.)
      1. 기본 Port 변경
        1. http_port = 3033
      2. 기타 Password 등 변경
  3. 구동
    1. sudo service grafana-server start
    2. 구동시 자동 구동되도록 설정
      1. sudo /sbin/chkconfig --add grafana-server
  4. 관리 Web Console

2015년 11월 18일 수요일

Grafana (RealTime Visualization) 2.1.3 - 설치기

influxDB 및 graphite 와 궁합이 좋은 실시간 시각화 툴.(최근 버전은 ElasticSearch 도 지원한다.)
이 툴을 이용하면, 실시간 Dash Board 를 Wizard 모드로 쉽게 만들어 낼 수 있다. 최근에 2.5.0 버전이 나왔는데....
요건 오래전에 정리해놓고 올리지 못한 2.1.3 버전 설치 문서...

  1. 다운로드 및 설치
    1. 다운로드 & yum install
    2. sudo yum install https://grafanarel.s3.amazonaws.com/builds/grafana-2.1.3-1.x86_64.rpm
  2. 설정 변경
    1. vi /usr/share/grafana/conf/defaults.ini 
      1. data 디렉토리 변경
        1. data = /data02/grafana/data
      2. log 디렉토리 변경
        1. logs = /data02/grafana/log
      3. 기본 Port 변경(필요시에만...)
        1. http_port = 3033
      4. http_addr 수정
      5. domain 수정
      6. admin_passwd 변경
  3. 구동
    1. sudo service grafana-server start
    2. 구동시 자동 구동되도록 설정
      1. sudo /sbin/chkconfig --add grafana-server
  4. 관리 Web Console

InfluxDB (Distributed time series database for RealTime Aggregation) - version upgrade (0.9.3 -> 0.9.4.2)

InfluxDB를 Production Level 에서 사용해 보면, 초반에 느껴지는 강렬한 장점들 외에도, 보이지 않는 부분에 단점도 많이 발견 되는 것이 사실이다. 무엇보다, 아직 정식 1.0 버전이 아닌지라 아직 미완의 기능들이 존재하여, 더욱 그럴것이다.

그럼에도 불구하고 버전업이 빠르고, 여러가지 플러그인 프로젝트들도 활발하여, 어찌 되었든 매우 매력적인  NoSQL이다라는 느낌에는 변함이 없다.

0.9.3 을 사용한지 얼마 되지 않았지만, 0.9.4.2 로 현재 stable 버전이 올라가 있어(현재 0.9.5가 RC3 까지 나와 있긴 하지만..), 버전 업 적용을 해 보았다.

아쉽게도, 홈페이지 설치 메뉴얼은 아직 0.9.3 버전에서 갱신이 일부만 되어 있어 그데로 설치 했다가는 설치가 잘 되지 않는 현상이 존재한다.( 2015년 11월 17일 현재 CentOS 7.X 에서만..)

아래는 CentOS 7.X 에 /etc/init.d/ 가 아닌 systemctl 환경에서 에러가 나는 부분을 수동 구동 방식으로 해결한 설치 스크립트 세팅 방법이다. (개인적인 해결 방법이므로 비공식 구동 방법임.)


  1. 기본설치
    1. 기본적인 설치는 0.9.3과 동일하다.
      1. http://hoondongkim.blogspot.kr/2015/08/influxdb-distributed-time-series.html
  2. 클러스터 세팅
    1. 클러스터 세팅 방식이 2015년 11월 17일자 공식 홈페이지 상의 설치 문서로는 CentOS7.X 에서 구동이 되지 않는다. (0.9.3 스타일로 설명이 되어 있는데, 0.9.4.2 에서의 버그 이거나, 혹은 CentOS7.X 버전에서만의 버그 일 수 있음.)
    2. 그래서 아래처럼 해주었다.
      1. sudo vi /etc/opt/influxdb/influxdb.conf
        1. hostname = "localhost" 를 각 노드 hostname 으로 수정
        2. port 를 1번노드는 :8088 , 2번노드는 :9099 , 3번노드는 :10101 로 수정.
      2. 전체 노드에서 아래처럼 변경
        1. sudo vi /opt/influxdb/init.sh 에서 아래 수정
          1. USER=수행USER_ID (예, root)
          2. GROUP=수행GROUP_ID (예, root)
          3. PIDFILE 수정 후 Permission을 위 ID 로 Read/Wrtie 가능하게 수정.
          4. STDERR 도 경로 및 퍼미션 수정
        2. sudo vi /etc/opt/influxdb/influxdb.conf 에서 hinted-handoff 부분 dir 프로퍼티 수정
          1. 경로를 위 1에서 만든 USER_ID 가 억세스 가능한 디렉토리로 수정.
        3. root 가 아닌 경우 권한에 따라 go 랭귀지 소스를 tmp 디렉토리에서 빌드 수행시 에러 날 수 있음. go 소스 수행 권한이 있는 USER_Group 이어야 함.
      3. 1번 노드에서 아래처럼 구동
        1. 메뉴얼데로 하면 안됨.
        2. sudo /opt/influxdb/init.sh start
      4. 2번노드에서 아래처럼 INFLUXD_OPTS 값 변경 및 구동
        1. sudo vi  /opt/influxdb/init.sh 에서 INFLUXD_OPTS="-join hostname1:8088"
        2. sudo /opt/influxdb/init.sh start
      5. 3번노드에서 아래처럼 INFLUXD_OPTS 값 변경 및 구동
        1. sudo vi  /opt/influxdb/init.sh 에서 INFLUXD_OPTS="-join hostname1:8088,hostname2:9099"
        2. sudo /opt/influxdb/init.sh start
  3. 설치완료 확인
    1. 3Node 인 경우의 클러스터 구성 확인. 이후 동일한 방법으로 Node 추가 하고 클러스터 확인 하면 끝.
    2. WebConsole 확인. 아직 변화는 없넹....
 

2015년 8월 31일 월요일

InfluxDB (Distributed time series database for RealTime Aggregation) - 설치기

InfluxDB는 오랫동안 예의 주시해오던 RealTime Layer의 TimeSeries (Aggregation도 되는) NoSQL DB 이다.( Go 랭귀지로 만들어져 있고, 요런류의 NoSQL 로는 신생에 속해서, 왠지 그냥 빠를것 같다는 선입견도 있었는데 진짜로 빠르고 직관적이라 사용하기도 쉽다.)
그러나, 오랫동안 Cluster 세팅이 베타 버전이었고, 0.9.1 과 0.9.2 는 three node 구성만 지원하는 제약이 있어, Production 에서 사용하기에 많이 부족한 면이 없지 않았다. 하지만 최근(본 글을 쓰는 시점으로 부터 4일전. 2015년 8월 27일) 0.9.3 버전이 오픈되면서 이 제약이 풀렸다. 7월초에 0.9.1이 정식 릴리즈 되었었고, 7월말에 0.9.2 이 정식 릴리즈 된바 있었는데, 한달이 지난 8월 27일 드디어 클러스터 세팅이 공식 지원되는 첫 버전이 릴리즈 된 것이다. ( 요놈도 마이너 버전이긴 하지만, 마이너 정식버전 릴리즈가 엄청나게 빠르다. )

아래는 클러스터 지원에 대한 공식 홈페이지에서의 언급 내용이다. 물론 아직 약간의 개선되어야 할 피처가 남아 있는게 사실이다. Computing Node 즉 분산쿼리에 있어서는 아직 Beta State 라고 언급하고 있고, 단지, Storage 입장에서 Data Node 가 3대 이상으로 확장되고, Size 분산되는 입장에서만 Release 가 정식버전이라 언급하고 있다.(3대 노드 이상일때 분산 쿼리가 지원이 안되는 것은 아니다, 좀더 해결해야 할 부분들이 더 남아 있다는 표현이 맞을 듯 하다.) 즉, 분산 쿼리 측면에서는 아직 Hybrid 한 느낌이다. (여하튼 아직까지는 3대 정도의 Node 갯수에서도 Spark Streaming 이 전처리를 한, 작은 Window Size 의 데이타에 대하여는 충분히 빠른 결과를 보여주고 있다.)




  1. 디렉토리 구성 및 설치 파일 다운로드. 그리고 간략 설치.
    1. cd /data01
    2. mkdir influxdb
    3. cd influxdb
    4. wget https://s3.amazonaws.com/influxdb/influxdb-0.9.3-1.x86_64.rpm
    5. sudo yum localinstall -y influxdb-0.9.3-1.x86_64.rpm
    6. sudo /etc/init.d/influxdb start <--- single node 구성이 아닐때는 요걸 먼저 수행하면 큰일 남... 이것땜에 삽질 많이 함. 모든 컨피그 끝나고 첫 수행을 해야 함. Cluster Mode 세팅 시에는 Cluster 관련 세팅 종료 후 구성해야 함.
      1. 일단 요기까지 하면, single node 구성 세팅 완료. 
  2. CLI 구동 ( Cluster Node 일때는 모든 세팅 끝나고 수행 )
    1. 우선 환경변수에 추가.( at .bashrc 에 /opt/influxdb 추가 )
    2. influx 하면 CLI 가 구동 됨.
    3. 아래는 상세 옵션 들.... import 도 되고, 원격서버접속도 되고, format  옵션으로 json 이나 csv 로 output 을 뽑을 수도 있고, compressed import 옵션도 보인다.
  3. Cluster 세팅 
    1. 각 노드에서 설정 변경
      1. sudo vi /etc/opt/influxdb/influxdb.conf
        1. hostname = "localhost" 를 각 노드 hostname 으로 수정
        2. port 를 1번노드는 :8088 , 2번노드는 :9099 , 3번노드는 :10101 로 수정. 
      2. 1번 노드에서 재구동
        1. sudo /etc/init.d/influxdb stop
        2. sudo /etc/init.d/influxdb start
      3. 2번 노드에서 아래처럼 구동
        1. sudo vi /etc/init.d/influxdb 에서 INFLUXD_OPTS="-join hostname1:8088"
        2. sudo /etc/init.d/influxdb stop
        3. sudo /etc/init.d/influxdb start
      4. 3번 노드에서 아래처럼 구동
        1. sudo vi /etc/init.d/influxdb 에서 INFLUXD_OPTS="-join hostname1:8088,hostname2:9099"
        2. sudo /etc/init.d/influxdb stop
        3. sudo /etc/init.d/influxdb start
      5. 확인
        1. influx 하여 CLI  콘솔을 띄우고, show servers  해서 node 들이 복수개 보여야 함.
        2. 그러나 위데로(메뉴얼데로) 했는데, 안되기도 함.TT
        3. 아래처럼 config 파일을 열어서 수동으로 세팅...
        4. sudo vi /var/opt/influxdb/meta/peers.json
        5. ["<hostname 1>:<port 1>","<hostname 2>:<port 2>","<hostname 3>:<port 3>"]
        6. 정상 수행 완료 되면, show servers 명령에 아래처럼 3개 Node 가 보여져야 함.