Documentation Index

Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt

Use this file to discover all available pages before exploring further.

OpenTSDB を使用する(Secure Hadoop)

Prev Next

VPC環境で利用できます。

HBaseベースで動作する OpenTSDB(Time Series DataBase)は、分散と拡張可能な時系列データベースです。
OpenTSDBはサーバ、ネットワーク、アプリケーションプログラムから収集されたメトリック情報を保存、インデックス、転送するなどの処理のために作られました。

Secure Hadoopで OpenTSDBを使用するには、通常の Cloud Hadoop環境とは異なり Kerberos認証、LDAPアカウント、HBaseの権限設定、OpenTSDB JVMの JAAS設定が必要となります。OpenTSDBは AsyncHBaseクライアントを介して HBaseと ZooKeeperにアクセスするため、HBase Shellにアクセスできても Time Series Daemon(TSD)の実行時に別途 JAAS設定を行わないと、Kerberos認証に失敗することがあります。

OpenTSDBアーキテクチャ

本ガイドでは、Secure Hadoopを利用して OpenTSDBを構築し、8888番ポートで TSDを起動する方法について説明します。

このガイドで使用する OpenTSDBオープンソースの内容は、OpenTSDBをご参照ください。

  • Time Series Daemon(TSD): 入力されたメトリック情報を HBaseストレージに保存するロールを実行します。
  • 入力ソース: サーバ、ネットワーク、アプリケーションプログラムなどから送られるメトリック情報です。
  • ストレージ: HBaseをデフォルトストレージとして利用し、時系列データを保存します。

hadoop-chadoop-use-ex1_1-1

参考

OpenTSDBの詳細は、OpenTSDBホームページをご参照ください。

事前タスク

OpenTSDBをインストールするサーバを作成します。例では、Linuxサーバで使用する方法を説明します。

注意

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は、同じように設定することをお勧めします。

  1. マスターノードから Kerberos admin shellにアクセスします。

    kadmin.local
    
  2. OpenTSDB用の principalを作成します。

    addprinc -randkey opentsdb@USER.GUIDE
    
  3. OpenTSDB用の keytabファイルを作成します。

    ktadd -k /etc/security/keytabs/opentsdb.keytab opentsdb@USER.GUIDE
    
  4. keytabファイルの権限を設定します。

    chown opentsdb:hadoop /etc/security/keytabs/opentsdb.keytab
    chmod 400 /etc/security/keytabs/opentsdb.keytab
    
    参考

    OpenTSDBを Secure Hadoopクラスタ外のサーバで実行する場合は、作成した keytabファイルを OpenTSDBサーバの安全なパスにコピーしてください。

  5. 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"には設定できません。

  6. 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 "Kerberos_パスワード" \
      -f "$ldif"
    
  7. 必要なグループに 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 "Kerberos_パスワード" \
      -f "$ldif"
    
  8. LDAPユーザーが正常に登録されているか確認します。

    ldapsearch \
      -H ldap://localhost:389 \
      -D "cn=root,dc=USER,dc=GUIDE" \
      -w "Kerberos_パスワード" \
      -b "dc=USER,dc=GUIDE" \
      "(uid=opentsdb)"
    

2.OpenTSDBのインストール

サーバに OpenTSDBをインストールする方法は、次の通りです。

  1. 以下のコマンドを使用して OpenJDKをサーバにインストールします。

    sudo -s
    yum install java-1.8.0-openjdk-devel.x86_64
    
  2. yumパッケージ管理者を利用して、OpenTSDBのグラフの作成に必要な gnuplot パッケージをインストールします。

    yum -y install gnuplot
    
  3. OpenTSDBを実行するユーザーを作成し、ソースをインストールします。

    useradd opentsdb
    su - opentsdb
    git clone https://github.com/OpenTSDB/opentsdb
    cd opentsdb
    
  4. OpenTSDBソースをビルドします。

    ./build.sh
    

3.HBaseクライアントのインストール

HBaseクライアントをインストールする方法は、次の通りです。

  1. 以下のコマンドを使用して 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をダウンロードします。

  2. Ambari UIで以下の手順を順に実行します。

    1. [ACTIONS] > Download Client Configsメニューを順にクリックします。
    2. HBaseクライアントの設定情報ファイル名を確認します。
    3. OpenTSDBサーバのターミナルでコマンドを実行し、設定ファイル(HBASE_CLIENT-configs.tar.gz)をダウンロードします。
    • Ambari UIへのアクセスや使用に関する詳細は、Ambari UIガイドをご参照ください。
      hadoop-chadoop-use-ex1_2-2_ko
  3. 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
    
  4. 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
    
  5. Ambari UI > Hostsメニューを順にクリックし、Secure Hadoopクラスタのホスト名と Private IPアドレス情報を確認します。

    hadoop-chadoop-use-ex1_2-5_ko

  6. 以下のコマンドを使用して /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
    
  7. 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.xmlzookeeper.znode.parent 値をご確認ください。

  8. OpenTSDBの実行アカウントで Kerberos認証を行います。

    kinit -kt /etc/security/keytabs/opentsdb.keytab opentsdb@USER.GUIDE
    klist
    
  9. 以下のコマンドを使用して 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> exit
    
    • HBase Shell アクセスに失敗した場合、Secure Hadoopの ACGに OpenTSDBサーバを追加します。
    • ACG設定については、ファイアウォール設定(ACG)ガイドをご参照ください。

4.HBaseの権限付与

OpenTSDBテーブルを作成するには、OpenTSDBアカウントに HBaseテーブル作成の権限が必要です。

  1. HBase Shellにアクセスします。

    sudo -u hbase hbase shell
    

    あるいは、kinitを実行した後、HBase shellにアクセスします。

    kinit -kt /etc/security/keytabs/hbase.headless.keytab hbase-<CLUSTER_NAME>@USER.GUIDE
    
  2. OpenTSDBアカウントに権限を付与します。

    grant 'opentsdb@USER.GUIDE', 'RWXCA'
    
  3. 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 shellwhoami 結果に基づき、権限を付与してください。

  4. 権限を確認します。

    user_permission '.*'
    exit
    

    opentsdbopentsdb@USER.GUIDE または実際に使用する principalに READWRITEEXECCREATEADMIN の権限が表示されている必要があります。

参考

Rangerを通じて HBaseの権限を管理する環境では、Rangerのポリシーにおいても同じユーザーに HBaseテーブルの作成権限を付与する必要があります。

5.OpenTSDBテーブル作成

OpenTSDBテーブルを作成する方法は、次の通りです。

  1. OpenTSDBの実行アカウントで Kerberos認証を行います。

    kinit -kt /etc/security/keytabs/opentsdb.keytab opentsdb@USER.GUIDE
    klist
    
  2. 以下のコマンドを使用して 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を使用してください。

  3. 以下のコマンドでテーブルリストを確認します。

    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の設定ファイルを作成します。

  1. OpenTSDBの設定ディレクトリとファイルを作成します。

    mkdir /home1/opentsdb/opentsdb/conf
    vi /home1/opentsdb/opentsdb/conf/opentsdb.conf
    
  2. 以下の項目を環境に合わせて設定します。

    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に固定しないでください。

  3. JAASの設定ファイルを作成します。

    vi /home1/opentsdb/opentsdb/conf/opentsdb-jaas.conf
    

    3-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";
    };
    
  4. keytabでの Kerberos認証可否を確認します。

    4-1.hbase.headless.keytabを使用する場合の認証確認

    kdestroy
    kinit -kt /etc/security/keytabs/hbase.headless.keytab hbase-<CLUSTER_NAME>@USER.GUIDE
    klist
    

    4-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番ポートで起動します。

  1. OpenTSDBの実行アカウントに切り替えます。

    su - opentsdb
    cd /home1/opentsdb/opentsdb
    
  2. 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"
    
  3. TSDを起動します。

    ./build/tsdb tsd --config=/home1/opentsdb/opentsdb/conf/
    
    
    
    
  4. バックグラウンドで起動するには、以下のように実行します。

    nohup ./build/tsdb tsd --config=/home1/opentsdb/opentsdb/conf/opentsdb.conf > /var/log/opentsdb/opentsdb.log 2>&1 &
    
  5. 8888番ポートが正常に開いているか確認します。

    ss -lntp | grep 8888
    
  6. OpenTSDB APIのレスポンスを確認します。

    curl -s http://localhost:8888/api/version
    

    正常レスポンス例は、次の通りです。

    {
      "version": "2.5.0"
    }
    

8.OpenTSDBに時系列データを保存

OpenTSDBに時系列データを保存する方法は、次の通りです。

  1. 以下のコマンドを使用して 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
    
  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
    

9.OpenTSDBグラフの確認

OpenTSDBグラフを確認する方法は、次の通りです。

  1. サーバコンソールで OpenTSDBサーバのパブリック IPアドレスを確認します。
    hadoop-chadoop-use-ex1_6-1_ko
  2. OpenTSDBサーバの 8888番ポートでアクセスして収集されたグラフを確認します。
    hadoop-chadoop-use-ex1_6-2_ko

トラブルシューティング

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エラー

以下のエラーが発生した場合は、HBase classpathに LZO codecが存在しない状態であることを示します。

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

エラーが発生した場合は、以下の項目をご確認ください。

  1. keytabに含まれた principalを確認します。

    klist -kte /etc/security/keytabs/hbase.headless.keytab
    
  2. JAASの principal 値が klist -kte の出力と正確に一致しているか確認します。

  3. JAASに doNotPrompt=trueが含まれているか確認します。

  4. keytabによる直接認証が可能か確認します。

    kdestroy
    kinit -kt /home1/opentsdb/opentsdb/conf/hbase.headless.keytab hbase-<CLUSTER_NAME>@USER.GUIDE
    klist
    
  5. kinitに失敗した場合は、keytabファイルまたは principalの値が不正であることになります。正しい keytabを再作成するか、JAASの keyTabprincipal 値を変更してください。

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管理者またはサービス担当者の指示に従って行ってください。