Trigger a User event from the VCSA command line

Disclaimer: This is not officially supported by VMware, please use at your own risk.

Recently I faced the challenge with a script running on a VCSA which executes some checks and in case something gets detected it has to trigger a vCenter alarm.

My solution is to log a user event which will be captured by an vCenter alert definition.

1. vCenter alert definition

as trigger manually enter (type): vim.event.GeneralUserEvent

2. The script which will log the user event

#!/usr/bin/python

import sys
sys.path.insert(0, '/usr/lib/vmware/site-packages/')
from pyVim.connect import SmartConnect
from pyVmomi import vim
import ssl
import atexit

s = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
s.verify_mode = ssl.CERT_NONE

si = SmartConnect(host="localhost", user="administrator@vsphere.local", pwd='VMware1!', sslContext=s)

content = si.RetrieveContent()
ds = content.rootFolder

log = si.content.eventManager.LogUserEvent(entity=ds, msg="Issue detected")

Result:

The resulting alert can be catched by vROPs and trigger further events/ tickets.

Leave a Reply

Your email address will not be published. Required fields are marked *