Writing Virtual Life

仮想化(VMware)などについて、重箱の隅をつつくタイプのブログ。

vCenterアラーム作成スクリプトのサンプル

コミュニティで間違った情報を出してしまったので、反省を込めて記事にしてみました(結構前ですが)
PowerCLIでvCenterアラーム作成するスクリプトのサンプルです。
 
どうやらvCenter アラームの作成はコマンドレット一つで簡単に作成することはできないらしく、代わりにスクリプトを作成し必要なパラメータを仕込んでいくことになります。
 
今回以下のブログ記事のスクリプトを丸写しさせていただきました。
修正ポイントとしては、すぐ試せるようVMware HOLで実行できるように指定ホスト名などをいじった点と、一部スクリプトの補足を追記した点になります。
 
 LucD notes Alarm Expressions
 
アラームの概要:
・ネットワーク関連のアラーム。受信平均が規定値に引っかかった時にメールを送信する。
・今回はホストに割り当てるため、esxNameで指定。
・黄->赤や赤->黄の時の条件を加えるべく、StartStateやFinalStateを設定している。
 
=============================
$esxName = “esx-01a.corp.local;"
$mailTo = “test@example.com"
 
$alarmMgr = Get-View AlarmManager
$entity = Get-VmHost $esxName | Get-View
 
# AlarmSpec
$alarm = New-Object VMware.Vim.AlarmSpec
$alarm.Name = "Net received rate"
$alarm.Description = "Testing network related alarms"
$alarm.Enabled = $TRUE
 
# Action - Send email
$alarm.action = New-Object VMware.Vim.GroupAlarmAction
 
$trigger = New-Object VMware.Vim.AlarmTriggeringAction
$trigger.action = New-Object VMware.Vim.SendEmailAction
$trigger.action.ToList = $mailTo
$trigger.action.Subject = "Net received alarm"
$trigger.Action.CcList = ""
$trigger.Action.Body = ""
 
# Transition a - yellow --> red
$transa = New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec
$transa.StartState = "yellow"
$transa.FinalState = "red"
 
# Transition b - red --> yellow
$transb = New-Object VMware.Vim.AlarmTriggeringActionTransitionSpec
$transb.StartState = "red"
$transb.FinalState = "yellow"
 
$trigger.TransitionSpecs += $transa
$trigger.TransitionSpecs += $transb
 
$alarm.action.action += $trigger
 
# Expression - Network data receive rate
$expression = New-Object VMware.Vim.MetricAlarmExpression
$expression.Metric = New-Object VMware.Vim.PerfMetricId
$expression.Metric.CounterId = 102
$expression.Metric.Instance = ""
$expression.Operator = "isAbove"
$expression.Red = 300
$expression.Yellow = 150
$expression.Type = "HostSystem"
 
$alarm.expression = New-Object VMware.Vim.OrAlarmExpression
$alarm.expression.expression += $expression
 
$alarm.setting = New-Object VMware.Vim.AlarmSetting
$alarm.setting.reportingFrequency = 0
$alarm.setting.toleranceRange = 0
 
# Create alarm.
$alarmMgr.CreateAlarm($entity.MoRef, $alarm)
=============================
補足:
$alarm.Enabled = $TRUE
・アラームの有効化にチェック
$alarm.setting.toleranceRange = 0
・許容範囲。設定した基準値の変動分。
$alarm.setting.reportingFrequency = 0
・vCenterアラームは、重要でないアラーム及びそのアクションの実行が繰り返しになることを防ぐために、5分の報告頻度を持つように設定されています。
 これは即時発動できるよう値を0に変更しています。単位:秒。
 How to modify alarm Reporting frequency in vSphere 6.x using PowerCLI (57315)
 
 

VMware Lightning Hands-on-Lab

新しいタイプのHOL「Lightning Labs」があったのでご紹介。
 
Lightning Labsは、30分程度でVMware製品について簡単に学ぶためのハンズオンラボです。
単に製品の簡易説明というだけでなく、VMware Cloud on AWSといった新しいサービスや、vSphere 6.7での大規模環境の管理に関する説明があったり、などそのカテゴリのキモをハンズオン形式で触れるようです。
他のラボは90分あったりするため、なかなか手をつけるタイミングを悩んでしまいますが、30分ならまぁいいかと思えます。
 
HOL-1903-99-NET - VMware NSX Lightning Lab
  • Logical Switching
HOL-1908-91-HCI - vSAN 6.7 Lightning Hands-on Lab
  • Setup, Sizing & Enablement
HOL-1911-91-SDC - vSphere 6.7 Lightning Hands-on Lab
  • Simple & Efficient Management at Scale
HOL-1951-91-VWS - Workspace ONE Lightning Hands-on Lab
  • Advanced Integration
HOL-1951-92-VWS - Horizon 7 Lightning Hands-on Lab
  • Horizon Components and Architecture
HOL-1987-91-HBD - VMware on AWS Lightning Hands-on Lab
  • Deploying a SDDC
 
まだvSphere 6.7のラボしか触っていないので、VMware Cloudのも触ってみようかと思ったり。
 
参考まで。
 

f:id:writinglife:20190123232124p:plain

vSphere Web Client でWeb Consoleの画面解像度固定

昔の知識を更新できたのでご紹介。
 
Web Client / HTML5版vSphere Client のWeb ConsoleやVMRCを開いたり、でてきたウィンドウのサイズを変更すると、ゲストOSがWindowsの場合、WindowsゲストOSの画面解像度がクライアントのウィンドウサイズに合わせて変更されます。
これは便利だったりもしますが、コロコロ変えられるとそれはそれで煩わしくも思ってしまいます。
 
以下のKBを使えば画面解像度を固定することができます、というご紹介。
 
How to disable auto-fitting of Windows guest OS screen resolution when accessing from Web Client and VMRC (52031)
 
guestInfo.svga.wddm.modeset="FALSE"
guestInfo.svga.wddm.modesetCCD="FALSE"
guestInfo.svga.wddm.modesetLegacySingle="FALSE"
guestInfo.svga.wddm.modesetLegacyMulti="FALSE"
 
VMware Tools 10.2以降の利用が条件です。
 
設定前の画面はこちら。Web Consoleのブラウザサイズに合わせて縦横比率も調整されています。
 

f:id:writinglife:20181124015551p:plain

 

f:id:writinglife:20181124015604p:plain

 
 
設定後の画面。わかりづらいのですが、ブラウザの画面を変えてみても画面下の黒い部分が残ったままで、解像度は変わっていません。
 

f:id:writinglife:20181124015626p:plain

 

f:id:writinglife:20181124015637p:plain

 
上の画面はWeb Consoleの場合ですが、VMRC(Remote Console)でも同様、VM側から画面解像度を変更できなくなっています。
 
 
昔は下KBのパラメータでコンソールの解像度を固定できていたと思うのですが、Web Consoleだとうまく機能しませんでした。前のバージョンであればこちらも試してみてください。
 
Windows ゲスト OS へのビデオ解像度モードの追加 (1003)
 
svga.autodetect = “FALSE"
svga.maxWidth = 2560
svga.maxHeight = 2048
 
参考まで。

vCSA6.7内部のディスク使用率をブラウザで確認

vCenter Serverアプライアンスは、現在割と使われるようになったかと思います。
Windowsを用意しなくていいのは楽ですしね。検証をやりたがる身としては助かります。
 
で、vSphere 6.7になってほんの少し嬉しい機能が入りました。
それはvCSA内のディスク使用率をアプライアンス管理画面で確認できるようになったことです。
/storage/logが満タンになったりするとvCenter Serverのログが書き込めなかったりするので、空き容量が切れていないかを時々確認しておく必要があります。
 
vCSAのディスク使用率を知る方法として、SSH接続してコマンドを実行する方法がありますが、vSphere 6.7になって別の方法を知りました。それのご紹介です。

 

ディスク使用率の監視
 
 
1.アプライアンスの管理画面にアクセスします。そしてログイン。
<vCenter ServerのFQDN>:5480/login
 

f:id:writinglife:20181104163710p:plain

 
2.ログイン後、左のメニューから「監視」をクリック。
(アプライアンス画面で言語を選べるようになったのでVMware HOL操作が楽です)
 

f:id:writinglife:20181104163738p:plain

 
3.vCSAのリソース状況が幾つか見えますが、「ディスク」をクリック。
「ディスク」はvCSA 6.7からの項目になります。
 

f:id:writinglife:20181104163801p:plain

 
4.こちらを見ると、vCSA内部のディスクの使用率が確認できます。
ハードディスクごとに容量が確認できるので、どのディスクの使用率が高いかを知ることができますね。
 
 

f:id:writinglife:20181104163815p:plain

 
vCSAにコンソールでつなぐ方法よりも、こちらの方がブラウザで簡単に見れるのでオススメです。
 
参考までに。

VMware KBの添付ファイルの場所

またもすごい細かいですが、わかりにくかったのでご紹介。
 
VMware KBはいつからかデザインが一新されています。
中の情報(Symptoms, Purpose,Resolutionなど)は変わりませんが、少し配置が変わっているものがあります。
具体的にはAttachments(添付ファイル)です。
 
以下KBをサンプルにしてご紹介。
 
Network port diagram for vSphere 6.x (2131180)
 
このKBには添付ファイル(ネットワークダイアグラム)が付属されています。
以前はRelated Informationの次あたりにあったかと思うのですが、今現在はそこにありません。

f:id:writinglife:20180917224222p:plain

 
現在の正解はサイドバーです。意外と見つからないかもと思います。
 

f:id:writinglife:20180917224236p:plain

 
参考までに。

vSphere HA とVM自動起動

すごい細かい話ですが、ご紹介。
 
-----
vSphere Web Client での仮想マシンの起動およびシャットダウン設定の編集
 
仮想マシンの起動およびシャットダウン(自動起動)設定は、vSphere HA クラスタ内にあるホスト上のすべての仮想マシンで無効になっています。vSphere HA では、自動起動はサポートされません。
 
-----
 
ESXiで設定できる自動起動/自動シャットダウン設定とvSphere HAは両立できませんねーという情報です。
割と昔から最新バージョンまでずっとこの仕様です。自動起動、意外と使いたかったりするんですけどね。
 
ご参考までに。

応答なしESXi上のVMを別ESXiに移す

コミュニティで挙がっていた質問を考えてみました。
 
条件:
クラスタ中のあるホストを、VM残した状態でメンテナンスモードに切り替える。
 ※メンテナンスモード有効時に「パワーオフVMの移行」をチェックしなければ、ホストにVMが残ります。
・その後、障害によりホストが応答なし状態になってしまう。
 メンテナンスモード中のホストはvSphere HAが動作しないので、VMは移動しないままです。
 
目的:
・応答なし状態のホストからVM群を別ホストに移動させる。
 
 
検証環境で再現しました(以下)。
ESXiホストはnot responding、そのホスト上のVMは切断状態になっています。 

f:id:writinglife:20180802224051p:plain

 
この状態になってしまうと、GUI上からはVMを別ホストに移動させることができません。
Web Clientだと以下。移行アクションが出てきません。

f:id:writinglife:20180802224106p:plain

 

vSphere ClientでもMigrateアクションがグレーアウトしています。

f:id:writinglife:20180802224121p:plain

 

さらに、インベントリから削除するアクションも選択できません。

f:id:writinglife:20180802224141p:plain

 

Host Clientからインベントリを再登録すれば移行できるかなとも思いますが、
わざわざホスト単位で操作するのも手間ですね。
 
 
結論は、PowerCLIでした。
PowerCLIの「Move-VM」を実行することで、応答なしホストからでもVMを移行させることができました。
 

応答なしホスト上のVM(例:vidm)をPowerCLIで移行させます。

※Connect-VIserver実行済み

f:id:writinglife:20180802224204p:plain

 

 

f:id:writinglife:20180802224217p:plain

 

VM(vidm)を他のホストに移動させました。

f:id:writinglife:20180802224230p:plain

 VMも起動できました。

f:id:writinglife:20180802225011p:plain

 

これで応答なしホストからVMを移行することができました。
PowerCLIなら複数VMをまとめて移動するのも手間ではないですね。
 
参考までに。