OpenTSDB 사용
    • PDF

    OpenTSDB 사용

    • PDF

    기사 요약

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

    OpenTSDB 아키텍처

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

    hadoop-chadoop-use-ex1_1-1

    참고

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

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

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

    사전 작업

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

    • 서버 생성에 대한 자세한 내용은 Server 시작 가이드를 참고해 주십시오.
    • Linux 서버에 접속하는 방법은 서버 접속 가이드를 참고해 주십시오.

    OpenTSDB 사용

    우선, OpenTSDB 오픈소스를 서버에 설치할 때 필요한 요구 사항을 확인해 주십시오. <설치 요구 사항> 은 다음과 같습니다.

    <설치 요구 사항>

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

    1. OpenTSDB 설치

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

    1. 다음 명령어를 사용하여 OpenJDK를 서버에 설치해 주십시오.

      yum install java-1.8.0-openjdk-devel.x86_64
      
    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. OpenTSDB 소스를 빌드해 주십시오.

      # opentsdb 사용자
      ./build.sh
      

    2. HBase 클라이언트 설치

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

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

      • Cloud Hadoop 2.0 이상 버전
      # opentsdb 사용자
      wget https://archive.apache.org/dist/hbase/2.2.6/hbase-2.2.6-bin.tar.gz
      tar xvfz hbase-2.2.6-bin.tar.gz
      ln -s hbase-2.2.6 hbase
      
      • Cloud Hadoop 1.9 이하 버전
      # opentsdb 사용자
      wget https://archive.apache.org/dist/hbase/2.0.2/hbase-2.0.2-bin.tar.gz
      tar xvfz hbase-2.0.2-bin.tar.gz
      ln -s hbase-2.0.2 hbase
      
      참고

      Cloud Hadoop Classic의 경우 HBase 1.1.2를 다운로드해 주십시오.

    2. Ambari UI에서 [ACTIONS] > Download Client Configs를 클릭하여 다운로드 받은 'HBase 클라이언트 설정 정보'를 OpenTSDB를 설치한 서버로 전송해 주십시오.

      • Ambari UI 접속 및 사용에 대한 자세한 내용은 Ambari UI를 참고해 주십시오.
        hadoop-chadoop-use-ex1_2-2_ko
    3. 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
      
    4. opentsdb 사용자의 .bash_profile을 수정해 주십시오.

      # opentsdb 사용자
      echo 'export HBASE_HOME=~/opentsdb/hbase'                 >> ~/.bash_profile
      echo 'export PATH=$PATH:${HBASE_HOME}/bin'                >> ~/.bash_profile
      echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk'   >> ~/.bash_profile
      logout
      
    5. Ambari UI > Hosts 메뉴에서 Cloud Hadoop 클러스터의 호스트명과 Private IP 정보를 확인해 주십시오.
      hadoop-chadoop-use-ex1_2-5_ko

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

      • 이전 단계에서 확인한 Cloud Hadoop 클러스터의 호스트명과 Private IP 정보를 추가해 주십시오.
    # root 사용자
    # echo 'IP            호스트명'     >> /etc/hosts
    echo  '1**.**.*.*  e-001-*****-**'  >> /etc/hosts
    echo  '1**.**.*.*  m-001-*****-**'  >> /etc/hosts
    echo  '1**.**.*.*  m-002-*****-**'  >> /etc/hosts
    echo  '1**.**.*.*  d-001-*****-**' >> /etc/hosts
    echo  '1**.**.*.*  d-002-*****-**' >> /etc/hosts
    
    1. 다음 명령어를 사용하여 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을 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를 확인해 주십시오.
      hadoop-chadoop-use-ex1_6-1_ko
    2. OpenTSDB 서버의 8888번 포트로 접속하여 수집된 그래프를 확인해 주십시오.
      hadoop-chadoop-use-ex1_6-2_ko

    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.