Hi Peter!
I hope you are doing fine!
I did a quick test with your example log and I have a doubt, Is it correct esxiserver falls as hostname?
Running on wazuh-logtest tool
/var/ossec/bin/wazuh-logtest
Type one log per line
Aug 5 16:07:38 esxiserver VSANMGMTSVC: info vsand[2102373] [opID=Thread-2 VsanSystemImpl::_ConfigInfoPrintLog] configInfo: skipped
**Phase 1: Completed pre-decoding.
full event: 'Aug 5 16:07:38 esxiserver VSANMGMTSVC: info vsand[2102373] [opID=Thread-2 VsanSystemImpl::_ConfigInfoPrintLog] configInfo: skipped'
timestamp: 'Aug 5 16:07:38'
hostname: 'esxiserver'
program_name: 'VSANMGMTSVC'
**Phase 2: Completed decoding.
No decoder matched.
If that is correct, the decoder could be something like: add this in /var/ossec/etc/decoders/local_decoder.xml
<decoder name="esxi">
<program_name>VSANMGMTSVC</program_name>
</decoder>
<decoder name="esxi_child">
<parent>esxi</parent>
<regex type="pcre2">(\S+)\s+vsand\[\d+\]\s+.*?configInfo:\s+(\w+)</regex>
<order>status,action</order>
</decoder>
And an example rule: add it in /var/ossec/etc/rules/local_rules.xml
<rule id="100555" level="5">
<decoded_as>esxi</decoded_as>
<description>ESXI event</description>
</rule>
Running wazuh-logtest tool
/var/ossec/bin/wazuh-logtest
Type one log per line
Aug 5 16:07:38 esxiserver VSANMGMTSVC: info vsand[2102373] [opID=Thread-2 VsanSystemImpl::_ConfigInfoPrintLog] configInfo: skipped
**Phase 1: Completed pre-decoding.
full event: 'Aug 5 16:07:38 esxiserver VSANMGMTSVC: info vsand[2102373] [opID=Thread-2 VsanSystemImpl::_ConfigInfoPrintLog] configInfo: skipped'
timestamp: 'Aug 5 16:07:38'
hostname: 'esxiserver'
program_name: 'VSANMGMTSVC'
**Phase 2: Completed decoding.
name: 'esxi'
action: 'skipped'
status: 'info'
**Phase 3: Completed filtering (rules).
id: '100555'
level: '5'
description: 'ESXI event'
groups: '['syscheck']'
firedtimes: '1'
mail: 'False'
**Alert to be generated.
Now it creates an alert, and it should be available into GUI.
Let me know if this information is useful.
Regards!