OpenTSDB を使用する

Prev Next

最新のコンテンツが反映されていません。早急にアップデート内容をご提供できるよう努めております。最新のコンテンツ内容は韓国語ページをご参照ください。

VPC環境で利用できます。

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

OpenTSDBアーキテクチャ

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

hadoop-chadoop-use-ex1_1-1

参考

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

このガイドでは、Cloud Hadoopを利用して OpenTSDBを構築する方法を説明します。

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

事前タスク

OpenTSDBをインストールするサーバを作成します。例では、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
    
  7. 以下のコマンドを使用して 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-*****-**,d-001-*****-**:
 2181 --zkbasedir=/hbase-unsecure &

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

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

  1. 以下のコマンドを使用して cpu.util メトリックを作成します。

    # opentsdbユーザー
    ./build/tsdb mkmetric cpu.util --zkquorum=m-001-*****-**,m-002-*****-**,d-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