VMware ESXi ホストサーバや、 vCenter Server Appliance 上で SNMP エージェント機能を有効化する手順をまとめます。
VMware ESXi Hypervisor ホストの場合
ESXi Host Client上で、ホストの 管理 から サービス タブを開き、SSHサービスを起動します。
ターミナルへ入り、次のesxcliコマンドを使ってSNMPエージェントを設定、有効化します。
1 2 3 |
esxcli system snmp set –communities COMMUNITYNAME esxcli system snmp set –targets=IPADDRESS@PORT/COMMUNITYNAME esxcli system snmp set –enable true |
設定後はトラップ通知のテストや現在の設定値を読み出して確認することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
[root@esxi:~] esxcli system snmp set --communities public [root@esxi:~] esxcli system snmp set --targets=192.168.0.34@162/public [root@esxi:~] esxcli system snmp set --enable true [root@esxi:~] esxcli system snmp test Comments: There is 1 target configured, send warmStart requested, test completed normally. [root@esxi:~] esxcli system snmp get Authentication: Communities: public Enable: true Engineid: 00000063000000a100000000 Hwsrc: indications Largestorage: true Loglevel: info Notraps: Port: 161 Privacy: Remoteusers: Syscontact: Syslocation: Targets: 192.168.0.34@162 public Users: V3targets: |
ここで先ほどのESXi Host Clientのサービス一覧のページを再び開いて、snmpdサービスが実行中であり、その起動ポリシーが ホストと連動して起動および停止します になっているの確認します。
次にSNMPに関するファイアウォールルールを以下の要領で設定します。
1 2 3 4 5 6 7 |
全て許可する場合) esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true サブネットを限定する場合) esxcli network firewall ruleset allowedip add --ruleset-id snmp --ip-address 192.168.1.0/24 esxcli network firewall ruleset set --ruleset-id snmp --enabled true esxcli network firewall refresh |
設定後、ファイアウォールルールの反映確認もesxcliで行えます。
1 2 3 4 5 6 7 8 9 |
[root@esxi:~] esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true Already allowed all ip [root@esxi:~] esxcli network firewall ruleset set --ruleset-id snmp --enabled true [root@esxi:~] esxcli network firewall refresh [root@esxi:~] esxcli network firewall ruleset list | grep snmp snmp true [root@esxi:~] esxcli network firewall ruleset rule list | grep snmp snmp Inbound UDP Dst 161 161 |
最後に、ネットワーク上の別の端末から snmpwalk で情報を取得してみます。
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 |
$ snmpwalk -v2c -c public 192.168.0.32 .1.3.6.1.2.1.1 iso.3.6.1.2.1.1.1.0 = STRING: "VMware ESXi 6.7.0 build-10302608 VMware, Inc. x86_64" iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.6876.4.1 iso.3.6.1.2.1.1.3.0 = Timeticks: (249700) 0:41:37.00 iso.3.6.1.2.1.1.4.0 = "" iso.3.6.1.2.1.1.5.0 = STRING: "esxi.local" iso.3.6.1.2.1.1.6.0 = "" iso.3.6.1.2.1.1.7.0 = INTEGER: 72 iso.3.6.1.2.1.1.8.0 = Timeticks: (0) 0:00:00.00 iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.1 iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.2.1.31 iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.2.1.4 iso.3.6.1.2.1.1.9.1.2.4 = OID: iso.3.6.1.2.1.4.24 iso.3.6.1.2.1.1.9.1.2.5 = OID: iso.3.6.1.2.1.7 iso.3.6.1.2.1.1.9.1.2.6 = OID: iso.3.6.1.2.1.6 iso.3.6.1.2.1.1.9.1.2.7 = OID: iso.3.6.1.2.1.47 iso.3.6.1.2.1.1.9.1.2.8 = OID: iso.3.111.2.802.1.1.2 iso.3.6.1.2.1.1.9.1.2.9 = OID: iso.3.111.2.802.1.1.4 iso.3.6.1.2.1.1.9.1.2.10 = OID: iso.2.840.10006.300.43 iso.3.6.1.2.1.1.9.1.2.11 = OID: iso.3.111.2.802.1.1.13 iso.3.6.1.2.1.1.9.1.2.12 = OID: iso.3.6.1.2.1.25.7.1 iso.3.6.1.2.1.1.9.1.2.13 = OID: iso.3.6.1.4.1.6876.1.10 iso.3.6.1.2.1.1.9.1.2.14 = OID: iso.3.6.1.4.1.6876.2.10 iso.3.6.1.2.1.1.9.1.2.15 = OID: iso.3.6.1.4.1.6876.3.10 iso.3.6.1.2.1.1.9.1.2.16 = OID: iso.3.6.1.4.1.6876.4.90.10 iso.3.6.1.2.1.1.9.1.2.17 = OID: iso.3.6.1.4.1.6876.4.20 iso.3.6.1.2.1.1.9.1.3.1 = STRING: "SNMPv2-MIB, RFC 3418" iso.3.6.1.2.1.1.9.1.3.2 = STRING: "IF-MIB, RFC 2863" iso.3.6.1.2.1.1.9.1.3.3 = STRING: "IP-MIB, RFC 4293" iso.3.6.1.2.1.1.9.1.3.4 = STRING: "IP-FORWARD-MIB, RFC 4292" iso.3.6.1.2.1.1.9.1.3.5 = STRING: "UDP-MIB, RFC 4113" iso.3.6.1.2.1.1.9.1.3.6 = STRING: "TCP-MIB, RFC 4022" iso.3.6.1.2.1.1.9.1.3.7 = STRING: "ENTITY-MIB, RFC 4133" iso.3.6.1.2.1.1.9.1.3.8 = STRING: "IEEE8021-BRIDGE-MIB, REVISION 200810150000Z" iso.3.6.1.2.1.1.9.1.3.9 = STRING: "IEEE8021-Q-BRIDGE-MIB, REVISION 200810150000Z" iso.3.6.1.2.1.1.9.1.3.10 = STRING: "IEEE8023-LAG-MIB, REVISION 200706200000Z" iso.3.6.1.2.1.1.9.1.3.11 = STRING: "LLDP-V2-MIB, REVISION 200906080000Z" iso.3.6.1.2.1.1.9.1.3.12 = STRING: "HOST-RESOURCES-MIB, RFC 2790" iso.3.6.1.2.1.1.9.1.3.13 = STRING: "VMWARE-SYSTEM-MIB, REVISION 201008020000Z" iso.3.6.1.2.1.1.9.1.3.14 = STRING: "VMWARE-VMINFO-MIB, REVISION 201006220000Z" iso.3.6.1.2.1.1.9.1.3.15 = STRING: "VMWARE-RESOURCES-MIB, REVISION 200810150000Z" iso.3.6.1.2.1.1.9.1.3.16 = STRING: "VMWARE-CIMOM-MIB, REVISION 201008200000Z" iso.3.6.1.2.1.1.9.1.3.17 = STRING: "VMWARE-ENV-MIB, REVISION 201005120000Z" |
なお、以上はVMware ESXi Hypervisor 6.7U1を例に進めましたが、設定要領はESXi 8.0でも同じなことは別機にて確認済みです。
VMware vCenter Server Applianceの場合
複数のESXiホストの集中管理や仮想マシンのクローニングに必要なvCenter Server Applianceは、それ自身がPhoton OSベースの仮想マシン。現在、ESXiホスト3台を管理するのに使っているのは、vCenter 6.7.0.54000 (6.7U1)です。
vCenter vSphere Clientで用意されているのは、SNMPトラップレシーバの設定のみで、SNMPエージェントに関する項目は見当たりません。
さらに、ポート番号 5480 でアクセスできるアプライアンス自身のWebUIに至っては、SNMPサービスを設定する機能は備わっておらず、全てターミナルからCLIベースで設定する必要があります。
vCenter Server Applianceへ root アカウントでターミナルログイン後、次のコマンドによりSNMPで使用するポート番号、コミュニティ名、トラップ宛先を設定の上、SNMPエージェントを有効にします。
1 2 3 4 |
snmp.set --port PORT snmp.set --communities COMMUNITY1,COMMUNITY2,COMMUNITY3 snmp.set --targets IPADDRESS@PORT/COMMUNITY snmp.enable |
snmp.test コマンドでトラップメッセージをテストできるほか、現在の設定は snmp.get コマンドで参照することができます。
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 |
Command> snmp.set --port 161 Command> snmp.set --communities public Command> snmp.set --targets 192.168.0.34@162/public Command> snmp.enable Command> snmp.test Results: Message: A warmStart notification was sent to 1 target. Success: True Command> snmp.get Config: Port: 161 Authentication: none Syslocation: '' Processlist: False Loglevel: warning Enable: True V3targets: Users: Privacy: none Targets: 1: Port: 161 Ip: 192.168.0.34 Community: public Remoteusers: Notraps: '' Syscontact: '' Engineid: 80001adc80f9bed517baa7b06400000000 Pid: 54791 Communities: public |
参考文献)