VPC 환경에서 이용 가능합니다.
HBase 기반으로 동작하는 OpenTSDB(Time Series DataBase)는 분산 및 확장이 가능한 시계열 데이터베이스입니다.
OpenTSDB는 서버, 네트워크, 응용 프로그램으로부터 수집된 메트릭 정보를 저장, 색인, 전달하는 등의 처리를 위해 만들어졌습니다.
Secure Hadoop에서 OpenTSDB를 사용하려면 일반 Cloud Hadoop 환경과 달리 Kerberos 인증, LDAP 계정, HBase 권한 설정, OpenTSDB JVM의 JAAS 설정이 필요합니다. OpenTSDB는 AsyncHBase 클라이언트를 통해 HBase와 ZooKeeper에 접근하므로, HBase Shell 접속이 가능하더라도 TSD(Time Series Daemon) 실행 시 별도의 JAAS 설정이 없으면 Kerberos 인증에 실패할 수 있습니다.
OpenTSDB 아키텍처
이 가이드에서는 Secure Hadoop을 이용하여 OpenTSDB를 구축하고 8888번 포트로 TSD를 기동하는 방법을 설명합니다.
이 가이드에서 사용하는 OpenTSDB 오픈소스에 대한 내용은 OpenTSDB를 참조해 주십시오.
- TSD(Time Series Daemon): 입력된 메트릭 정보를 HBase 저장소에 저장하는 역할을 담당합니다.
- 입력 소스: 서버, 네트워크, 응용 프로그램 등으로부터 보내지는 메트릭 정보입니다.
- 저장소: HBase를 기본 저장소로 이용하여 시계열 데이터를 저장합니다.

OpenTSDB에 대한 자세한 내용은 OpenTSDB 홈페이지를 참조해 주십시오.
사전 작업
OpenTSDB를 설치할 서버를 생성해 주십시오. 예시는 Linux 서버에서 사용하는 방법을 설명합니다.
- 서버 생성에 대한 자세한 내용은 Server 시작 가이드를 참조해 주십시오.
- Linux 서버에 접속하는 방법은 서버 접속 가이드를 참조해 주십시오.
- Secure Hadoop 계정 관리에 대한 자세한 내용은 Secure Hadoop 계정 관리 가이드를 참조해 주십시오.
- 외부 서비스에서 Secure Hadoop에 접근하는 방법은 Secure Hadoop 외부 서비스에서 접근 가이드를 참조해 주십시오.
Secure Hadoop에서는 단순히 Linux OS 계정을 useradd로 생성하는 것만으로 HBase 접근 권한이 부여되지 않습니다. OpenTSDB 실행 계정은 Kerberos principal, keytab, LDAP 사용자, HBase 권한이 모두 준비되어야 합니다.
OpenTSDB 사용
서버에 OpenTSDB 오픈소스를 설치할 때 필요한 요구 사항은 다음과 같습니다.
- Java SE 8(JDK)
- Gnuplot
- OpenTSDB 오픈소스
- Kerberos principal 및 keytab
- LDAP 사용자
- HBase 클라이언트 설정
- HBase 테이블 생성 권한
1. Secure Hadoop 계정 생성
Secure Hadoop에서 OpenTSDB를 사용하려면 Kerberos principal과 LDAP 사용자를 생성해야 합니다. Kerberos와 LDAP에 등록되는 사용자 ID는 동일하게 구성하는 것을 권장합니다.
-
마스터 노드에서 Kerberos admin shell에 접속해 주십시오.
kadmin.local -
OpenTSDB용 principal을 생성해 주십시오.
addprinc -randkey opentsdb@USER.GUIDE -
OpenTSDB용 keytab 파일을 생성해 주십시오.
ktadd -k /etc/security/keytabs/opentsdb.keytab opentsdb@USER.GUIDE -
keytab 파일 권한을 설정해 주십시오.
chown opentsdb:hadoop /etc/security/keytabs/opentsdb.keytab chmod 400 /etc/security/keytabs/opentsdb.keytab참고OpenTSDB를 Secure Hadoop 클러스터 외부 서버에서 실행하는 경우, 생성한 keytab 파일을 OpenTSDB 서버의 안전한 경로로 복사해 주십시오.
-
keytab에 포함된 principal을 확인해 주십시오.
klist -kte /etc/security/keytabs/opentsdb.keytab출력 예시는 다음과 같습니다.
Keytab name: FILE:/etc/security/keytabs/opentsdb.keytab KVNO Timestamp Principal ---- ------------------- ---------------------- 1 06/12/2026 13:00:00 opentsdb@USER.GUIDE주의JAAS 설정과
kinit명령에는 keytab에 실제로 포함된 principal을 그대로 입력해야 합니다. keytab에hbase-<cluster>@USER.GUIDE같은 클러스터용 headless principal이 들어 있다면principal="opentsdb@USER.GUIDE"로 설정할 수 없습니다. -
LDAP 사용자를 생성해 주십시오.
ldif=/tmp/add-opentsdb.ldif HASH_USER_PW=$(slappasswd -h "{SSHA}" -s "신규_패스워드") cat <<EOF | tee $ldif dn: uid=opentsdb,ou=users,dc=USER,dc=GUIDE objectClass: inetOrgPerson objectClass: posixAccount objectClass: top cn: opentsdb sn: opentsdb uid: opentsdb uidNumber: 30001 gidNumber: 20004 homeDirectory: /home/opentsdb loginShell: /bin/bash userPassword: ${HASH_USER_PW} EOF ldapadd \ -H ldap://localhost:389 \ -D "cn=root,dc=USER,dc=GUIDE" \ -w "커버로스_패스워드" \ -f "$ldif" -
필요한 그룹에
opentsdb사용자를 추가해 주십시오.ldif=/tmp/modify-opentsdb-group.ldif cat <<EOF | tee $ldif dn: cn=그룹명,ou=groups,dc=USER,dc=GUIDE changetype: modify add: memberUid memberUid: opentsdb EOF ldapmodify \ -H ldap://localhost:389 \ -D "cn=root,dc=USER,dc=GUIDE" \ -w "커버로스_패스워드" \ -f "$ldif" -
LDAP 사용자가 정상 등록되었는지 확인해 주십시오.
ldapsearch \ -H ldap://localhost:389 \ -D "cn=root,dc=USER,dc=GUIDE" \ -w "커버로스_패스워드" \ -b "dc=USER,dc=GUIDE" \ "(uid=opentsdb)"
2. OpenTSDB 설치
서버에 OpenTSDB를 설치하는 방법은 다음과 같습니다.
-
다음 명령어를 사용하여 OpenJDK를 서버에 설치해 주십시오.
sudo -s yum install java-1.8.0-openjdk-devel.x86_64 -
yum 패키지 관리자를 이용하여 OpenTSDB의 그래프를 생성하는 데 필요한
gnuplot패키지를 설치해 주십시오.yum -y install gnuplot -
OpenTSDB 실행 사용자를 생성하고 소스를 설치해 주십시오.
useradd opentsdb su - opentsdb git clone https://github.com/OpenTSDB/opentsdb cd opentsdb -
OpenTSDB 소스를 빌드해 주십시오.
./build.sh
3. HBase 클라이언트 설치
HBase 클라이언트를 설치하는 방법은 다음과 같습니다.
-
다음 명령어를 사용하여 HBase binary를 다운로드해 주십시오.
- Cloud Hadoop 2.0 이상 버전
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 이하 버전
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 서버 터미널에서 명령어를 실행하여 설정 파일(
HBASE_CLIENT-configs.tar.gz)을 다운로드해 주십시오.
- Ambari UI 접속 및 사용에 대한 자세한 내용은 Ambari UI 가이드를 참조해 주십시오.

-
HBase 클라이언트 설정 정보의 압축을 풀어 주십시오.
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을 수정해 주십시오.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 source ~/.bash_profile -
Ambari UI > Hosts 메뉴를 차례대로 클릭한 후, Secure Hadoop 클러스터의 호스트명과 Private IP 정보를 확인해 주십시오.

-
다음 명령어를 사용하여
/etc/hosts정보를 추가해 주십시오.- 이전 단계에서 확인한 Secure 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 클라이언트 설정에서 ZooKeeper quorum과 znode parent 값을 확인해 주십시오.
grep -E "hbase.zookeeper.quorum|hbase.zookeeper.property.clientPort|zookeeper.znode.parent|hbase.security.authentication" \ $HBASE_HOME/conf/hbase-site.xml주의Ambari Web UI > HBase > Configs 나 Secure Hadoop VM 내에서
hbase-site.xml의zookeeper.znode.parent값을 확인해 주십시오. -
OpenTSDB 실행 계정으로 Kerberos 인증을 수행해 주십시오.
kinit -kt /etc/security/keytabs/opentsdb.keytab opentsdb@USER.GUIDE klist -
다음 명령어를 사용하여
hbase shell접속을 테스트해 주십시오.hbase shell HBase Shell; enter 'help<RETURN>' for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell hbase(main):001:0> whoami hbase(main):002:0> exitHBase Shell접속을 실패할 경우 Secure Hadoop의 ACG에 OpenTSDB 서버를 추가해 주십시오.- ACG 설정에 대한 내용은 방화벽 설정(ACG) 가이드를 참조해 주십시오.
4. HBase 권한 부여
OpenTSDB 테이블을 생성하려면 OpenTSDB 계정에 HBase 테이블 생성 권한이 필요합니다.
-
HBase Shell에 접속해 주십시오.
sudo -u hbase hbase shell혹은 kinit을 수행한 후 HBase shell에 접속해 주십시오.
kinit -kt /etc/security/keytabs/hbase.headless.keytab hbase-<CLUSTER_NAME>@USER.GUIDE -
OpenTSDB 계정에 권한을 부여해 주십시오.
grant 'opentsdb@USER.GUIDE', 'RWXCA' -
OpenTSDB가 클러스터용 headless principal을 사용하도록 구성된 경우, keytab에 포함된 실제 principal에도 권한을 부여해 주십시오.
grant 'hbase-<CLUSTER_NAME>', 'RWXCA' grant 'hbase-<CLUSTER_NAME>@USER.GUIDE', 'RWXCA'참고HBase 권한은 Linux 실행 사용자명이 아니라 Kerberos 인증 후 HBase가 인식한 사용자명에 적용됩니다.
klist -kte <KEYTAB>와hbase shell의whoami결과를 기준으로 권한을 부여해 주십시오. -
권한을 확인해 주십시오.
user_permission '.*' exitopentsdb,opentsdb@USER.GUIDE또는 실제 사용 principal에READ,WRITE,EXEC,CREATE,ADMIN권한이 표시되어야 합니다.
Ranger를 통해 HBase 권한을 관리하는 환경이라면 Ranger 정책에서도 동일한 사용자에게 HBase 테이블 생성 권한을 부여해야 합니다.
5. OpenTSDB 테이블 생성
OpenTSDB 테이블을 생성하는 방법은 다음과 같습니다.
-
OpenTSDB 실행 계정으로 Kerberos 인증을 수행해 주십시오.
kinit -kt /etc/security/keytabs/opentsdb.keytab opentsdb@USER.GUIDE klist -
다음 명령어를 사용하여
TSDB테이블을 생성해 주십시오.export HBASE_HOME=~/opentsdb/hbase export COMPRESSION=SNAPPY export DATA_BLOCK_ENCODING=FAST_DIFF export TSDB_TTL=2147483647 sh ~/opentsdb/src/create_table.sh참고OpenTSDB 기본 테이블 생성 스크립트는 기본 압축 코덱으로
LZO를 사용할 수 있습니다. Secure Hadoop 환경에 LZO codec이 없으면ClassNotFoundException: com.hadoop.compression.lzo.LzoCodec오류가 발생할 수 있습니다. 이 경우COMPRESSION=SNAPPY또는COMPRESSION=NONE을 사용해 주십시오. -
다음 명령어로 테이블 리스트를 확인해 주십시오.
hbase shell hbase(main):001:0> list TABLE tsdb tsdb-meta tsdb-tree tsdb-uid 4 row(s) => ["tsdb", "tsdb-meta", "tsdb-tree", "tsdb-uid"] hbase(main):002:0> exit
6. OpenTSDB 설정
TSD 기동 전 OpenTSDB 설정 파일과 JAAS 설정 파일을 구성해 주십시오.
-
OpenTSDB 설정 디렉터리와 파일을 생성해 주십시오.
mkdir /home1/opentsdb/opentsdb/conf vi /home1/opentsdb/opentsdb/conf/opentsdb.conf -
다음 항목을 환경에 맞게 설정해 주십시오.
hbase.security.auth.enable = true hbase.security.authentication = kerberos hbase.kerberos.regionserver.principal = hbase/_HOST@USER.GUIDE hbase.sasl.clientconfig = Client tsd.network.port = 8888 tsd.http.staticroot = build/staticroot tsd.http.cachedir = /home1/opentsdb/opentsdb/build/tmp tsd.storage.hbase.zk_quorum = m-001-*****-**:2181,m-002-*****-**:2181,d-001-*****-**:2181 tsd.storage.hbase.zk_basedir = /hbase-unsecure주의tsd.storage.hbase.zk_basedir에는 HBase 클라이언트 설정의zookeeper.znode.parent값을 입력해야 합니다. 값을 추정하여/hbase-secure또는/hbase-unsecure로 고정하지 마십시오. -
JAAS 설정 파일을 생성해 주십시오.
vi /home1/opentsdb/opentsdb/conf/opentsdb-jaas.conf3-1. 클러스터용 headless keytab을 사용하는 경우 다음과 같이 설정해 주십시오.
Client { com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true storeKey=true doNotPrompt=true useTicketCache=false keyTab="/etc/security/keytabs/hbase.headless.keytab" principal="hbase-<CLUSTER_NAME>@USER.GUIDE"; };3-2. OpenTSDB 전용 keytab을 사용하는 경우, keytab에 포함된 principal을 확인한 후 출력된 값을 그대로 입력해 주십시오.
klist -kte /etc/security/keytabs/opentsdb.keytab- 출력 예시가 다음과 같다면, JAAS 설정을 작성해 주십시오.
KVNO Timestamp Principal ---- ------------------- ---------------------- 1 06/09/2026 21:42:13 opentsdb@USER.GUIDE- JAAS 설정은 다음과 같이 작성해 주십시오.
Client { com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true storeKey=true doNotPrompt=true useTicketCache=false keyTab="/etc/security/keytabs/opentsdb.keytab" principal="opentsdb@USER.GUIDE"; }; -
keytab으로 Kerberos 인증이 되는지 확인해 주십시오.
4-1. hbase.headless.keytab 사용 시 인증 확인
kdestroy kinit -kt /etc/security/keytabs/hbase.headless.keytab hbase-<CLUSTER_NAME>@USER.GUIDE klist4-2. opentsdb.keytab 사용 시 인증 확인
kdestroy kinit -kt /etc/security/keytabs/opentsdb.keytab opentsdb@USER.GUIDE klist주의kinit이 실패하면 TSD도 기동할 수 없습니다. 이 경우 OpenTSDB 설정이 아니라 keytab 파일, principal 값, KDC 시간 동기화 여부를 먼저 확인해 주십시오.
7. OpenTSDB 기동
다음 명령어를 사용하여 TSD를 8888번 포트로 기동해 주십시오.
-
OpenTSDB 실행 계정으로 전환해 주십시오.
su - opentsdb cd /home1/opentsdb/opentsdb -
OpenTSDB JVM에 JAAS 설정을 전달해 주십시오.
export JVMARGS="-Djava.security.auth.login.config=/home1/opentsdb/opentsdb/conf/opentsdb-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Dzookeeper.sasl.client=true -Dzookeeper.sasl.clientconfig=Client" -
TSD를 기동해 주십시오.
./build/tsdb tsd --config=/home1/opentsdb/opentsdb/conf/ -
백그라운드로 기동하려면 다음과 같이 실행해 주십시오.
nohup ./build/tsdb tsd --config=/home1/opentsdb/opentsdb/conf/opentsdb.conf > /var/log/opentsdb/opentsdb.log 2>&1 & -
8888번 포트가 정상적으로 열렸는지 확인해 주십시오.ss -lntp | grep 8888 -
OpenTSDB API 응답을 확인해 주십시오.
curl -s http://localhost:8888/api/version정상 응답 예시는 다음과 같습니다.
{ "version": "2.5.0" }
8. OpenTSDB에 시계열 데이터 저장
OpenTSDB에 시계열 데이터를 저장하는 방법은 다음과 같습니다.
-
다음 명령어를 사용하여
cpu.util메트릭을 생성해 주십시오.export JVMARGS="-Djava.security.auth.login.config=/home1/opentsdb/opentsdb/conf/opentsdb-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Dzookeeper.sasl.client=true -Dzookeeper.sasl.clientconfig=Client" ./build/tsdb mkmetric cpu.util --config=/home1/opentsdb/opentsdb/conf/opentsdb.conf -
다음 명령어를 사용하여
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
9. OpenTSDB 그래프 확인
OpenTSDB 그래프를 확인하는 방법은 다음과 같습니다.
- 서버 콘솔에서 OpenTSDB 서버의 공인 IP를 확인해 주십시오.

- OpenTSDB 서버의
8888번 포트로 접속하여 수집된 그래프를 확인해 주십시오.

문제 해결
Kerberos TGT 오류
다음 오류가 발생하면 Kerberos 인증이 되지 않은 상태입니다.
Failed to find any Kerberos tgt
다음 명령어로 인증을 수행해 주십시오.
kinit -kt /etc/security/keytabs/opentsdb.keytab opentsdb@USER.GUIDE
klist
keytab 파일 없음
다음 오류가 발생하면 keytab 파일이 존재하지 않거나 경로가 잘못된 것입니다.
Key table file '/etc/security/keytabs/opentsdb.keytab' not found
마스터 노드에서 keytab을 생성한 뒤 OpenTSDB 실행 서버에 배치해 주십시오.
ktadd -k /etc/security/keytabs/opentsdb.keytab opentsdb@USER.GUIDE
HBase 테이블 생성 권한 없음
다음 오류가 발생하면 HBase 권한이 부족한 상태입니다.
AccessDeniedException: Insufficient permissions for user 'opentsdb@USER.GUIDE' (action=create)
HBase 관리자 계정으로 권한을 부여해 주십시오.
grant 'opentsdb', 'RWXCA'
grant 'opentsdb@USER.GUIDE', 'RWXCA'
권한이 short name인 opentsdb에만 있고 실제 요청 사용자가 opentsdb@USER.GUIDE으로 인식되면 권한 매칭이 되지 않을 수 있습니다. 이 경우 full principal에도 권한을 부여해야 합니다.
LZO codec 오류
다음 오류가 발생하면 LZO codec이 HBase classpath에 없는 상태입니다.
ClassNotFoundException: com.hadoop.compression.lzo.LzoCodec
테이블 생성 전 압축 코덱을 변경해 주십시오.
export COMPRESSION=SNAPPY
또는 압축을 사용하지 않습니다.
export COMPRESSION=NONE
HBase Shell은 실행되지만 create가 실패하는 경우
hbase shell이 실행되는 것은 Kerberos 인증이 성공했다는 의미입니다. 그러나 테이블 생성에는 별도 HBase 권한이 필요합니다.
다음 항목을 확인해 주십시오.
klist
whoami
user_permission '.*'
whoami 결과가 opentsdb@USER.GUIDE인데 권한이 opentsdb에만 부여되어 있으면 테이블 생성이 실패할 수 있습니다. 이 경우 full principal에 권한을 추가해 주십시오.
grant 'opentsdb@USER.GUIDE', 'RWXCA'
TSD 기동 시 No LoginModules configured for Client 오류
다음 오류가 발생하면 OpenTSDB JVM이 JAAS 설정 파일을 읽지 못한 상태입니다.
javax.security.auth.login.LoginException: No LoginModules configured for Client
오류 발생 시 다음 항목을 확인해 주십시오.
/home1/opentsdb/opentsdb/conf/opentsdb-jaas.conf파일이 존재하는지 확인합니다.- JAAS 파일에
Client { ... };섹션이 있는지 확인합니다. - TSD 기동 전
JVMARGS에-Djava.security.auth.login.config옵션을 설정했는지 확인합니다.
기동 예시는 다음과 같습니다.
export JVMARGS="-Djava.security.auth.login.config=/home1/opentsdb/opentsdb/conf/opentsdb-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Dzookeeper.sasl.client=true -Dzookeeper.sasl.clientconfig=Client"
./build/tsdb tsd --config=/home1/opentsdb/opentsdb/conf/opentsdb.conf
TSD 기동 시 No password provided 오류
다음 오류가 발생하면 JAAS 파일은 읽었지만 keytab 인증에 실패하여 password prompt로 전환된 상태입니다.
javax.security.auth.login.LoginException: No password provided
오류 발생 시 다음 항목을 확인해 주십시오.
-
keytab에 포함된 principal을 확인합니다.
klist -kte /etc/security/keytabs/hbase.headless.keytab -
JAAS의
principal값이klist -kte출력과 정확히 일치하는지 확인합니다. -
JAAS에
doNotPrompt=true가 포함되어 있는지 확인합니다. -
keytab으로 직접 인증이 되는지 확인합니다.
kdestroy kinit -kt /home1/opentsdb/opentsdb/conf/hbase.headless.keytab hbase-<CLUSTER_NAME>@USER.GUIDE klist -
kinit이 실패하면 keytab 파일 또는 principal 값이 잘못된 것입니다. 올바른 keytab을 다시 생성하거나 JAAS의keyTab,principal값을 수정해 주십시오.
ZooKeeper AuthFailed 오류
다음 오류가 발생하면 ZooKeeper SASL 인증에 실패한 상태입니다.
WatchedEvent state:AuthFailed type:None path:null
오류 발생 시 다음 항목을 확인해 주십시오.
-Dzookeeper.sasl.client=true옵션이 설정되어 있는지 확인합니다.-Dzookeeper.sasl.clientconfig=Client옵션이 설정되어 있는지 확인합니다.- JAAS 파일의
Client섹션이 올바른 keytab과 principal을 사용하고 있는지 확인합니다. kinit -kt <KEYTAB> <PRINCIPAL>이 성공하는지 확인합니다.
TSD는 기동되었지만 8888 포트가 열리지 않는 경우
다음 명령어로 TSD 프로세스와 포트를 확인해 주십시오.
ps -ef | grep '[t]sdb tsd'
ss -lntp | grep 8888
TSD 프로세스가 없으면 OpenTSDB 로그를 확인해 주십시오.
tail -200 /var/log/opentsdb/opentsdb.log
HBase meta region이 온라인 상태가 아닌 경우
OpenTSDB는 HBase의 hbase:meta region에 접근할 수 있어야 합니다. HBase Master가 초기화 중이거나 HBase region 수가 0으로 표시되면 OpenTSDB 기동도 실패할 수 있습니다.
다음 명령어로 HBase 상태를 확인해 주십시오.
echo "status 'simple'" | hbase shell -n
정상 상태에서는 live region server가 표시되고, 최소한 hbase:meta region이 온라인 상태여야 합니다. 다음과 같은 로그가 반복되면 HBase 관리자 또는 서비스 담당자를 통해 HBase meta region 상태를 먼저 복구해 주십시오.
hbase:meta,,1.1588230740 is NOT online
Master startup cannot progress
PleaseHoldException: Master is initializing
ZooKeeper의 HBase znode를 직접 수정하거나 삭제하는 작업은 HBase 서비스 상태에 영향을 줄 수 있습니다. HBase meta region 복구 작업은 HBase 관리자 또는 서비스 담당자의 지시에 따라 수행해 주십시오.