URAMIRAIKAN

1020のなれの果て (since 2005.6.19)

3PARのIOPSを取得するスクリプト

 ちょっと急ぎで監視をしなければならなくなったので、ちょっと乱暴な感じで時間をかけずに作ってみました。
 そもそも「HPE 3PAR StoreServストレージ」がないと意味ないし、しっかりと運用をしているならこんな方法はあまりしていない気がする。

 全てのVV(仮想ボリューム)のIOPSの合計値を出力する。
 やっていることはSSHで3PARの管理CLIへ接続し、"statvv"コマンドで出力したパフォーマンス情報から必要な値を抜き出しているだけです。
 スクリプトの結果としてはTotal/Read/Writeの3つのIOPSをカンマ区切りで出力しているけど、実際にはこれをさらに分解してZabbixで監視しています。
 あと、動作環境はとりあえずCentOS 7.2 + Pythonです。事前に3PARにはパスワードなしでSSHログインできるようにしておく(3PAR側に"setsshkey"コマンドで公開鍵を入れておく)。

#!/usr/bin/python import sys import string from datetime import datetime statcmd = '/usr/bin/ssh admin@3par_mgt statvv -rw -d 60 -iter 1' iops = [] def main(): global iops results = dict() at_total = False for line in exec_cmd(statcmd): split = string.split(line) if(at_total & len(split) > 0): results[split[1]] = split[2] if(len(split) == 1): at_total = True iops.append(results) print 'total,read,write' for result in iops: print result['t'] + ',' + result['r'] + ',' + result['w'] def exec_cmd(cmd): from subprocess import Popen, PIPE p = Popen(cmd.split(' '), stdout=PIPE, stderr=PIPE) out, err = p.communicate() return [ s for s in out.split('\n') if s ] if __name__ == '__main__': main()

 時間ができたらもっとスマートか監視の仕組みを考えます。


    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

プロフィール

1020@管理人

都内を彷徨っているインフラエンジニアとかいう雑用係。いつだって眠い…。

最近のつぶやき

@umkn1020 (07/03-18:57)
RT @kamo_hiroyasu: 「人口の1割は複文が処理できないのだから、そのつもりで行動しろ」と助言することが時々あるのですが、「何もしなければ、42万人死亡する」を「42万人死亡する」と誤読して「外した」と煽る人がわらわらと湧いてきたことで、説得力が増しました。
@umkn1020 (07/03-18:49)
RT @taijijiji: 外資企業が日本市場でhiring難しいとは聞いていましたがこれほどとは。。日本人の転職の心理的ハードルの高さ、英語ポジションへの苦手意識が伺える。。英語は実質的な語学スキルよりも「やっていける自信がない」「怖い」「どうせ落とされる」というメンタリテ…
@umkn1020 (07/03-13:03)
RT @yuutosi_hiyuu: 声だして笑った https://t.co/EjqAUuT3z0
@umkn1020 (07/02-16:02)
Smart LifeでIFTTT使えなくなっていたのか…
@umkn1020 (07/01-17:23)
RT @rioriost: だーかーらー、HAクラスタをすぐ組もうとしない!w オンプレの発想をそのまま持ってくるんじゃなく、クラウドに合ったやり方を学びましょうよ。 できるよ、IaaSでHAクラスタも組めるよ。 でも、スタンバイノードのコストを払い続けるの、なんかおかし…

エントリーリスト

カテゴリーリスト

タグ