スクリプトを用いたカスタムメーターのご利用方法

ここでは、APIリファレンスにあるサンプルスクリプト(custom_meter_scripts.tar.gz)を元にカスタムメーターを作成する方法について説明します。

カスタムメーターを作成してみる

今回利用するスクリプトは、サーバーインスタンスのメモリー情報をカスタムメーターとしてモニタリング基盤へ登録を行います。
スクリプトの内容は、お客さまの環境に合わせて修正してください。

サンプルスクリプトのダウンロード

メモリー情報を取得したいサーバーインスタンス上で、サンプルスクリプトをダウンロードします。

# wget https://sdpf.ntt.com/docs/files/monitoring/custom_meter_scripts.tar.gz

ダウンロードできたら、圧縮ファイルを展開します。 展開先のパスは適宜修正ください。

# tar zxvf custom_meter_scripts.tar.gz

上記ファイルを展開すると、以下のようなファイルが存在します。

custom_meter_scripts
 |
 + bin/
 |  |
 |  + save_token
 |  + send_custom_meter
 |
 + load_average_01.sh
 + load_average_05.sh
 + load_average_15.sh
 + use_memory.sh
 + ping_status.sh
 + ping_rtt_avg.sh
 + save_token.sh
 + setup.conf
 + token
save_token
トークンを取得するためのスクリプトです
save_token.shによってコールされますので、編集は不要です
編集不要
send_custom_meter
カスタムメーターへ取得した値を送信するスクリプトです
各シェルによってコールされますので、編集は不要です
編集不要
load_average_01.sh uptimeコマンドから1分平均のload averageの値を取得し、カスタムメーターとして送信します 適宜変更
load_average_05.sh uptimeコマンドから5分平均のload averageの値を取得し、カスタムメーターとして送信します 適宜変更
load_average_15.sh uptimeコマンドから15分平均のload averageの値を取得し、カスタムメーターとして送信します 適宜変更
use_memory.sh 'free -m'コマンドから使用中のメモリー値を取得し、カスタムメーターとして送信します 適宜変更
ping_status.sh pingコマンドでパケットを3回送信した結果を取得し、カスタムメーターとして送信します(成功=0、失敗=1) 適宜変更
ping_rtt_avg.sh pingコマンドでパケットを3回送信してRTTの平均値を取得し、カスタムメーターとして送信します 適宜変更
save_token.sh APIによってトークンを取得します 編集不要
setup.conf サンプルスクリプトを実行するためのパラメータを設定します 適宜変更
token
トークンを記録するファイルです。
save_token.shよってトークンが記録されますので、編集は不要です
編集不要

環境設定

setup.confを編集し、お客様の環境でAPIを送信できるようにします。 ここでは、JP2リージョンで実施する環境に設定しています。 テナントIDやAPI鍵はお客さまの環境に合わせて設定してください。

# vi setup.conf

export AUTH_URL=https://keystone-jp2-ecl.api.ntt.com
export MONITORING_URL=https://monitoring-jp2-ecl.api.ntt.com
export TENANT_ID=<tenantID>
export USER_NAME=<API key>
export PASSWORD=<API secret key>

トークンの取得

環境設定が終わったら、APIエンドポイントからトークンを取得します。 正常にAPIエンドポイントと通信ができていれば、取得されたトークンが、tokenファイルに記載されます。

# sh save_token.sh
# cat token
8ee901ded...488efc28050

スクリプトファイルの編集

次にスクリプトファイルを編集します。ここでは例として、use_memory.shとping_status.shを編集します。 それぞれの内容は以下の通りです。

  • use_memory.sh
#!/bin/sh

. ./setup.conf

free -m | grep Mem: | awk {'print $3'} | send_custom_meter (RESOURCE_ID) (METER_NAME) (METER_TYPE) (METER_UNIT)
  • ping_status.sh
#!/bin/sh

. ./setup.conf

IP="(IP_ADDRESS)"

ping ${IP} -c 3 >> /dev/null
if [ $? == 0 ] ;
then
  PING_STATUS=0
else
  PING_STATUS=1
fi
echo ${PING_STATUS} | send_custom_meter (RESOURCE_ID) (METER_NAME) (METER_TYPE) (METER_UNIT)
RESOURCE_ID
対象のリソースIDを設定します。
RESOURCE_IDは、<namespace>_<UUID>という記述となります。<namespace>については下記表をご参照ください。
ここでは、メモリー使用量を取得したサーバーインスタンスのリソースIDを設定します。
METER_NAME カスタムメーターの名前を設定します。
METER_TYPE
カスタムメーターのデータタイプを設定します。これは値がどんな種類かラベル付けするものです。
タイプは以下の通りです。
cumulative: 累積値
delta: 差分値
gauge: 瞬時値
METER_UNIT カスタムメーター値の単位を設定します
IP_ADDRESS ping宛先ホストのIPアドレスを指定します

■ メニュー毎の<namespace>一覧
<対象メニュー> <namespace>
サーバーインスタンス コンピュート nova
サーバーインスタンス ボリューム cinder
ファイアウォール firewall
ファイアウォールインターフェース firewall-interface
ロードバランサー load-balancer
ロードバランサーインターフェース load-balancer-interface
Managed Load Balancer managed-lb
Managed Load Balancer ポリシー managed-lb-policy
ベアメタルサーバー baremetal-server
クラウド/サーバー インターネット接続ゲートウェイ internet-connectivity
クラウド/サーバー インターネット接続ゲートウェイインターフェース internet-gw-interface
クラウド/サーバー VPN接続ゲートウェイ vpn-connectivity
クラウド/サーバー VPN接続ゲートウェイインターフェース vpn-gw-interface
ロジカルネットワーク logical-network
ロジカルネットワークインターフェース logical-network-port
クラウド/サーバー リージョン間接続 interdc-connectivity
クラウド/サーバー リージョン間接続インターフェース interdc-gw-interface

注釈

モニタリング対象メニュー以外のメニューに対してカスタムメーターを登録する際は、<namespace>には"custom-resource"を指定、もしくは何も指定せずに登録してください。


データの取得と送信

前述で設定したスクリプトを実行します。 これによって、データの取得とモニタリング基盤へのデータ送信が完了します。 ただし、初回起動時はカスタムメーターの受け皿を作成しますので、データは保存されません。

# sh use_memory.sh

定期的にデータを送信するためには、上記スクリプトをcronで設定します。 モニタリング基盤は、最短で1分間隔のデータ受信が可能です。1分より短い場合には、受け付けられませんのでご注意ください。

# crontab -e
*/5 * * * * cd /root/custom_meter_scripts; sh use_memory.sh

注釈

送信されたデータをモニタリンググラフにて確認するには数分時間がかかる場合がございます。

注釈

最後の値登録を実施後、24時間何もサンプル値登録がなかった場合、非アクティブカスタムメーターとなります。非アクティブとなったカスタムメーターがデフォルトの保存期間31日を超過して自動的に削除された場合、当該カスタムメーターに対して作成していたアラームも同時に自動削除されます。アドバンスドプランのメーター保存期間延長機能により、保存期間を397日に延長できます。(※カスタムメーターは自動削除以外にユーザーによる操作で削除することはできません。)


カスタムメーターのグラフをみる

APIによってモニタリングサーバーへ送られたデータは、Smart Data Platformのモニタリングサービスによってグラフ表示することができます。
確認方法については、 メーター(監視項目)の確認方法 をご参照ください。
API送信で指定したリソースに対して登録したメーターが追加されていますので、そちらを選択していただくことで、グラフが表示されます。
カスタムメーターグラフ

注釈

モニタリング対象メニュー以外のメニューに対してカスタムメーターを登録された場合、カスタムメーターのグラフは「カスタムリソース」タブに表示されます。


カスタムメーターのアラーム設定

標準のメーターと同様にアラーム設定することができます。
設定方法については、 モニタリングアラームのご利用方法 をご参照ください。