ITインフラにおけるスタンダードな通知の仕組みとしてSNMP Trapが使われています。
SNMP Trap には複数のバージョンがあり、多くのユーザーはSNMPv2cを利用されている印象ですが、セキュリティ要件によっては認証や暗号化機能が加わったSNMPv3を利用されているユーザもいます。
本記事では、VMware vCenter(以下、vCenterと表記)のアラームをSNMPv3 Trapで通知する設定方法をご紹介します。
SNMPv3とは
SNMPv3ではSNMPv2cと比較して以下のセキュリティ機能が強化されています。
- 認証
- Trapが正当な送信者から送信されていることを確認して、メッセージが改ざんされていないことを確認します。
- 暗号化
- メッセージを暗号化して送信します。万が一、盗聴されても内容を確認することはできません。
Trap送信サーバと受信サーバの間で以下の項目が一致している必要があります。 今回の検証環境で使用する設定値は以下の通りです。
| 項目 | 検証環境の設定値 | 備考 |
|---|---|---|
| ユーザ名 | user01 | |
| セキュリティレベル | priv | セキュリティレベルを指定。priv(認証と暗号化)、auth(認証のみ)、none(なし)より選択 |
| 認証パスワード | pasword01 | 認証有効時のみ設定 |
| 認証プロトコル | SHA1 | 認証有効時のみ設定。SHA1/MD5/noneより選択 |
| 暗号化パスワード | password01 | 暗号化有効時のみ設定 |
| 暗号化プロトコル | AES128 | 認証有効時のみ設定。AES128/noneより選択 |
| EngineID | vCenterでSNMP有効時に生成されるIDを利用 | Trap送信者を識別する識別子 |
検証環境
以下の環境で動作を確認しました。
- SNMP Trap受信サーバ:ubuntu 24.04、net-snmp 5.9.4.pre2
- IPアドレス:10.yy.yy.yyy
- vCenter(Trap送信サーバ):8.0 Update 2c
- IPアドレス:10.xx.xx.xxx
vCenterアラームのSNMPv3 Trap設定
vCenterアラームのTrap設定をSNMPv2cで行う場合は、vSphere Clientの[インベントリ]でvCenterを選択 - [構成]タブ-[全般]-[編集]-[SNMPレシーバ]から実施します。
しかし、この設定画面ではSNMPv3 Trapの認証や暗号化に関する設定項目がありませんので、SNMPv3 Trap設定はできません。

vCenterアラームをSNMPv3 Trapで送信するには、以下2つのエージェントを連携して送信する必要があります。
- vCenterアラームのTrapを送信するvpxdエージェント(上記[SNMPレシーバ]画面で設定)
- アプライアンスのTrapを外部へ送信するsnmpエージェント(CLIで設定)
vCenterアラームをSNMPv3 Trapで外部へ送信するには、まずvpxdエージェントからsnmpエージェントにTrapを送信、次にsnmpエージェントから外部へ送信します。
snmpエージェントから外部へTrap送信する設定はCLIで行います。
vpxdエージェントからのTrapをsnmpエージェントで受信するには、橋渡しとなるvmwsppサービスのrpmファイルをインストールする必要があります。

それぞれのエージェントの設定と、vmwsppサービスのインストール方法は以下の通りです。
vpxdエージェントのSNMP Trap設定
上記の[SNMPレシーバ]設定画面が初期状態であり必要な設定になります。変更されていないかどうかを確認します。
- プライマリ受信者URL:localhost
- 受信者のポート:162
- コミュニティストリング:public
snmpエージェントのSNMP Trap設定
設定はCLIで行います。
SSHでvCenterにrootユーザでログインします。
以下のコマンドを実行して現在のSNMP設定を確認します。
Command> snmp.get Config: Authentication: none Communities: '' Enable: False Processlist: False Engineid: '' Loglevel: warning Notraps: '' Port: 161 Privacy: none Syscontact: '' Syslocation: '' Targets: Users: Remoteusers: V3targets: Pid: n/a
認証プロトコルと暗号化プロトコルを設定します。
以下のコマンドで認証プロトコルを設定します。
snmp.set --authentication SHA1
以下のコマンドで暗号化プロトコルを設定します。
snmp.set --privacy AES128
認証ハッシュ値と暗号化ハッシュ値を発行します。今回はpassword01というパスワードを指定して発行します。
Command> snmp.hash --auth_hash password01 --priv_hash password01 --raw_secret true Hash: Auth_key: a3830be011a5a2aa6590d2f362349f3dbd82b823 Priv_key: a3830be011a5a2aa6590d2f362349f3d
SNMPv3ユーザを作成します。 ユーザ名/認証ハッシュ値/暗号化ハッシュ値/セキュリティレベルの順に指定します。
snmp.set --users user01/a3830be011a5a2aa6590d2f362349f3dbd82b823/a3830be011a5a2aa6590d2f362349f3d/priv
SNMPv3 Trap の宛先を指定します。
snmp.set --v3targets 10.yy.yy.yyy/user01/priv/trap
SNMPエージェントを有効にします。
snmp.enable
SNMPv3ステータスを確認します。
Command> snmp.get
Config:
Authentication: SHA1
Communities: ''
Enable: True
Processlist: False
Engineid: 80001f88803c394a0cfebab36800000000
Loglevel: warning
Notraps: ''
Port: 161
Privacy: AES128
Syscontact: ''
Syslocation: ''
Targets:
Users:
1:
Username: user01
Sec_level: priv
Auth_key: a3830be011a5a2aa6590d2f362349f3dbd82b823
Priv_key: a3830be011a5a2aa6590d2f362349f3d
Remoteusers:
V3targets:
1:
Type: trap
Sec_level: priv
Ip: 10.yy.yy.yyy
Port: 162
User: user01
Pid: 83099
Engineidの値については、後ほどご紹介するnet-snmp設定にて使用します。
vmwsppサービスRPMのインストール
vpxdエージェントからsnmpエージェントへSNMPv3 Trapを橋渡しするために、vmwsppサービスのRPMをインストールします。
vmwspp rpmファイルのアップロード
rpmファイルをvCenterにアップロードします。
rpmファイルはvCenter8.0 U2以降とそれ以前で利用するファイルが異なります。vCenter 8.0 U2以降では以下のKBにあるRPMファイルをダウンロードして、vCenterにアップロードします。
なお、SCPで転送する場合によく利用されるアプリケーションの1つにWinSCPがありますが、WinSCPで接続を試みると以下のエラーが表示されることがあります。この場合は、KBを参考に対処が必要です。

転送後、デフォルトシェルをbashに変更します。
Command> shell Shell access is granted to root root@ [ ~ ]# root@ [ ~ ]# chsh -s /bin/bash root root@ [ ~ ]#
アップロードしたrpmパッケージの情報を確認します。
root@ [ ~ ]# rpm -qi vmware-spp-1.1.0-Linux.rpm Name : vmware-spp Version : 1.1.0 Release : 1 Architecture: x86_64 Install Date: (not installed) Group : Applications/Management Size : 645442 License : unknown Signature : (none) Source RPM : vmware-spp-1.1.0-1.src.rpm Build Date : Tue 04 Jun 2024 07:07:47 AM UTC Build Host : sc-dbc2151.eng.vmware.com Vendor : VMware, Inc URL : http://www.vmware.com Summary : Provides a pipe for VC (vpxd) SNMP v1 traps be delivered to external event receivers by the VCSA SNMP Agent Description : Provides a pipe for VC (vpxd) SNMP v1 traps be delivered to external event receivers by the VCSA SNMP Agent
vmwspp rpmファイルのインストール
rpmをインストールします。
root@ [ ~ ]# root@ [ ~ ]# rpm -Uvh vmware-spp-1.1.0-Linux.rpm Preparing... ################################# [100%] Updating / installing... 1:vmware-spp-1.1.0-1 ################################# [100%]
vmwsppサービスのステータスを確認します。
root@ [ ~ ]# systemctl status vmwspp
● vmwspp.service - Daemon to pipe Virtual Center SNMPv1 traps to VCSA SNMP agent
Loaded: loaded (/etc/systemd/system/vmwspp.service; disabled; vendor preset: enabled)
Active: inactive (dead)
vmwsppサービスを起動します。
root@ [ ~ ]# systemctl start vmwspp
再度、サービスのステータスを確認してactive(running)になっていることを確認します。
root@ [ ~ ]# systemctl status vmwspp
● vmwspp.service - Daemon to pipe Virtual Center SNMPv1 traps to VCSA SNMP agent
Loaded: loaded (/etc/systemd/system/vmwspp.service; disabled; vendor preset: enabled)
Active: active (running) since Sun 2025-08-31 03:50:34 UTC; 10s ago
Main PID: 109724 (vmwspp)
Tasks: 1 (limit: 25160)
Memory: 552.0K
CGroup: /system.slice/vmwspp.service
mq109724 /bin/vmwspp
netstatコマンドでvmwsppサービスが127.0.0.1:162で待ち受けていることを確認します。
root@ [ ~ ]# netstat -nap | grep vmwspp udp 0 0 127.0.0.1:162 0.0.0.0:* 109724/vmwspp unix 3 [ ] STREAM CONNECTED 549983 109724/vmwspp unix 2 [ ] DGRAM 549985 109724/vmwspp
vCenterアラーム設定
テストアラームを作成します。
今回は、仮想マシンがパワーオフしたときにアラームを発行してTrap送信する設定を行います。

net-snmpのSNMPv3設定
Trap受信サーバとして、Ubuntu上にnet-snmpをインストールします
ubuntu@ubuntu01:~$ sudo apt install snmp snmpd snmptrapd Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: libmysqlclient21 libnetsnmptrapd40t64 libsnmp-base libsnmp40t64 mysql-common Suggested packages: snmp-mibs-downloader The following NEW packages will be installed: libmysqlclient21 libnetsnmptrapd40t64 libsnmp-base libsnmp40t64 mysql-common snmp snmpd snmptrapd 0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded. Need to get 2,822 kB of archives. After this operation, 12.4 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://archive.ubuntu.com/ubuntu noble/main amd64 libsnmp-base all 5.9.4+dfsg-1.1ubuntu3 [206 kB] Get:2 http://archive.ubuntu.com/ubuntu noble/main amd64 libsnmp40t64 amd64 5.9.4+dfsg-1.1ubuntu3 [1,066 kB] Get:3 http://archive.ubuntu.com/ubuntu noble/main amd64 snmpd amd64 5.9.4+dfsg-1.1ubuntu3 [59.6 kB] Get:4 http://archive.ubuntu.com/ubuntu noble/main amd64 mysql-common all 5.8+1.1.0build1 [6,746 B] Get:5 http://archive.ubuntu.com/ubuntu noble/main amd64 libmysqlclient21 amd64 8.0.36-2ubuntu3 [1,253 kB] Get:6 http://archive.ubuntu.com/ubuntu noble/universe amd64 libnetsnmptrapd40t64 amd64 5.9.4+dfsg-1.1ubuntu3 [25.0 kB] Get:7 http://archive.ubuntu.com/ubuntu noble/main amd64 snmp amd64 5.9.4+dfsg-1.1ubuntu3 [180 kB] Get:8 http://archive.ubuntu.com/ubuntu noble/universe amd64 snmptrapd amd64 5.9.4+dfsg-1.1ubuntu3 [25.5 kB] (以下略)
vCenterのSNMPv3ユーザを登録します。
以下のファイルを編集してvCenterのSNMPv3ユーザからのTrapを受信できるようにします。また、/var/log/syslog にTrapのログを記録するようにします。
sudo vi /etc/snmp/snmptrapd.conf createUser -e 0x80001f88803c394a0cfebab36800000000 user01 SHA "password01" AES "password01" authUser log,execute,net user01 priv [snmp] logOption sd
snmptrapdを起動します。
sudo systemctl start snmptrapd
SNMPv3 Trap通知確認
vCenterでテストTrapを送信します。
Command> snmp.test Results: Success: True Message: A warmStart notification was sent to 1 target.
/var/log/syslog にてTrapのログが記録されました。
ubuntu@ubuntu01:/var/log$ tail -f /var/log/syslog | grep snmptrapd 2025-08-31T16:48:15.391973+00:00 ubuntu01 snmptrapd[4258]: 2025-08-31 16:48:15 <UNKNOWN> [UDP: [10.xx.xx.xxx]:36795->[10.yy.yy.yyy]:162]:#012iso.3.6.1.2.1.1.3.0 = Timeticks: (4900242) 13:36:42.42#011iso.3.6.1.6.3.1.1.4.1.0 = OID: iso.3.6.1.6.3.1.1.5.2#011iso.3.6.1.6.3.1.1.4.3.0 = OID: iso.3.6.1.4.1.6876.4.6876
次にtest03という仮想マシンをパワーオフします。VM powerd offのvCenterアラームがTrapで記録されました。
ubuntu@ubuntu01:/var/log$ tail -f /var/log/syslog | grep snmptrapd 2025-08-31T16:49:19.096398+00:00 ubuntu01 snmptrapd[4258]: 2025-08-31 16:49:19 <UNKNOWN> [UDP: [10.xx.xx.xxx]:36795->[10.yy.yy.yyy]:162]:#012iso.3.6.1.2.1.1.3.0 = Timeticks: (4906612) 13:37:46.12#011iso.3.6.1.6.3.1.1.4.1.0 = OID: iso.3.6.1.4.1.6876.4.3.0.203#011iso.3.6.1.4.1.6876.4.3.308.0 = INTEGER: 3#011iso.3.6.1.4.1.6876.4.3.304.0 = STRING: "Unset"#011iso.3.6.1.4.1.6876.4.3.305.0 = STRING: "Warning"#011iso.3.6.1.4.1.6876.4.3.306.0 = STRING: "power-off - Event: VM powered off (605541).Summary: test03 on esx04.lab.local in Datacenter is powered off.Date: 08/31/2025 04:49:14 PM.User name: VSPHERE.LOCAL\\Administrator.VM: test03.Host: esx04.lab.local.Resource pool: Cluster01.Data center: Datacenter."#011iso.3.6.1.4.1.6876.4.3.307.0 = STRING: "test03"
おわりに
企業のセキュリティ意識の高まりにより、要件によってはvCenterにおいてもSNMPv3を利用するケースがあると思います。
その際には本記事が参考になれば幸いです。