| Works
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()
時間ができたらもっとスマートか監視の仕組みを考えます。