2021年4月25日日曜日

ZabbixでSNMPを使ってネットワーク機器のトラフィック量を取得する

ZabbixではSNMPを使って機器を監視する機能があり、特にネットワーク機器ではトラフィック量などを取得する場合に便利な機能となる。

今回は仮想ネットワークOSであるVyOSに対して、ZabbixからSNMPによる監視設定を行い、各インタフェースに発生しているトラフィック量をグラフで表示させる手順を記載する。

環境

  • Zabbix 5.0.10
  • VyOS 1.3

手順

1. 取得対象機器でSNMPを有効化

ZabbixでSNMPによる監視を実施するために、事前に監視対象機器にてSNMPの有効化を行う。

今回はVyOSの監視設定となるので、対象のVyOSにて以下の通り設定を行う。community名「public」をread-onlyで設定している。

# show service snmp
 community public {
     authorization ro
 }
 trap-source 192.168.11.33
 trap-target 192.168.11.24 {
     community public
 }

2. snmpwalkによるSNMP情報取得確認

取得対象スイッチ側で、SNMPを使って情報取得ができることを事前に確認しておく。ZabbixのOSにログインし、snmpwalkコマンドで確認すればよい。snmpwalkの使い方は以下の通り。

snmpwalk -v 2c -c <SNMP community名> <対象機器のIPアドレス>

snmpwalkを実行すると大量の情報が表示される。もし表示されないようであれば、情報取得対象の設定やコミュニティ名が誤っているなどが考えられるため、設定を確認しよう。

試しに私の環境でsnmpwalkすると以下のような表示結果となる。

# snmpwalk  -v 2c -c public 192.168.33.33
SNMPv2-MIB::sysDescr.0 = STRING: VyOS 1.3-rolling-202012311144
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.44641
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (10170228) 1 day, 4:15:02.28

~(中略)~

IF-MIB::ifNumber.0 = INTEGER: 3
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.2 = INTEGER: 2
IF-MIB::ifIndex.3 = INTEGER: 3
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: VMware VMXNET3 Ethernet Controller
IF-MIB::ifDescr.3 = STRING: VMware VMXNET3 Ethernet Controller

~(中略)~

SNMPv2-SMI::mib-2.207.1.2.5.1.12.2.10.1 = Timeticks: (0) 0:00:00.00
SNMPv2-SMI::mib-2.207.1.2.5.1.12.3.10.1 = Timeticks: (0) 0:00:00.00
SNMPv2-SMI::mib-2.207.1.2.5.1.13.2.10.1 = Gauge32: 1000
SNMPv2-SMI::mib-2.207.1.2.5.1.13.3.10.1 = Gauge32: 1000

4. SNMP監視用のテンプレート「Template Module Interfaces Simple SNMPv2」を複製

SNMP機器の監視には、あらかじめZabbixに用意されている「Template Net Network Generic Device SNMPv2」を利用する。ただし、一部修正が必要となるため、本テンプレートを複製したのち修正を行うことにする。

「テンプレート」から「Template Module Interfaces Simple SNMPv2」を選択し、「すべて複製」を選択し、テンプレートを複製する。

今回は「Template Module Interfaces Simple SNMPv2 SNMPINDEX」という名称で複製を作成した。

5. ディスカバリルールのアイテムとグラフの名前を修正

「Template Module Interfaces Simple SNMPv2」をVyOSのような仮想ネットワークOSに対して適用すると、ディスカバリルールにて、以下エラーメッセージが表示される。

Cannot create graph: graph with the same name "Interface VMware VMXNET3 Ethernet Controller: Network traffic" already exists.

これは、SNMPのifDescrの値が重複しており、アイテムやグラフの名前が重複し作成に失敗したことを示すエラーとなる。エラーとなった場合は、情報が正しく取得・表示ができないので、修正対応を行う。

複製したテンプレートの「ディスカバリルール」にて、「Network interfaces discovery」を選択する。

ここで表示される「アイテムのプロトタイプ」と「グラフのプロトタイプ」にて、以下の通りアイテムとグラフの名前にifIndexの番号となる{#SNMPINDEX}を付与する。ifIndexはインタフェース毎に連番となり重複しないため、ifDescrが重複したとしても、異なるアイテム、グラフが作成される

Interface {#IFDESCR}: XXXX
   ↓
Interface {#IFDESCR} {#SNMPINDEX}: XXXX

▼アイテムのプロトタイプ


▼グラフのプロトタイプ


なお、普通のスイッチであればifDescrが重複することはないと思われる。例えばCiscoスイッチであれば、”GigabitEthernet 0/0”といった値で表示される。

6. 「Template Net Network Generic Device SNMPv2」のテンプレートを修正

「Template Net Network Generic Device SNMPv2」のテンプレートから「Template Module Interfaces Simple SNMPv2」を削除し代わりに複製した「Template Module Interfaces Simple SNMPv2 SNMPINDEX」を追加する。

7. ホストにSNMPインタフェースを設定

「設定」→「ホスト」にて監視対象ホストを選択し、「SNMPインターフェース」の箇所に、IPアドレスとポート番号(通常は161)を設定する。

8. ホストにテンプレートをリンク

ホストの設定のテンプレートに「Template Net Network Generic Device SNMPv2」を追加する。

1時間ほど待つと、特にエラーもなくSNMP情報の取得に成功するはずだ。取得されたインターフェースのトラフィック量は、グラフにて確認できる。MRTGなどと同じように、Incoming traffic (ポートから見て入力方向)とOutgoing traffic (ポートから見て出力方向)が一つのグラフで表示されるという一般的なものであり、他の監視ソフトを使っている人であっても違和感はないだろう。

以上で設定は完了となる。

VyOSの仕様によりテンプレートの修正対応が必要だったが、普通のスイッチであれば、ホストを登録し「Template Net Network Generic Device SNMPv2」のテンプレートをリンクするだけで設定が完了する。このようにZabbixでは、非常に簡単にネットワーク機器の監視が実現できる。

更新履歴

  • 2017/9/14 新規作成
  • 2021/4/25 Zabbix 5.0の環境に合わせて全面刷新
2021年4月20日火曜日

vCenter Server ApplianceをCLIベースのvcsa-deployを使って自動インストールする

vCenter Server Appliance (vCSA) は、通常はGUIを使って対話式にインストールを行うが、あらかじめ設定を記載したファイルを読み込ませることによって自動的にインストールを行うCLIベースのインストーラ「vcsa-deploy」が用意されている。

本記事では、実際にvCSAをvcsa-deployを使ってインストールしてみたので、その手順を記載する。なおvcsa-deployは、Windows版とLinuxの両方が用意されているが、今回はWindows版のvcsa-deploy.exeを利用したインストール手順を説明する。

環境

今回の環境では、まず「組み込みPSCのvCSA」を1台構築する。その後、2台目のvCSAも「組み込みPSCのvCSA」で構築するが、拡張リンクモードによる構成とし、1台目のvCSA構築時に作成したvCenter Single Sign-Onドメインに所属させる構成とする。

ESXi及びvCSAのバージョンは以下となる。

  • ESXi : 6.7 Update 3
  • vCSA : 6.7 Update 3b

1台目のvCSAを構築する手順

1. vCSAのサイズを確認

vCSAは管理対象のESXiサーバや仮想マシンの台数に応じて、仮想マシンのサイズを変更することができる。選択可能なサイズは、--supported-deployment-sizesオプションを付けてvcsa-deploy.exeを実行することで確認することができる。

PS C:\> cd E:\vcsa-cli-installer\win32
PS E:\vcsa-cli-installer\win32> .\vcsa-deploy.exe --supported-deployment-sizes
Information about deployment sizes:
Options                     vCPUs Memory(GB) Storage(GB) Hosts(up to) VMs(up to)
--------------------------------------------------------------------------------
tiny                        2     10         300         10           100
tiny-lstorage               2     10         825         10           100
tiny-xlstorage              2     10         1700        10           100
small                       4     16         340         100          1000
small-lstorage              4     16         870         100          1000
small-xlstorage             4     16         1750        100          1000
medium                      8     24         525         400          4000
medium-lstorage             8     24         1025        400          4000
medium-xlstorage            8     24         1905        400          4000
large                       16    32         740         1000         10000
large-lstorage              16    32         1090        1000         10000
large-xlstorage             16    32         1970        1000         10000
xlarge                      24    48         1180        2000         35000
xlarge-lstorage             24    48         1230        2000         35000
xlarge-xlstorage            24    48         2110        2000         35000
management-tiny             2     10         300         10           100
management-tiny-lstorage    2     10         825         10           100
management-tiny-xlstorage   2     10         1700        10           100
management-small            4     16         340         100          1000
management-small-lstorage   4     16         870         100          1000
management-small-xlstorage  4     16         1750        100          1000
management-medium           8     24         525         400          4000
management-medium-lstorage  8     24         1025        400          4000
management-medium-xlstorage 8     24         1905        400          4000
management-large            16    32         740         1000         10000
management-large-lstorage   16    32         1090        1000         10000
management-large-xlstorage  16    32         1970        1000         10000
management-xlarge           24    48         1180        2000         35000
management-xlarge-lstorage  24    48         1230        2000         35000
management-xlarge-xlstorage 24    48         2110        2000         35000
infrastructure              2     4          60          None         None

今回は検証目的となるため、最小サイズとなるtinyを選択する。

2. 設定情報を記述したjsonファイルを作成

vcsa-deploy.exeに読み込ませるファイルは、json形式で記述する。一から作るとなると骨が折れるが、ありがたいことにテンプレートが用意されているので、これを利用するとそこまで苦労せずに作成をすることができる。

テンプレートはドライブ名:\vcsa-cli-installer\templates\installに存在する。

テンプレートの種類は以下となる。

テンプレート名 デプロイ先 vCenter Single Sign-Onドメイン 用途
embedded_vCSA_on_ESXi.json ESXi 新規 組み込みPSCのvCneter Serverをインストール
embedded_vCSA_on_VC.json ESXi(vCenter管理) 新規 組み込みPSCのvCneter Serverをインストール
embedded_vCSA_replication_on_ESXi.json ESXi 既存のドメインに接続 組み込みPSCのvCneter Serverをインストール
embedded_vCSA_replication_on_VC.json ESXi(vCenter管理) 既存のドメインに接続 組み込みPSCのvCneter Serverをインストール
PSC_first_instance_on_ESXi.json ESXi 新規 PSCのみインストール
PSC_first_instance_on_VC.json ESXi(vCenter管理) 新規 PSCのみインストール
PSC_replication_on_ESXi.json ESXi 既存のドメインに接続 PSCのみインストール
PSC_replication_on_VC.json ESXi(vCenter管理) 既存のドメインに接続 PSCのみインストール
vCSA_on_ESXi.json ESXi 既存のドメインに接続 vCenter Serverのみインストール
vCSA_on_VC.json ESXi(vCenter管理) 既存のドメインに接続 vCenter Serverのみインストール

新規の「組み込みPSCのvCSA」を構築する場合は、embedded_vCSA_on_ESXi.jsonを利用する。主な設定内容は以下の通りとなる。

設定項目 設定内容
deployment_network vCSAが接続する標準仮想スイッチのポートグループ名を指定する。
datastore vCSAの仮想マシンを保存するデータストア名を指定する。
deployment_option vCSAのサイズを指定する。
ssh_enable vCSAのSSH接続可否を設定する。デフォルトfalseだが調査等で必要となることが多いのでtrueに変更する。
ceip_enabled CEIPを有効にする特別な必要がなければfalseに変更する。

実際の記載内容は以下の通り。

{
    "__version": "2.13.0",
    "__comments": "Sample template to deploy a vCenter Server Appliance with an embedded Platform Services Controller on an ESXi host.",
    "new_vcsa": {
        "esxi": {
            "hostname": "<デプロイ先のESXiのIPアドレス>",
            "username": "root",
            "password": "<rootのパスワード>",
            "deployment_network": "VM Network",
            "datastore": "datastore1"
        },
        "appliance": {
            "__comments": [
                "You must provide the 'deployment_option' key with a value, which will affect the VCSA's configuration parameters, such as the VCSA's number of vCPUs, the memory size, the storage size, and the maximum numbers of ESXi hosts and VMs which can be managed. For a list of acceptable values, run the supported deployment sizes help, i.e. vcsa-deploy --supported-deployment-sizes"
            ],
            "thin_disk_mode": true,
            "deployment_option": "tiny",
            "name": "t1160vcsa"
        },
        "network": {
            "ip_family": "ipv4",
            "mode": "static",
            "ip": "<vCSAのIPアドレス>",
            "dns_servers": [
                "<DNS#1のIPアドレス>", "<DNS#2のIPアドレス>"
            ],
            "prefix": "<vCSAのIPアドレスのプレフィックス長>",
            "gateway": "<vCSAのデフォルトゲートウェイ>",
            "system_name": "<vCSAのFQDN>"
        },
        "os": {
            "password": "<vCSAのrootのパスワード>",
            "ntp_servers": "<NTPサーバのIPアドレス>",
            "ssh_enable": true
        },
        "sso": {
            "password": "<Administrator@vsphere.localのパスワード>",
            "domain_name": "vsphere.local"
        }
    },
    "ceip": {
        "description": {
            "__comments": [
                "++++VMware Customer Experience Improvement Program (CEIP)++++",
                "VMware's Customer Experience Improvement Program (CEIP) ",
                "provides VMware with information that enables VMware to ",
                "improve its products and services, to fix problems, ",
                "and to advise you on how best to deploy and use our ",
                "products. As part of CEIP, VMware collects technical ",
                "information about your organization's use of VMware ",
                "products and services on a regular basis in association ",
                "with your organization's VMware license key(s). This ",
                "information does not personally identify any individual. ",
                "",
                "Additional information regarding the data collected ",
                "through CEIP and the purposes for which it is used by ",
                "VMware is set forth in the Trust & Assurance Center at ",
                "http://www.vmware.com/trustvmware/ceip.html . If you ",
                "prefer not to participate in VMware's CEIP for this ",
                "product, you should disable CEIP by setting ",
                "'ceip_enabled': false. You may join or leave VMware's ",
                "CEIP for this product at any time. Please confirm your ",
                "acknowledgement by passing in the parameter ",
                "--acknowledge-ceip in the command line.",
                "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
            ]
        },
        "settings": {
            "ceip_enabled": false
        }
    }
}

3. jsonファイルの検証

jsonファイルを作成したら、いよいよvcsa-deploy.exeを使ってデプロイを開始するのだが、事前にjsonファイルが問題なく使用できることの検証を行うため、--verify-template-onlyオプションを付けて実行する。

以下は特に問題ないパターンとなり、この場合はエラーメッセージ等が表示されない。

PS E:\vcsa-cli-installer\win32> .\vcsa-deploy.exe install --verify-template-only C:\work\embedded_vCSA_on_ESXi.json
Run the installer with "-v" or "--verbose" to log detailed information
Updating log file location, copying 'C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-06-42-9_zd5v3_\vcsa-cli-installer.log' to desired location as a backup: 'C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-06-42-9_zd5v3_\workflow_1618641760183\vcsa-cli-installer.log.bak'
Workflow log-dir
C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-06-42-9_zd5v3_\workflow_1618641760183
====== [START] Start executing Task: To validate CLI options at 06:42:40 ======
Command line arguments verfied.

~(中略)~

Template verification completed.
=================================== 06:42:41 ===================================
Result and Log File Information...
WorkFlow log directory:
C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-06-42-9_zd5v3_\workflow_1618641760183

以下は問題があるパターンとなり、[FAILED]というエラーメッセージが表示されることが確認できる。この場合は、メッセージを確認し、jsonファイルを修正する。
※今回の場合は、IPアドレス表記が192.168.11.170aとなっていることが問題となるので、正しいIPアドレス表記に修正すればよい。

PS E:\vcsa-cli-installer\win32> .\vcsa-deploy.exe install --verify-template-only C:\work\embedded_vCSA_replication_on_ESXi.json
Run the installer with "-v" or "--verbose" to log detailed information

~(中略)~

The value '192.168.11.170a' of the key 'ip' in section 'new_vcsa', subsection
'network' is invalid. Correct the value and rerun the script.
================ [FAILED] Task: StructureValidationTask: Executing Template
Structure Validation task execution failed at 01:43:52 ================
================================================================================
Error message: Template structure validation failed for template
C:\work\embedded_vCSA_replication_on_ESXi.json.
=================================== 01:43:52 ===================================
Result and Log File Information...
WorkFlow log directory:
C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-18-01-43-p6b7cz36\workflow_1618710232162

4. vCSAの自動デプロイ

検証が終わったらvcsa-deploy.exeを実行する。この際に、以下のようにライセンス規約への合意を行う--accept-eulaオプションと、ESXiなどのSSL証明書の検証をスキップする--no-ssl-certificate-verificationを付与する。

.\vcsa-deploy.exe install --accept-eula --no-ssl-certificate-verification [jsonファイルのフルパス]

以下が実際の実行結果となる。処理内容が分かりやすくなるよう、▼箇所でコメントを記載した。

PS E:\vcsa-cli-installer\win32> .\vcsa-deploy.exe install --accept-eula --no-ssl-certificate-verification C:\work\embedded_vCSA_on_ESXi.json
Run the installer with "-v" or "--verbose" to log detailed information
~(中略)~

▼jsonファイルの検証
====== [START] Start executing Task: To validate CLI options at 06:46:18 ======
Command line arguments verfied.
~(中略)~

▼デプロイ前のチェック (ESXiの確認やvCSAに割り当てるIPアドレス・FQDNのPingによる未使用確認等)
====== [START] Start executing Task: Perform precheck tasks. at 06:46:20 ======

▼OVF ToolにてvCSAのデプロイ
 [START] Start executing Task: Invoke OVF Tool to deploy VCSA for installation,
upgrade, and migration at 06:46:36
OVF Tool: Opening OVA source:
E:\vcsa-cli-installer\win32\..\..\vcsa\VMware-vCenter-Server-Appliance-6.7.0.42000-15132721_OVF10.ova
OVF Tool:  The manifest does not validate
OVF Tool:  Opening VI target: vi://root@192.168.11.161:443/
OVF Tool:  Deploying to VI: vi://root@192.168.11.161:443/
OVF Tool: Disk progress: 99%
OVF Tool: Transfer Completed

▼デプロイ後のvCSAのパワーオン
OVF Tool:  Powering on VM: t1160vcsa
OVF Tool: Task progress: 0%
OVF Tool: Task Completed
OVF Tool:  Waiting for IP address...
OVF Tool: Received IP address: 192.168.11.160
OVF Tool:  Completed successfully
~(中略)~

▼vCSAデプロイ後のRPMインストール
==========VCSA Deployment Progress Report==========         Task: Install
required RPMs for the appliance.(SUCCEEDED 100/100)       - Task has completed
successfully.         Task: Run firstboot scripts.(RUNNING 0/100)     -
VCSA Deployment is still running
~(中略)~

▼デプロイ完了
Start Time:
2021-04-17T06:48:17.405Z VCSA Deployment End Time: 2021-04-17T06:55:56.287Z
 [SUCCEEDED] Successfully executed Task 'MonitorDeploymentTask: Monitoring
Deployment' in TaskFlow 'embedded_vCSA_on_ESXi' at 06:56:07
Monitoring VCSA Deploy task completed
 [START] Start executing Task: Provide the login information about new
appliance. at 06:56:08
    Appliance Name: t1160vcsa
    System Name: t1160vcsa.intrat.local
    System IP: 192.168.11.160
    Log in as: Administrator@vsphere.local
 [SUCCEEDED] Successfully executed Task 'ApplianceLoginSummaryTask: Provide
appliance login information.' in TaskFlow 'embedded_vCSA_on_ESXi' at 06:56:08
=================================== 06:56:08 ===================================
Result and Log File Information...
WorkFlow log directory:
C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-06-46-vypjg9ix\workflow_1618641978161

5. vCSAへのログイン確認

最後にデプロイ後のvCSAにログインできることを確認する。以下の通り問題なくログインすることが確認できた。

2台目のvCSAを拡張リンクモードで構築する手順

1. vCSAのサイズを確認

1台目と同様にvCSAのサイズを確認する。今回は検証用となるため、tinyとする。

2. 設定情報を記述したjsonファイルを作成

「組み込みPSCのvCSA」を拡張リンクモードで構築する場合は、C:\work\embedded_vCSA_replication_on_ESXi.jsonを利用する。主な設定内容は以下の通りとなる。★箇所だけがvCSA新規構築時との差異となる。

設定項目 設定内容
deployment_network vCSAが接続する標準仮想スイッチのポートグループ名を指定する。
datastore vCSAの仮想マシンを保存するデータストア名を指定する。
deployment_option vCSAのサイズを指定する。
ssh_enable vCSAのSSH接続可否を設定する。デフォルトfalseだが調査等で必要となることが多いのでtrueに変更する。
first_instance 拡張リンクモードとして既存ドメインに参加する場合は、falseで設定する。
replication_partner_hostname 参加対象のドメインを持つPSC (1台目に構築したvCSA) のFQDNを指定する。
sso_port 通常は443を指定する。
ceip_enabled CEIPを有効にする特別な必要がなければfalseに変更する。

実際の記載内容は以下の通り。

{
    "__version": "2.13.0",
    "__comments": "Sample template to deploy a vCenter Server Appliance with an embedded Platform Services Controller on an ESXi host.",
    "new_vcsa": {
        "esxi": {
            "hostname": "<デプロイ先のESXiのIPアドレス>",
            "username": "root",
            "password": "<rootのパスワード>",
            "deployment_network": "VM Network",
            "datastore": "datastore1"
        },
        "appliance": {
            "__comments": [
                "You must provide the 'deployment_option' key with a value, which will affect the VCSA's configuration parameters, such as the VCSA's number of vCPUs, the memory size, the storage size, and the maximum numbers of ESXi hosts and VMs which can be managed. For a list of acceptable values, run the supported deployment sizes help, i.e. vcsa-deploy --supported-deployment-sizes"
            ],
            "thin_disk_mode": true,
            "deployment_option": "tiny",
            "name": "t1170vcsa"
        },
        "network": {
            "ip_family": "ipv4",
            "mode": "static",
            "ip": "<vCSAのIPアドレス>",
            "dns_servers": [
                "<DNS#1のIPアドレス>", "<DNS#2のIPアドレス>"
            ],
            "prefix": "<vCSAのIPアドレスのプレフィックス長>",
            "gateway": "<vCSAのデフォルトゲートウェイ>",
            "system_name": "<vCSAのFQDN>"
        },
        "os": {
            "password": "<vCSAのrootのパスワード>",
            "ntp_servers": "<NTPサーバのIPアドレス>",
            "ssh_enable": true
        },
        "sso": {
            "password": "<Administrator@vsphere.localのパスワード>",
            "domain_name": "vsphere.local",
            "first_instance": false,
            "replication_partner_hostname": "t1170vcsa.intrat.local",
            "sso_port": 443
        }
    },
    "ceip": {
        "description": {
            "__comments": [
                "++++VMware Customer Experience Improvement Program (CEIP)++++",
                "VMware's Customer Experience Improvement Program (CEIP) ",
                "provides VMware with information that enables VMware to ",
                "improve its products and services, to fix problems, ",
                "and to advise you on how best to deploy and use our ",
                "products. As part of CEIP, VMware collects technical ",
                "information about your organization's use of VMware ",
                "products and services on a regular basis in association ",
                "with your organization's VMware license key(s). This ",
                "information does not personally identify any individual. ",
                "",
                "Additional information regarding the data collected ",
                "through CEIP and the purposes for which it is used by ",
                "VMware is set forth in the Trust & Assurance Center at ",
                "http://www.vmware.com/trustvmware/ceip.html . If you ",
                "prefer not to participate in VMware's CEIP for this ",
                "product, you should disable CEIP by setting ",
                "'ceip_enabled': false. You may join or leave VMware's ",
                "CEIP for this product at any time. Please confirm your ",
                "acknowledgement by passing in the parameter ",
                "--acknowledge-ceip in the command line.",
                "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
            ]
        },
        "settings": {
            "ceip_enabled": false
        }
    }
}

3. jsonファイルの検証

事前にjsonファイルが問題なく使用できることの検証を行うため、--verify-template-onlyオプションを付けて実行する。

[FAILED]といったエラーメッセージが表示されないことを確認すること。

PS C:\> cd E:\vcsa-cli-installer\win32
PS E:\vcsa-cli-installer\win32> .\vcsa-deploy.exe install --verify-template-only C:\work\embedded_vCSA_replication_on_ESXi.json
Run the installer with "-v" or "--verbose" to log detailed information
Updating log file location, copying 'C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-21-37-gtde353a\vcsa-cli-installer.log' to desired location as a backup: 'C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-21-37-gtde353a\workflow_1618695433862\vcsa-cli-installer.log.bak'
Workflow log-dir
C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-21-37-gtde353a\workflow_1618695433862
====== [START] Start executing Task: To validate CLI options at 21:37:13 ======
Command line arguments verfied.

~(中略)~

Template verification completed.
=================================== 21:37:14 ===================================
Result and Log File Information...
WorkFlow log directory:
C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-21-37-gtde353a\workflow_1618695433862

4. vCSAの自動デプロイ

検証が終わったらvcsa-deploy.exeを実行する。この際に、以下のようにライセンス規約への合意を行う--accept-eulaオプションと、ESXiなどのSSL証明書の検証をスキップする--no-ssl-certificate-verificationを付与する。

.\vcsa-deploy.exe install --accept-eula --no-ssl-certificate-verification [jsonファイルのフルパス]

以下が実際の実行結果となる。処理内容が分かりやすくなるよう、▼箇所でコメントを記載した。

PS E:\vcsa-cli-installer\win32> .\vcsa-deploy.exe install --accept-eula --no-ssl-certificate-verification C:\work\embedded_vCSA_replication_on_ESXi.json
Run the installer with "-v" or "--verbose" to log detailed information
~(中略)~

▼jsonファイルの検証
====== [START] Start executing Task: To validate CLI options at 21:38:45 ======
~(中略)~

▼デプロイ前のチェック (ESXiの確認やvCSAに割り当てるIPアドレス・FQDNのPingによる未使用確認等)
====== [START] Start executing Task: Perform precheck tasks. at 21:38:47 ======
~(中略)~

▼OVF ToolにてvCSAのデプロイ
 [START] Start executing Task: Invoke OVF Tool to deploy VCSA for installation,
upgrade, and migration at 21:39:03
OVF Tool: Opening OVA source:
E:\vcsa-cli-installer\win32\..\..\vcsa\VMware-vCenter-Server-Appliance-6.7.0.42000-15132721_OVF10.ova
OVF Tool:  The manifest does not validate
OVF Tool:  Opening VI target: vi://root@192.168.11.171:443/
OVF Tool:  Deploying to VI: vi://root@192.168.11.171:443/
OVF Tool: Disk progress: 99%
OVF Tool: Transfer Completed

▼デプロイ後のvCSAのパワーオン
OVF Tool:  Powering on VM: t1170vcsa
OVF Tool: Task progress: 0%
OVF Tool: Task Completed
OVF Tool:  Waiting for IP address...
OVF Tool: Received IP address: 192.168.11.170
OVF Tool:  Completed successfully
~(中略)~

▼vCSAデプロイ後のRPMインストール
==========VCSA Deployment Progress Report==========         Task: Install
required RPMs for the appliance.(SUCCEEDED 100/100)       - Task has completed
successfully.         Task: Run firstboot scripts.(RUNNING 2/100)     - Starting
VMware Authentication Framework...
VCSA Deployment is still running
~(中略)~

▼デプロイ完了
 Start Time:
2021-04-17T21:41:09.182Z VCSA Deployment End Time: 2021-04-17T21:52:25.400Z
 [SUCCEEDED] Successfully executed Task 'MonitorDeploymentTask: Monitoring
Deployment' in TaskFlow 'embedded_vCSA_replication_on_ESXi' at 21:52:29
Monitoring VCSA Deploy task completed
 [START] Start executing Task: Provide the login information about new
appliance. at 21:52:29
    Appliance Name: t1170vcsa
    System Name: t1170vcsa.intrat.local
    System IP: 192.168.11.170
    Log in as: Administrator@vsphere.local
 [SUCCEEDED] Successfully executed Task 'ApplianceLoginSummaryTask: Provide
appliance login information.' in TaskFlow 'embedded_vCSA_replication_on_ESXi' at
21:52:29
=================================== 21:52:30 ===================================
Result and Log File Information...
WorkFlow log directory:
C:\Users\admin\AppData\Local\Temp\2\vcsaCliInstaller-2021-04-17-21-38-1n2q7uh2\workflow_1618695525214

5. vCSAへのログイン確認

最後にデプロイ後のvCSAにログインできることを確認する。以下の通り問題なくログインすることが確認できた。

また、拡張リンクモードも問題なく構成されていることを確認することができた。

以上でCLIベースによるvCSAのインストールは完了となる。一度jsonファイルを作っておけば、次回vCSAを構築する際にもそのまま流用することができるため、検証目的などでvCSAを何度も構築する用途などにおいては非常に効率的で有用な手順となる。

参考

2021年4月13日火曜日

【Zabbix】SNMP Trapに含まれる16進文字を通常文字に変換して監視する

ZabbixのSNMP Trap監視は、snmptrapdにて受信したトラップをSNMPTT (SNMP Trap Transfer)や変換スクリプトを使って整形し、出力されたログファイルをZabbixにて監視させることによって実現される。

SNMP Trapで受信した文字は、トラップ内容によっては16進文字 (Hex-string) で送信されてくることがある。16進文字とは以下のように、E3 83 86 ...といった16進の2桁の文字で構成される文字列となり、人間では読み解くことができない

2021/01/30 09:44:48 .1.3.6.1.4.1.6876.4.3.0.203 Normal "Status Events" t1160vcsa.intrat.local - 
ZBXTRAP 192.168.11.160 vpxdAlarmInfo This notification is sent on entity alarm state change, 
by the vCenter Server SNMP agent. 3 Gray Yellow 
E3 83 86 E3 82 B9 E3 83 88 E3 82 A2 E3 83 A9 E3  
83 BC E3 83 A0 20 28 E4 BB AE E6 83 B3 E3 83 9E  
E3 82 B7 E3 83 B3 E4 BD 9C E6 88 90 29 20 2D 20  
~(中略)~ 
72 63 65 20 70 6F 6F 6C 3A 20 43 6C 75 73 74 65  
72 31 36 30 0A 44 61 74 61 20 63 65 6E 74 65 72  
3A 20 44 61 74 61 63 65 6E 74 65 72 31 36 30 0A  
test-vm

16進文字は、変換サイトなどを使えば通常文字へ変換することができ、上記の16進文字は以下文字列となる。

2021/01/30 09:44:48. .1.3.6.1.4.1.6876.4.3.0.203 Normal Status Events t1160vcsa.intrat.local - 
ZBXTRAP 192.168.11.160 vpxdAlarmInfo This notification is sent on entity alarm state change, 
by the vCenter Server SNMP agent. 3 Gray Yellow 
テストアラーム (仮想マシン作成) - 
Event: VM created (10362) 
Summary: Created virtual machine test-vm on t1161esxi.intrat.local in Datacenter160 
Date: 01/30/2021 12:44:48 AM 
User name: VSPHERE.LOCAL\Administrator 
VM: test-vm 
Host: t1161esxi.intrat.local 
Resource pool: Cluster160 
Data center: Datacenter160 test-vm

本記事では、SNMP Trapに含まれる16進文字を通常文字に変換するスクリプトを作成し、SNMPTTの処理に組み込むことでZabbixにてSNMP Trapの内容を確認できるようにする

環境

  • OS : CentOS 8.1
  • Zabbix : 5.0.7
  • SNMPTT : 1.4.2

手順

1. SNMPTTのインストールおよびZabbixのSNMP Trap監視設定

SNMPTTのインストールおよびZabbixのSNMP Trap監視設定の手順は、以前以下記事にて記載している。もし実施前の場合は、参照してインストールと設定をしておくこと。

2. xxdをインストール

16進文字を変換するためxxdコマンドをインストールする。xxdvim-commonのパッケージに含まれる。

# dnf install vim-common -y

3. 16進文字を通常文字に変換するスクリプトを作成

変換スクリプトは/usr/local/bin/convert_hex_to_string.shという名称で、以下の通り作成する。

#!/bin/bash

# 標準入力を変数に代入
trap_message=$(cat -)

# ログ出力先を設定
output_file="/var/log/snmptrap/snmptrap_convert.log"

# 16進文字を抽出
hex_string=$(echo ${trap_message} | egrep 'ZBXTRAP .*' | egrep -o ' [A-F0-9]{2} .* [A-F0-9]{2}')

if [[ ${hex_string} = "" ]]; then
    # 16進文字が含まれない場合は変換しない
    msg=$(echo ${trap_message})
else
    # 16進文字が含まれる場合は変換する

    # 16進文字より前の文字列を抽出
    first_message=$(echo ${trap_message} | sed -e "s/ [A-F0-9]\{2\} .* [A-F0-9]\{2\}.*$//g")

    # 16進文字をxxdコマンドを使って通常文字に変換し、
    # 1行で表示させるため改行を削除
    normal_string=$(echo ${hex_string} | xxd -r -p | tr '\n' ' ')

    # 16進文字より後の文字列を抽出
    last_message=$(echo ${trap_message} | sed -e "s/^.* [A-F0-9]\{2\} .* [A-F0-9]\{2\}//g")

    msg=$(echo "${first_message} ${normal_string} ${last_message}")
fi

# ログファイルに出力
echo ${msg} >> ${output_file}
exit 0

なお、本スクリプトで変換したSNMP Trapは、/var/log/snmptrap/snmptrap_convert.logに出力されるので、出力先ファイルをあらかじめ作成しておく。

# touch /var/log/snmptrap/snmptrap_convert.log
# chown snmptt:snmptt /var/log/snmptrap/snmptrap_convert.log

4. SNMPTTにスクリプト組み込み

SNMPTT本体となる/usr/sbin/snmpttに対して、先ほど作成した変換スクリプトを処理に組み込む。/usr/sbin/snmpttはPerlスクリプトとなり、1784行のif ($log_enable == 1)のif文の中の処理でログ出力が実施されているため、そこにconvert_hex_to_string.shを実行する処理を追加する。

▼修正前

        if ($log_enable == 1)
        {
          $trap_attempted_to_log++;	

          if (open LOGFILE, ">>$log_file")
          {
            print LOGFILE $trap_date_time." $message";
            close LOGFILE;
            $trap_successfully_logged++;
          }

▼修正後

        if ($log_enable == 1)
        {
          $trap_attempted_to_log++;	

          if (open LOGFILE, ">>$log_file")
          {
            print LOGFILE $trap_date_time." $message";
            close LOGFILE;
            $trap_successfully_logged++;

            # Execute a script that convert Hex-string to String
            my $convert_cmd = "echo $trap_date_time.\" $message\" | /usr/local/bin/convert_hex_to_string.sh";
            system($convert_cmd) == 0 or die "Can't execute $convert_cmd";
          }

5. Zabbix設定

変換スクリプトのログ出力先は/var/log/snmptrap/snmptrap_convert.logとなるので、本ログをSNMP Trapのログファイルとして監視できるようZabbix Serverの設定を行う。

設定は、/etc/zabbix/zabbix_server.confを以下の通り修正する。

SNMPTrapperFile=/var/log/snmptrap/snmptrap_convert.log
StartSNMPTrapper=1

設定反映のため、Zabbix Serverを再起動する。

# systemctl restart zabbix-server

6. Zabbixの画面にてSNMP Trapの出力内容を確認

実際に16進文字が含まれるSNMP Trapを出力させて、16進文字が変換されることを確認する。今回は、vCenter Serverにて設定したアラートをZabbixで検知させたることで確認を行った。

▼変換前

# tail /var/log/snmptrap/snmptrap.log
2021/01/30 09:44:48 .1.3.6.1.4.1.6876.4.3.0.203 Normal "Status Events" t1160vcsa.intrat.local - ZBXTRAP 192.168.11.160 vpxdAlarmInfo This notification is sent on entity alarm state change, by the vCenter Server SNMP agent. 3 Gray Yellow E3 83 86 E3 82 B9 E3 83 88 E3 82 A2 E3 83 A9 E3  83 BC E3 83 A0 20 28 E4 BB AE E6 83 B3 E3 83 9E  E3 82 B7 E3 83 B3 E4 BD 9C E6 88 90 29 20 2D 20  45 76 65 6E 74 3A 20 56 4D 20 63 72 65 61 74 65  64 20 28 31 30 33 36 32 29 0A 53 75 6D 6D 61 72  79 3A 20 43 72 65 61 74 65 64 20 76 69 72 74 75  61 6C 20 6D 61 63 68 69 6E 65 20 74 65 73 74 2D  76 6D 20 6F 6E 20 74 31 31 36 31 65 73 78 69 2E  69 6E 74 72 61 74 2E 6C 6F 63 61 6C 20 69 6E 20  44 61 74 61 63 65 6E 74 65 72 31 36 30 0A 44 61  74 65 3A 20 30 31 2F 33 30 2F 32 30 32 31 20 31  32 3A 34 34 3A 34 38 20 41 4D 0A 55 73 65 72 20  6E 61 6D 65 3A 20 56 53 50 48 45 52 45 2E 4C 4F  43 41 4C 5C 41 64 6D 69 6E 69 73 74 72 61 74 6F  72 0A 56 4D 3A 20 74 65 73 74 2D 76 6D 0A 48 6F  73 74 3A 20 74 31 31 36 31 65 73 78 69 2E 69 6E  74 72 61 74 2E 6C 6F 63 61 6C 0A 52 65 73 6F 75  72 63 65 20 70 6F 6F 6C 3A 20 43 6C 75 73 74 65  72 31 36 30 0A 44 61 74 61 20 63 65 6E 74 65 72  3A 20 44 61 74 61 63 65 6E 74 65 72 31 36 30 0A  test-vm

▼変換後

# tail /var/log/snmptrap/snmptrap_convert.log
2021/01/30 09:44:48. .1.3.6.1.4.1.6876.4.3.0.203 Normal Status Events t1160vcsa.intrat.local - ZBXTRAP 192.168.11.160 vpxdAlarmInfo This notification is sent on entity alarm state change, by the vCenter Server SNMP agent. 3 Gray Yellow テストアラーム (仮想マシン作成) - Event: VM created (10362) Summary: Created virtual machine test-vm on t1161esxi.intrat.local in Datacenter160 Date: 01/30/2021 12:44:48 AM User name: VSPHERE.LOCAL\Administrator VM: test-vm Host: t1161esxi.intrat.local Resource pool: Cluster160 Data center: Datacenter160 test-vm

上記のように、出力ログが問題なく変換されていることと、Zabbixの画面上で問題なく表示されることが確認できれば、対応は完了となる。

参考

2021年4月6日火曜日

Splunkのインデクサをクラスタ構成した環境で新規インデックスを作成する

先日、Splunkにて複数台のインデクサによるクラスタ構成の構築手順やバージョンアップ手順を記載した。

インデクサはログを保存する領域を「インデックス」と呼ぶ。インデクサクラスタ構成では単体のインデクサの構成と異なり、インデックスの情報はManager Nodeが保持している。したがって、インデックスを新規に作成する場合は、まずManager Nodeにて設定したのち、その設定情報を各インデクサに適用するという流れとなる。

今回、2台のインデクサを持つクラスタ構成のSplunk環境にて、新規インデックスをManager Nodeにて設定し、各インデクサに設定の適応する手順を検証した。

環境

今回の検証では、ログ送信元となるUniversal Forwarderのサーバを含めると5台のサーバが必要となる。OSはすべてCentOS 7.8を使用する。インデクサのクラスタ構成のインストール手順は以下記事を参照いただきたい。

ホスト名 IPアドレス 種類 台数 説明
t1073spmg 192.168.11.73 Manager Node 1 Splunkの各コンポーネントを管理する。
t1074spsh 192.168.11.74 Search Head 1 Indexerに対して検索を行い結果を表示する。
t1075spin 192.168.11.75 Peer Node (Indexer#1) 1 ログの受信とSearch Headからの検索を受け付ける。Peer Node間でデータがレプリケーションされ冗長化される。
t1076spin 192.168.11.76 Peer Node (Indexer#2) 1 ログの受信とSearch Headからの検索を受け付ける。Peer Node間でデータがレプリケーションされ冗長化される。
t1077spfw 192.168.11.77 Universal Forwarder 1 Peer Nodeに対してログを送信する。

手順

1. Manager Nodeにてインデックス設定を実施

インデクサをクラスタ構成している場合は、インデックスの設定ファイルであるindexes.confをManager Nodeにて設定し、その設定情報をPeer Nodeに展開する。

ただし、indexes.confはSplunk Webから設定することはできないため、CLIにて設定ファイルを直接編集し、設定する必要がある。
※Splunk Webで設定できないことは、マニュアルにも以下の通り記載がされている。

Important: You cannot use Splunk Web or the CLI to configure index settings on peer nodes. You must edit indexes.conf directly.
引用元 : Configure the peer indexes in an indexer cluster

従って、SSHなどでOSにログインして、indexes.confを直接編集する。Peer Node用の設定ファイル配置ディレクトリは、/opt/splunk/etc/master-apps/_cluster/local/となる。今回は例としてtest_indexという名前のインデックスを作成することとし、以下のようにindexes.confを作成する。

# vi /opt/splunk/etc/master-apps/_cluster/local/indexes.conf
[test_index]
repFactor = auto
coldPath = $SPLUNK_DB/test_index/colddb
enableDataIntegrityControl = 0
enableTsidxReduction = 0
homePath = $SPLUNK_DB/test_index/db
maxTotalDataSizeMB = 512000
thawedPath = $SPLUNK_DB/test_index/thaweddb

2. 設定バンドルの検証

Manager Nodeが保持しているPeer Nodeへ配布する設定情報を「設定バンドル」と呼ぶ。設定バンドルの展開前にsplunk validate cluster-bundleコマンドを使用して、Peer Node
に対して設定バンドルの更新要否や再起動要否の検証を行う。

設定バンドルが更新されている場合は、下記のようにCreated new bundleと表示される。実際に、Peer Nodeへの適用要否は次の手順にて確認する。

# /opt/splunk/bin/splunk validate cluster-bundle --check-restart -auth admin:my_password
Validating new bundle and checking if its application results in a restart. Please run 'splunk show cluster-bundle-status' to check the status of the bundle validation.
Created new bundle with checksum=FF229E88CDE5C1E8795AC2DDB0E60BD3

3. 設定バンドルの確認

splunk show cluster-bundle-statusコマンドを使って、各Peer Nodeに適用されている設定バンドルと、先ほど検証した設定バンドルの差異を確認する。

出力結果において、確認するポイントは以下となる。

  • active_bundleが適用中の設定バンドルであり、last_validated_bundleが検証した最新の設定バンドルとなる。この2つが異なっている場合は、更新が必要と判断する。
  • last_check_restart_resultは設定バンドルの適用後のSplunkの再起動要否を示す。今回はrestart not requiredと記載されており、再起動は不要であることが確認できる。再起動が必要となる場合はrestart requiredと表示される。
# /opt/splunk/bin/splunk show cluster-bundle-status

master
         cluster_status=None
         active_bundle
                checksum=9D5C0600199B13E786336B83E577576A
                timestamp=1617456895 (in localtime=Sat Apr  3 22:34:55 2021)
         latest_bundle
                checksum=9D5C0600199B13E786336B83E577576A
                timestamp=1617456895 (in localtime=Sat Apr  3 22:34:55 2021)
         last_validated_bundle
                checksum=FF229E88CDE5C1E8795AC2DDB0E60BD3
                last_validation_succeeded=1
                timestamp=1617457038 (in localtime=Sat Apr  3 22:37:18 2021)
         last_check_restart_bundle
                last_check_restart_result=restart not required
                checksum=FF229E88CDE5C1E8795AC2DDB0E60BD3
                timestamp=1617457038 (in localtime=Sat Apr  3 22:37:18 2021)

 t1076spin       AFACC80F-3E52-4B65-9AAC-06E2CEA6575E    default
         active_bundle=9D5C0600199B13E786336B83E577576A
         latest_bundle=9D5C0600199B13E786336B83E577576A
         last_validated_bundle=FF229E88CDE5C1E8795AC2DDB0E60BD3
         last_bundle_validation_status=success
         last_bundle_checked_for_restart=FF229E88CDE5C1E8795AC2DDB0E60BD3
         last_check_restart_result=restart not required
         restart_required_apply_bundle=0
         status=Up

 t1075spin       CDC8B6AA-B56B-471A-A411-36AE8E494A03    default
         active_bundle=9D5C0600199B13E786336B83E577576A
         latest_bundle=9D5C0600199B13E786336B83E577576A
         last_validated_bundle=FF229E88CDE5C1E8795AC2DDB0E60BD3
         last_bundle_validation_status=success
         last_bundle_checked_for_restart=FF229E88CDE5C1E8795AC2DDB0E60BD3
         last_check_restart_result=restart not required
         restart_required_apply_bundle=0
         status=Up

4. 設定バンドルをPeer Nodeに適用

設定バンドルの適用は、splunk apply cluster-bundleにて行う。通常は展開前に確認を求められるが、すべてyesで回答をする場合は、--answer-yesのオプションを付与することでスキップすることができる。

# /opt/splunk/bin/splunk apply cluster-bundle --answer-yes
Created new bundle with checksum=FF229E88CDE5C1E8795AC2DDB0E60BD3
Applying new bundle. The peers may restart depending on the configurations in applied bundle.
Please run 'splunk show cluster-bundle-status' for checking the status of the applied bundle.
OK

もし設定に変更がない場合は、以下の通りNo new bundle will be pushedというメッセージが表示され、設定は更新されない。

# /opt/splunk/bin/splunk apply cluster-bundle --answer-yes

Encountered some errors while applying the bundle.
No new bundle will be pushed. The master and peers already have this bundle with bundle id = 9D5C0600199B13E786336B83E577576A

5. 新規インデックスのログを確認

以上でPeer Nodeに設定が反映されたため、実際にtest_indexのインデックスにログが保管され、Search Headから検索できることを確認する。

Universal Forwarderからインデックスにtest_indexを指定して、/var/log/secureのログを送信する設定を行う。

# ./splunk add monitor "/var/log/secure*" -index test_index
Added monitor of '/var/log/secure*'.

この状態でSearch Headからindex=test_indexをサーチ文として検索をすると、問題なくログが出力された。

また、Manager Nodeにおいても[設定]→[インデクサークラスタリング]の画面にて、test_indexが追加されていることを確認できた。

以上で、インデクサをクラスタ構成にした環境におけるインデックス追加手順は完了となる。

参考

2021年4月3日土曜日

ESXi Arm Editionをバージョンアップする手順 (v1.3対応)

2020年10月6日にv1.0がリリースされたESXi Arm Editionは、定期的にバージョンアップがされており、2021年4月2日に久しぶりに新バージョンであるv1.3がリリースされた。ビルド番号は以下の通りとなる。

  • v1.0 : Build 16966451
  • v1.1 : Build 17068872
  • v1.2 : Build 17230755
  • v1.3 : Build 17839012

修正内容は以下URLに記載がされているが、私の環境では特にvCenter Serverで管理もしていないことから、大きく影響を受けるようなBug Fixはなさそうに見える。

ただ、今後も頻繁に新バージョンがリリースされそうな雰囲気もあることから、ESXi Arm Editionのバージョンアップを実施した。

環境

前提として、Raspberry Pi 4にESXi Arm Editionがインストール済みであることが必要となる。手順は以下記事を参照いただきたい。

バージョンアップ手順

1. ESXi Arm Editionの新イメージを入れたUSBメモリを作成

当初からESXi Arm EditionがインストールされているUSBメモリとは別に、バージョンアップ用としてもう1つUSBメモリを準備し、「Rufus」を使ってESXi Arm Editionの新しいバージョンのISOイメージ「VMware-VMvisor-Installer-7.0.0-<ビルド番号>.aarch64.iso」を選択し、USBメモリに書き込みを行う。

作成後は、Raspberry Pi 4の空いているUSBポートに接続しておこう。

2. ESXiを再起動

VMware Host Clientなどを利用してESXiサーバを再起動する。

3. ESXi Arm Editionの新イメージのUSBメモリからブートする

Raspberry Pi起動画面が表示されているタイミングでESCキーを押してUEFIにログインし、「Boot Manager」を選択する。ESXi Arm Editionの新イメージのインストーラが入ったUSBメモリを選択してブートする。

4. ESXiのインストール先として既存のUSBメモリを選択する

ESXiのインストーラが起動し、途中ESXiのインストール先の選択画面が表示されるので、当初からESXiがインストールされているUSBメモリを選択する。

この際に、「ESXi and VMFS Found」の画面が表示されるので、「Install ESXi, preserve VMFS datastore」を選択する。

ここで注意事項となるが、ESXi Arm Edition v1.1以降にバージョンアップする際は、VMFSのデータは維持するものの、ESXiとしての設定はすべて初期化されてしまう。これは公式サイトのChangelogでも以下の通り記載されている。

October 22, 2020 - v1.1

Note: Upgrade is NOT possible, only fresh installation is supported. If you select “Preserve VMFS” option, you can re-register your existing Virtual Machines.

したがって、ESXiインストール後に、再度必要な設定を実施する必要がある。

5. インストール後にESXiの再設定を実施

インストールが完了しESXiが起動したのち、ESXiに対して実施していた設定を再度投入する。以下は私の環境で実施した作業となる。特に、NTPサーバを設定しないとかなり時刻がずれた状態で起動してしまうため、忘れずに再設定をすること。

  • 固定IPアドレス設定
  • DNS・ホスト名設定
  • NTP設定
  • ユーザ・権限設定
  • iSCSI設定
  • 仮想マシンをvmxファイルから再登録

以上でESXi Arm Editionのバージョンアップ作業は完了となる。以下はv1.0からv1.1にバージョンアップした際の例となるが、ESXiのバージョン表記が「ESXi on Arm Fling (Build 17068872)」となっていることがわかる。

更新履歴

  • 2020/10/24 新規作成
  • 2021/4/3 v1.3リリースに合わせて情報を最新化

人気の投稿