スクリプトを用いたカスタムメーターのご利用方法¶
カスタムメーターを作成してみる¶
サンプルスクリプトのダウンロード¶
メモリー情報を取得したいサーバーインスタンス上で、サンプルスクリプトをダウンロードします。
# 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> |
サーバーインスタンス コンピュート | 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 |
ロジカルネットワーク | 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日に延長できます。(※カスタムメーターは自動削除以外にユーザーによる操作で削除することはできません。)
カスタムメーターのグラフをみる¶
注釈
モニタリング対象メニュー以外のメニューに対してカスタムメーターを登録された場合、カスタムメーターのグラフは「カスタムリソース」タブに表示されます。