- 인쇄
- PDF
OpenTSDB 사용
- 인쇄
- PDF
HBase 기반으로 동작하는 OpenTSDB(Time Series DataBase)는 분산 및 확장이 가능한 시계열 데이터베이스입니다.
OpenTSDB는 서버, 네트워크, 응용 프로그램으로부터 수집된 메트릭 정보를 저장, 색인, 전달하는 등의 처리를 위해 만들어졌습니다.
OpenTSDB 아키텍처
- TSD(Time Series Daemon): 입력된 메트릭 정보를 HBase 저장소에 저장하는 역할을 담당합니다.
- 입력 소스: 서버, 네트워크, 응용프로그램 등으로부터 보내지는 메트릭 정보입니다.
- 저장소: HBase를 기본 저장소로 이용하여 시계열 데이터를 저장합니다.
OpenTSDB에 대한 자세한 내용은 OpenTSDB 홈페이지를 참고해 주십시오.
CloudHadoop을 이용하여 OpenTSDB를 구축하는 방법을 설명합니다.
이 페이지에서 사용하는 OpenTSDB 오픈소스에 대한 내용은 OpenTSDB를 참고해 주십시오.
사전 작업
OpenTSDB를 설치할 서버를 생성해 주십시오. 예시는 Linux 서버에서 사용하는 방법을 설명합니다.
OpenTSDB 사용
우선, OpenTSDB 오픈소스를 서버에 설치할 때 필요한 요구 사항을 확인해 주십시오. <설치 요구 사항> 은 다음과 같습니다.
<설치 요구 사항>
- Java SE (JDK)
- Gnuplot
- OpenTSDB (오픈소스)
1. OpenTSDB 설치
서버에 OpenTSDB 설치하는 방법은 다음과 같습니다.
다음 명령어를 사용하여 OpenJDK를 서버에 설치해 주십시오.
yum install java-1.8.0-openjdk-devel.x86_64
yum 패키지 관리자를 이용하여 OpenTSDB의 그래프를 생성하는 데 필요한
gnuplot
패키지를 설치해 주십시오.yum -y install gnuplot
사용자 계정을 생성해 주십시오.
useradd -m -d /home/opentsdb -u 10001 opentsdb
로그 디렉터리를 생성해 주십시오.
mkdir /var/log/opentsdb && chown opentsdb:opentsdb /var/log/opentsdb
OpenTSDB 오픈 소스를 설치해 주십시오.
# root 사용자 su - opentsdb # opentsdb 사용자 git clone https://github.com/OpenTSDB/opentsdb cd opentsdb
OpenTSDB 소스를 빌드해 주십시오.
# opentsdb 사용자 ./build.sh
2. HBase 클라이언트 설치
HBase 클라이언트를 설치하는 방법은 다음과 같습니다.
다음 명령어를 사용하여 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를 다운로드해 주십시오.
Ambari UI에서 [ACTIONS] > Download Client Configs를 클릭하여 다운로드 받은 'HBase 클라이언트 설정 정보'를 OpenTSDB를 설치한 서버로 전송해 주십시오.
- Ambari UI 접속 및 사용에 대한 자세한 내용은 Ambari UI를 참고해 주십시오.
- Ambari UI 접속 및 사용에 대한 자세한 내용은 Ambari UI를 참고해 주십시오.
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
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
Ambari UI > Hosts 메뉴에서 Cloud Hadoop 클러스터의 호스트명과 Private IP 정보를 확인해 주십시오.
다음 명령어를 사용하여
/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
다음 명령어를 사용하여
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 테이블을 생성하는 방법은 다음과 같습니다.
다음 명령어를 사용하여
TSDB
테이블을 생성해 주십시오.# opentsdb 사용자 export COMPRESSION=SNAPPY export DATA_BLOCK_ENCODING=FAST_DIFF export TSDB_TTL=2147483647 sh ~/opentsdb/src/create_table.sh
다음 명령어로 테이블 리스트를 확인해 주십시오.
# 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에 시계열 데이터를 저장하는 방법은 다음과 같습니다.
다음 명령어를 사용하여
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]
다음 명령어를 사용하여
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
다음 명령어를 사용하여 메트릭 데이터를 OpenTSDB로 전송해 주십시오.
sh sar-data-input.sh
6. OpenTSDB 그래프 확인
OpenTSDB 그래프를 확인하는 방법은 다음과 같습니다.
- 서버 콘솔에서 OpenTSDB 서버의 공인 IP를 확인해 주십시오.
- OpenTSDB 서버의
8888
번 포트로 접속하여 수집된 그래프를 확인해 주십시오.