I have setup syslog forwarding from pfSense to Wazuh using syslog-ng. Syslog-ng running on pfSense grabs eve.json from Suricata and sends it over to Wazuh which ingests via remote syslog. I have confirmed that I can see the flow in archives.json on the Wazuh server.
I am struggling with the right combination of decoders and rules to get anything to trigger in Wazuh though. I believe the issue I am running into is that the Wazuh syslog remote is wrapping the json output from syslog-ng in a syslog header that the decoders don't know how to deal with (and I don't know how to solution around).
I've put a sample suricata entry as recorded in archives.json - any idea how to make Wazuh play nice with this or make pfSense / syslog-ng play nice with Wazuh? NOTE - I replaced actual IP addresses with 0.0.0.0 in the data sample.
{"timestamp":"2025-06-06T14:10:55.394+0000","agent":{"id":"000","name":"wazuh"},"manager":{"name":"wazuh"},"id":"1749219055.1716572","full_log":"Jun 6 11:10:55 pfsense suricata: {\"timestamp\":\"2025-06-06T11:10:54.657789-0300\",\"flow_id\":124385591293410,\"in_iface\":\"bge0.35\",\"event_type\":\"fileinfo\",\"src_ip\":\"0.0.0.0\",\"src_port\":5149,\"dest_ip\":\"0.0.0.0\",\"dest_port\":80,\"proto\":\"TCP\",\"pkt_src\":\"wire/pcap\",\"http\":{\"hostname\":\"
www.acinfinityserver.com\",\"url\":\"/api/dev/getdevModeSettingList\",\"http_user_agent\":\"ACController/1.8.2 (com.acinfinity.humiture; build:489; iOS 16.5.1) Alamofire/5.4.4\",\"http_content_type\":\"application/json\",\"http_method\":\"POST\",\"protocol\":\"HTTP/1.1\",\"status\":200,\"length\":1201},\"app_proto\":\"http\",\"fileinfo\":{\"filename\":\"/api/dev/getdevModeSettingList\",\"gaps\":false,\"state\":\"CLOSED\",\"stored\":false,\"size\":32,\"tx_id\":598}}","predecoder":{"program_name":"suricata","timestamp":"Jun 6 11:10:55","hostname":"pfsense"},"decoder":{},"location":"0.0.0.0"}