URAMIRAIKAN

1020のなれの果て (since 2005.6.19)

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

 昨日の続き。
 今は「LeftHand」ではなく「StoreVirtual」と言うみたいですが、相変わらずLeftHandと呼んでしまいます。

 クラスター全体のIOPSを出力する。こっちはファイルに出すようにしてるけど、形式は昨日のと同じ(最終的にZabbixで監視するのも同じ)。
 SSH用の公開鍵を仕込む方法がわからなかったので、"sshpass"を使ってパスワードはスクリプト中に書いちゃってます。

#!/usr/bin/python import subprocess import xml.etree.ElementTree as ET lh_cluster = 'cluster01' statcmd = '/usr/bin/sshpass -p password /usr/bin/ssh -p 16022 admin@lefthand_vip getPerformanceStats interval=10000 output=XML' tmpfile = '/root/scripts/voliops.txt' def main(): ret = subprocess.check_output(statcmd.split(' ')) root = ET.fromstring(ret) es = root.findall(".//cluster[@name='" + lh_cluster + "']/counter[@name='ClusterIoTotal']") for e in es: totalio = e.attrib['value'] es = root.findall(".//cluster[@name='" + lh_cluster + "']/counter[@name='ClusterIoReads']") for e in es: readio = e.attrib['value'] es = root.findall(".//cluster[@name='" + lh_cluster + "']/counter[@name='ClusterIoWrites']") for e in es: writeio = e.attrib['value'] f = open(tmpfile, 'w') f.write('total,read,write\n' + totalio + ',' + readio + ',' + writeio) f.close() if __name__ == '__main__': main()

 パフォーマンスを取得する"getPerformanceStats"の結果をXMLで返せるので、3PARのより整形は楽だった。

 Zabbixで監視するのも悪くないですが、監視項目を追加する度にカスタムスクリプトを作るような運用は勘弁してほしい。
 複数のストレージ製品を効率よく性能監視するのはどうやればいいですかね?