Horizonにログインすると、利用状況の概要がそれなりに表示されますが、多くのユーザが利用しだすとそれだけでは物足りなくなってきます。
そこで、ユーザ別利用状況や人気OSイメージを表示するスクリプトを書いてみました。
Bashスクリプト
長いのでGistにあげました。使い方
/usr/local/bin/ にでも置いて、jq コマンドを落としてきて(やり方は書いてあります)、
TENANT_NAME を編集して、
root権限で実行します。
表示内容はこんな感じです。
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
======================================= VM Summary Report ======================================= ==================== Project Info -------------------- Project Name : test Project ID : e6fc6cd1af2141b5a90ee246d734653a ==================== TOTAL -------------------- VM Users : 46 Image Users : - Image SS Users : 11 Volume Users : 25 Volume SS Users : 1 VM : 102 / 150 vCPUs : 121 / 200 RAM : 163840 / 307200 (MB) Images (All) : 19 / - ImageGB (All) : 30 / - (GB) Snapshots : 20 / - SnapshotGB : 53 / - (GB) Volumes : 40 / 100 VolumeGB : 1090 / 2048 (GB) Snapshots : 1 / 100 SnapshotGB : 40 / - (GB) ==================== OS Image -------------------- Fedora-19 : 1 Gentoo-12 : 1 ... CentOS-5 : 21 Debian-7 : 22 ==================== User's All Data -------------------- OpenStackAdmin : VM=0, vCPUs=0, RAM=0, ImageSnapshots=1, ImageSnapshotGB=1, Volumes=1, VolumeGB=20, VolumeSnapshots=0, VolumeSnapshotGB=0 alexander_gedowfather : VM=2, vCPUs=2, RAM=2048, ImageSnapshots=0, ImageSnapshotGB=0, Volumes=0, VolumeGB=0, VolumeSnapshots=0, VolumeSnapshotGB=0 ... watanabe_gedowfather : VM=1, vCPUs=1, RAM=1024, ImageSnapshots=0, ImageSnapshotGB=0, Volumes=0, VolumeGB=0, VolumeSnapshots=0, VolumeSnapshotGB=0 yoshino_gedowfather : VM=3, vCPUs=3, RAM=2048, ImageSnapshots=0, ImageSnapshotGB=0, Volumes=1, VolumeGB=80, VolumeSnapshots=0, VolumeSnapshotGB=0 ==================== User's VM Rank -------------------- iida_gedowfather : VM=1, vCPUs=1, RAM=2048 mitani_gedowfather : VM=1, vCPUs=1, RAM=512 ... fujino_gedowfather : VM=7, vCPUs=12, RAM=11264 piece_gedowfather : VM=8, vCPUs=8, RAM=16384 ==================== User's vCPUs Rank -------------------- iida_gedowfather : vCPUs=1, VM=1 mitani_gedowfather : vCPUs=1, VM=1 ... ezakii_gedowfather : vCPUs=8, VM=6 fujino_gedowfather : vCPUs=12, VM=7 ==================== User's RAM Rank -------------------- mitani_gedowfather : RAM=512, VM=1, vCPUs=1 onoda_gedowfather : RAM=512, VM=1, vCPUs=1 ... matsumura_gedowfather : RAM=12288, VM=6, vCPUs=6 kokudai_gedowfather : RAM=16384, VM=8, vCPUs=8 ==================== User's Volume Rank -------------------- sato_gedowfather : VolumeGB=1, Volumes=1, VM=5 yoshino_gedowfather : VolumeGB=1, Volumes=1, VM=3 ... matsuda_gedowfather : VolumeGB=100, Volumes=2, VM=4 nakamoto_gedowfather : VolumeGB=180, Volumes=3, VM=1 |
開発用リンク
APIをjqで使うのが楽しくて長ったらしいスクリプトを書いてしまいましたが、実際Bashで書くのはどうかと思いますよ、と。補足的な何か
商用だとプロジェクト単位での利用状況が重要かもですが、ウチでは開発環境として1つのプロジェクトを多ユーザで利用しているため、このように集計してみました。OSイメージランキングは適当に名前をカットして使っているのでアレですが、もし使ってみる場合はその辺の正規表現をお好みで編集してもらえると。
運用方法としては、前回の 退場アカウントが遺したVMを抽出するスクリプト とともに、1日1回自動実行して標準出力をそのままメールに送信しています。
書いたスクリプトはこの2つだけですが、
せっかく出すもの出してるので限界値に対するアラートとかもあるとよいかもですね。
あと実質放置されているVMリストの取得とか・・・も考えましたが、放置の定義が難しいのと、勝手にSSHログインできないとコンソールだけじゃ何もできないとかで厳しい。
まぁ最近は特に不満なく多くのユーザに使ってもらえてるし、OpenStack自身も文句言ってこないし、わりと平和に運用できててノホホンな感じでございます。