Skip navigation
2013

PowerCLI で ESXi ログバンドル ファイル(通称 vm-support)を取得してみたところ、
ログファイル名が微妙になってしまいました。

 

そこで、わかりやすいファイル名でログバンドル取得できるスクリプトを作ってみました。


たとえば ESXi が4台あるとして、

PowerCLI> Get-VMHost | select Name

Name
----
hv501
hv502
hv503
hv504


ログバンドルを複数台で取得してみると下記のようになります。
どの ESXi のログバンドルファイルか判別できません。

PowerCLI> Get-VMHost | Get-Log -Bundle -DestinationPath C:\work

Data
----
C:\work\vmsupport-521833d1-fe73-6314-5455-ac763a63e43e.tgz
C:\work\vmsupport-52cecb2a-45df-e436-1a1e-1d7463a5078c.tgz
C:\work\vmsupport-52faaacb-1afa-cb59-8926-6c76980ea13a.tgz
C:\work\vmsupport-5267d049-ce93-4ba8-af59-5c2d30fd2320.tgz


そこで、下記のようなスクリプトを作成してみました。

  • 引数に ESXi (Get-VMHostで見える名前)を指定して実行すると、
  • ログバンドルを取得して、
  • そのままESXiホスト名つきのファイル名にリネーム。
  • ファイル名は、「vmsupport_<ESXi名>_<タイムスタンプ>.tgz
  • 保存先フォルダは、とりあえず C:\work\logs です。

 

スクリプト名は、 get_vmsupport.ps1 としています。

$hv_list = $args[0]
$log_dir = "C:\work\logs" #★保存先フォルダはここ

$hvs = Get-VMHost $hv_list
$hvs | % {
    $hv = $_
    $hv_name = $hv.Name
    $timestamp = Get-Date -Format "yyyyMMddHHmmss"

    # ESXiのログバンドルファイル(vm-support)取得
    $info = $hv | Get-Log -Bundle -DestinationPath $log_dir

    # ESXiのログバンドルファイルの(vm-support)取得
    $info | select @{N="ESXi";E={$_.Host}},
      @{N="VmSupportFile";E={$_.Data.Name}},
      @{N="FileSize";E={$_.Data.Length}} |
      ft -AutoSize | Out-String

    # vm-supportのファイル名を変更
    $org_name = $log_dir + "\" + $info.Data.Name
    $new_name = $log_dir + "\" + "vmsupport_" + $hv_name + "_" + $timestamp + ".tgz"
    $info = $null
    "ログバンドル名: " + $new_name
    mv $org_name $new_name
}

 

実行方法

 

1. まずvCenterに接続します。
PowerCLI> Connect-VIServer <vCenterアドレス>

 

2. ESXi を指定して上記のスクリプトを実行します。
PowerCLI> .\get_vmsupport.ps1 <ESXiを指定>

 

実行例

下記のように、ESXi のホスト名を指定して実行します。

 

PowerCLI> .\get_vmsupport.ps1 hv501,hv502
→ ESXi 2台からログバンドル取得(例では hv501とhv502)

 

PowerCLI> .\get_vmsupport.ps1 hv50*
→ hv50 から始まる名前の ESXi からログバンドル取得。

 

vCenterが管理している全てのESXi からログバンドル取得
PowerCLI> .\get_vmsupport.ps1 *

 

実行すると、下記のような感じになります。

get_log3.png

※ちなみに試したバージョンは PowerCLI 5.1 R2 です。

 

以上です。簡単なスクリプトですが、ご参考まで・・・

ESXi で問題が起きた時に、システムログ(ログバンドルや、vm-support と呼ばれるファイル)

を取得することが多いと思います。

 

vSphere Client であれば、

「ファイル」 → 「エクスポート」 → 「システムログのエクスポート」

のあたりで取得できるログファイルです。

get_log0.png

 

今回は、これを PowerCLI の、Get-Log コマンドレットで取得してみました。

 

ちなみに、バージョンはPowerCLI 5.1 Release 2 です。

PowerCLI> Get-PowerCLIVersion | select UserFriendlyVersion

UserFriendlyVersion
-------------------
VMware vSphere PowerCLI 5.1 Release 2 build 1012425

 

ESXi のシステムログ取得(PowerCLI編)

 

あらかじめ、Connect-VIServer で vCener か ESXi に接続したうえで、

下記のようなコマンドラインを実行します。

 

Get-VMHost <取得対象のESXi> | Get-Log -Bundle -DestinationPath <ファイルの出力先フォルダ>

 

コマンドラインを実行すると、下記のようにゲージが進み、

get_log1.png

 

tgz(tar + gzip)で圧縮されたログファイルがダウンロードされます。

get_log2.png

 

vCenter や ESXi にSSH ログインして取得する場合とは異なり、UUID が含まれるファイル名になります。

ちなみに、同じ ESXi から Get-Log するたびに、ファイル名の UUID 部分は変わります。

※ほかの方法で取得する場合は、ファイル名に ESXi のホスト名や vCenter のインベントリ登録名が含まれます。

 

PowerCLI 慣れしている人には、vSphere Client などを使用するよりも便利だと思いますが、

ちょっとファイル名がイケていない気がします。

 

→ ファイル名に ESXi のホスト名&タイムスタンプがつく PowerCLI スクリプト作ってみました。

 

以上、PowerCLI で ログバンドルを取得してみた話でした。

最近、VMware 入門向けの資格
VMware Certified Associate(VCA)がリリースされました。

 

キャンペーンサイトらしきところ
http://certified-assoc-ja.vmwareevents.com/


試験は、下記の4つです。

 

Data Center Virtualization (VCA-DCV)
→ 一般的なvSphereについてです。
(ESXiやvCenterなど)

 

Cloud (VCA-Cloud)
→ クラウドソリューションと製品についてです。
(vCloud Hybrid Serviceとか、vCloud Directorとか)

 

Workforce Mobility (VCA-WM)
→ 主にHorizon Suite(仮想デスクトップやアプリ仮想化など)についてです。
(View、Mirage、Horizon Workspaceあたり)

 

Network Virtualization (VCA-NV)
※NVはまだリリースされていません。

 


そして、試験ごとにそれぞれ
無料のEラーニングが用意されています。

 

VCA-DCV →「VMware データ センター仮想化の基礎知識」

VCA-Cloud →「VMware クラウドの基礎知識」

VCA-WM →「VMware Workforce Mobility の基礎知識」

 

※上記のURL先に、Eラーニングへのリンクもあります。

このEラーニング、VCA-DCVの「VMware データ センター仮想化の基礎知識」については結構おすすめです。

ほかのVCA-DCVについてはほかのVCAの前提知識にもなるので、

迷ったらDCVから勉強&取得するとよいと思います。

ふつうに視聴していくと、記載されているとおり時間がかかります。
(2.5h~3hくらい)

 

Eラーニング3つを受講してみて、ちょっと残念なところは

・なんとなく、製品や機能のイントネーションが変なところが気になりました。

  例: ディレクトリ が ダイレクトリー
・WM、Cloud はちょっと翻訳が微妙な気がしました。
・製品画面があまり無いので、イメージつかめない人はGoogleとかでスクリーンショットを探して見るとよいと思います。


試験をためしに受けてみましたが、結構、難易度高い気がします。
ちゃんとEラーニングで勉強してから受験したほうが良いです。
私は一応 VCAP5-DCA 取得者ですが、
・DCV → 普通に合格
・Cloud → ギリギリ合格
・WM → 不合格(そして結構 悪い点)
でした。一応勉強したのですが・・・WMも・・・


いままで、パートナーではない一般の人向けのVMware資格の入口はVCPでしたが
ハードル高すぎたので(とくに金銭的に)
VMware的な基礎知識を客観的に証明できるようになったのは良いことだと思います。

 

そして今なら受験費用50%OFFです。(2013年12月末まで?)

 

以上です。VCAの話でした・・・

ためしに、PowerCLIでESXiをバックアップ&リストアしてみました。


これまでESXi バックアップとリストアは

vSphereCLI の esxcfg-cfgbackup.pl スクリプトを使ったりするのが一般的だったと思いますが、

PowerCLIメインでvSphere管理している場合は、

Get-VMHostFirmwareSet-VMHostFirmware コマンドレットを使用すると便利です。


ESXiのバックアップ&リストアはvCenterに接続して実施することもできますが、
今回はESXiに直接接続して実施してみます。

 

バックアップ

 

1. まず、ESXi に接続します。

今回の対象ESXiのIPアドレスは「192.168.0.244」です。
※名前解決できない環境なので、ホスト名ではなくIPアドレスを直接指定しています。

※ユーザ/パスワードを聞かれるので、ESXi のものを入力します。

PowerCLI> Connect-VIServer 192.168.0.244

Name                           Port  User
----                           ----  ----
192.168.0.244                  443   root


2. Get-VMHostFirmware でバックアップを取得します。
「-DestinationPath」には、バックアップファイル出力先フォルダを指定します。
バックアップファイルは、「configBundle-<ESXi名>.tgz」という名前で、
tar + gzip 形式の圧縮ファイルとして保存されます。

PowerCLI> Get-VMHostFirmware -DestinationPath C:\work

Host            Data
----            ----
192.168.0.244   C:\work\configBundle-192.168.0.244.tgz


試した環境では、25KBくらいのバックアップファイルが取得されました。
バックアップは、これで終わりです。


リストア


バックアップしたファイルを使用して、ESXiをリストアしてみます。

 

1. まず、ESXiを再インストールします。

・物理サーバに、CD-ROMからESXiを再インストール
・物理サーバに直接コンソール接続してNW設定

 

2. PowerCLI で ESXi に接続して、メンテナンスモード にします。

※コマンドの結果表示は省略しています。

PowerCLI> Connect-VIServer 192.168.0.244
PowerCLI> Set-VMHost -State Maintenance


3. Set-VMHostFirmware でリストアを実施します。
リストアなので「-Restore」をつけています。
「-SourcePath」には、バックアップファイル名を指定します。
★このコマンド実行後、自動的にESXiが再起動されます。

PowerCLI> Set-VMHostFirmware -Restore -SourcePath C:\work\configBundle-192.168.0.244.tgz

VMHost               UploadUrl
------               ---------
192.168.0.244        http://192.168.0.244/tmp/configBundle.tgz


起動完了したら、メンテナンスモードは解除された状態でした。

これで、リストア完了です。

 

ためした環境

 

ESXi のバージョンは 5.1 Update 1 で、
PowerCLIのバージョンは 5.1 R2 です。

PowerCLI> Get-VMHost | select Version,Build | ft -AutoSize

Version Build
------- -----
5.1.0   1065491


PowerCLI> Get-PowerCLIVersion

PowerCLI Version
----------------
   VMware vSphere PowerCLI 5.1 Release 2 build 1012425
---------------
Snapin Versions
---------------
   VMWare AutoDeploy PowerCLI Component 5.1 build 768137
   VMWare ImageBuilder PowerCLI Component 5.1 build 768137
   VMware License PowerCLI Component 5.1 build 669840
   VMware VDS PowerCLI Component 5.1 build 1012428
   VMware vSphere PowerCLI Component 5.1 build 1012428

 

以上、PowerCLIでのESXiバックアップ/リストアでした。