The built-in VMWare decoder does not work with modern ESXi syslogs. I can't tell exactly what changed, but I believe it has something to do with the timestamp.
Because the current decoder and rules DON'T work I have created the following decoder:
<decoder name="VMWareESXI7">
<prematch type="pcre2">\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+Z \S+ \S+: .+</prematch>
</decoder>
And I'm testing with This string:
2022-12-29T20:28:24.376Z esx02.test.local Rhttpproxy: verbose rhttpproxy[2098976] [Originator@6876 sub=Proxy Req 95800] Resolved endpoint : [N7Vmacore4Http16LocalServiceSpecE:0x0000000dc3115700] _serverNamespace = /vpxa action = Allow _port = 8089
I get the following result when testing:
**Phase 1: Completed pre-decoding.
full event: '2022-12-29T20:28:24.376Z esx02.test.local Rhttpproxy: verbose rhttpproxy[2098976] [Originator@6876 sub=Proxy Req 95800] Resolved endpoint : [N7Vmacore4Http16LocalServiceSpecE:0x0000000dc3115700] _serverNamespace = /vpxa action = Allow _port = 8089'
timestamp: '2022-12-29T20:28:24.376Z esx02.'
program_name: 'Rhttpproxy'
**Phase 2: Completed decoding. No decoder matched.
I have verified the decoder matches in EVERY OTHER context, but will not match in Wazuh (The regex is sound). I assume it's because of the pre-matching incorrectly identifying the timestamp string by also including part of the ESXi hostname.
I'd like some help on this.