OpenTSDB 사용
  • PDF

OpenTSDB 사용

  • PDF

VPC 환경에서 이용 가능합니다.

OpenTSDB는 HBase를 기반으로 동작하는 분산 및 확장이 가능한 시계열 데이터베이스입니다. TSDB는 Time Series Database를 의미합니다.
OpenTSDB는 서버, 네트워크, 응용 프로그램으로부터 수집된 메트릭 정보를 저장, 색인, 전달하는 등의 처리를 위해 만들어졌습니다.

OpenTSDB 아키텍처

  • TSD(Time Series Daemon): 입력된 메트릭 정보를 HBase 저장소에 저장하는 역할을 담당합니다.
  • 입력 소스: 서버, 네트워크, 응용프로그램 등으로부터 보내지는 메트릭 정보입니다.
  • 저장소: HBase를 기본 저장소로 이용하여 시계열 데이터를 저장합니다.

hadoop-chadoop-use-ex1_1-1_ko

참고

OpenTSDB에 대한 자세한 내용은 OpenTSDB 홈페이지를 참고해 주십시오.

CloudHadoop을 이용하여 OpenTSDB를 구축하는 방법을 설명합니다.

이 페이지에서 사용하는 OpenTSDB 오픈소스에 대한 내용은 OpenTSDB를 참고해 주십시오.

사전 작업

OpenTSDB를 설치할 서버를 생성해 주십시오. 예시는 리눅스 서버에서 사용하는 방법을 설명합니다.

  • 서버 생성에 대한 자세한 내용은 Server 시작을 참고해 주십시오.
  • 리눅스 서버에 접속하는 방법은 서버 접속을 참고해 주십시오.

OpenTSDB 사용

우선, OpenTSDB 오픈소스를 서버에 설치 시 필요한 다음의 요구 사항을 확인해 주십시오.

설치 요구 사항

  • Java SE (JDK)
  • Gnuplot
  • OpenTSDB (오픈 소스)

1. OpenTSDB 설치

서버에 OpenTSDB 설치하는 방법은 다음과 같습니다.

  1. 다음 명령어를 사용하여 Oracle 사이트에서 JDK를 다운로드한 후 서버에 설치해 주십시오.

    rpm -ivh jdk-8u192-linux-x64.rpm
    
    참고
    • i: 패키지 설치
    • v: 상세 정보 출력
    • h: 설치 진행 상황 출력
  2. yum 패키지 관리자를 이용하여 OpenTSDB의 그래프를 생성하는 데 필요한 gnuplot 패키지를 설치해 주십시오.

    yum -y install gnuplot
    
  3. 사용자 계정을 생성해 주십시오.

    useradd -m  -d /home/opentsdb -u 10001 opentsdb
    
  4. 로그 디렉터리를 생성해 주십시오.

    mkdir /var/log/opentsdb && chown opentsdb:opentsdb /var/log/opentsdb
    
  5. OpenTSDB 오픈 소스를 설치해 주십시오.

    # root 사용자
    su - opentsdb
    
    # opentsdb 사용자
    git clone https://github.com/OpenTSDB/opentsdb
    cd opentsdb
    
  6. OpentTSDB 소스를 빌드해 주십시오.

    # opentsdb 사용자
    ./build.sh
    

2. HBase 클라이언트 설치

HBase 클라이언트를 설치하는 방법은 다음과 같습니다.

  1. 다음 명령어를 사용하여 HBase Binary를 다운로드해 주십시오.

    # opentsdb 사용자
    wget https://archive.apache.org/dist/hbase/1.1.2/hbase-1.1.2-bin.tar.gz
    tar xvfz hbase-1.1.2-bin.tar.gz
    ln -s hbase-1.1.2 hbase
    
  2. Ambari UI 페이지에서 HBase 클라이언트 설정 정보를 다운로드해 주십시오.

    • Ambari UI 접속 및 사용에 대한 자세한 내용은 Ambari UI를 참고해 주십시오.

hadoop-chadoop-use-ex1_2-2_ko

  1. HBase 클라이언트 설정 정보의 압축을 풀어 주십시오.

    # opentsdb 사용자
    tar xvfz HBASE_CLIENT-configs.tar.gz -C ~/opentsdb/hbase/conf
    sed -i -e 's|\(^export JAVA_HOME=.*\)|#\1|' ~/opentsdb/hbase/conf/hbase-env.sh
    
  2. opentsdb 사용자의 .bash_profile을 수정해 주십시오.

    # opentsdb 사용자
    echo 'export HBASE_HOME=~/hbase'                   >> ~/.bash_profile
    echo 'export PATH=$PATH:${HBASE_HOME}/bin'         >> ~/.bash_profile
    echo 'export JAVA_HOME=/usr/java/jdk1.8.0_192-amd64' >> ~/.bash_profile
    logout
    
  3. Ambari UI Hosts 페이지에서 Cloud Hadoop 클러스터의 호스트명과 IP 정보를 확인해 주십시오.

hadoop-chadoop-use-ex1_2-5_ko

  1. 다음 명령어를 사용하여 /etc/hosts 정보를 추가해 주십시오.

    • 이전 단계에서 확인한 Cloud Hadoop 클러스터의 호스트명과 IP 정보를 추가해 주십시오.
    # root 사용자
    # echo 'IP               호스트명'      >> /etc/hosts
    echo  '1*.**.**.237  e-001-*****-**'  >> /etc/hosts
    echo  '1*.**.**.109  m-001-*****-**'  >> /etc/hosts
    echo  '1*.**.**.142  m-002-*****-**'  >> /etc/hosts
    echo  '1*.**.**.169  dn-001-*****-**' >> /etc/hosts
    echo  '1*.**.**.186  dn-002-*****-**' >> /etc/hosts
    echo  '1*.**.**.221  dn-002-*****-**' >> /etc/hosts
    
  2. 다음 명령어를 사용하여 hbase shell 접속을 테스트해 주십시오.

    su - opentsdb
    # opentsdb 사용자
    hbase shell
    
    HBase Shell; enter 'help<RETURN>' for list of supported commands.
    Type "exit<RETURN>" to leave the HBase Shell
    Version 1.1.2, rcc2b70cf03e3378800661ec5cab11eb43fafe0fc, Wed Aug 26 20:11:27 PDT 2015
    hbase(main):001:0>
    

만약, HBase Shell 접속이 실패한 경우에는 Cloud Hadoop의 ACG에 OpenTSDB 서버를 추가해 주십시오.
ACG 설정에 대한 내용은 방화벽 설정(ACG)을 참고해 주십시오.

3. OpenTSDB 테이블 생성

OpenTSDB 테이블을 생성하는 방법은 다음과 같습니다.

  1. 다음 명령어를 사용하여 TSDB 테이블을 생성해 주십시오.

    # opentsdb 사용자
    export COMPRESSION=SNAPPY
    export DATA_BLOCK_ENCODING=FAST_DIFF
    export TSDB_TTL=2147483647
    sh ~/opentsdb/src/create_table.sh
    
  2. 다음 명령어로 테이블 리스트를 확인해 주십시오.

    # opentsdb 사용자
    hbase shell
    hbase(main):001:0> list
    TABLE
    tsdb
    tsdb-meta
    tsdb-tree
    tsdb-uid
    4 row(s) in 0.1620 seconds
    
    => ["tsdb", "tsdb-meta", "tsdb-tree", "tsdb-uid"]
    hbase(main):002:0>
    

4. OpenTSDB 기동

다음 명령어를 사용하여 TSD(Time Series Daemon)을 8888번 포트로 기동해 주십시오.

```
# opentsdb 사용자
cd opentsdb
./build/tsdb tsd --port=8888 --staticroot=build/staticroot --
cachedir=`pwd`/build/tmp --zkquorum=m-001-*****-**,m-002-*****-**,dn-001-*****-**:
2181 --zkbasedir=/hbase-unsecure &
```

5. OpenTSDB에 시계열 데이터 저장

OpenTSDB에 시계열 데이터를 저장하는 방법은 다음과 같습니다.

  1. 다음 명령어를 사용하여 cpu.util 메트릭을 생성해 주십시오.

    # opentsdb 사용자
    .build/tsdb mkmetric cpu.util --zkquorum=m-001-*****-**,m-002-*****-**,dn-001-*****-**:
    2181 --zkbasedir=/hbase-unsecure metrics cpu.util: [0, 0, 1]
    
  2. 다음 명령어를 사용하여 cpu.util 메트릭 수집 스크립트를 생성해 주십시오. (sar-data-input.sh)

    • 스크립트 출처: Effective Monitoring and Alerting 원서 참고
    #!/bin/bash 
    # Ignore sar's header.  
    LC_ALL=en sar -u 1 | sed -u -e '1,3d' | 
    while read time cpu usr nice sys io steal idle; 
    do
        NOW=$(date +%s)
        echo put cpu.util $NOW $usr time=user
        echo put cpu.util $NOW $sys time=system
        echo put cpu.util $NOW $io time=io
        echo put cpu.util $NOW $idle time=idle
        # Report values to standard error.
        echo timestamp:$NOW user:$usr sys:$sys io:$io idle:$idle >&2 
    done | nc -w 30 localhost 8888
    
  3. 다음 명령어를 사용하여 메트릭 데이터를 OpenTSDB로 전송해 주십시오.

    sh sar-data-input.sh
    

6. OpenTSDB 그래프 확인

OpenTSDB 그래프를 확인하는 방법은 다음과 같습니다.

  1. 서버 콘솔에서 OpenTSDB 서버의 공인 IP를 확인해 주십시오.
  2. OpenTSDB 서버의 8888번 포트로 접속하여 수집된 그래프를 확인해 주십시오.

hadoop-chadoop-use-ex1_6-2_ko


이 글이 도움이 되었나요?

What's Next