Hello,
The log you have shared is from the archives.json file.
This is the logs after Unescaped JSON.
{"timestamp":"2025-10-20T09:21:37.153+0200","agent":{"id":"000","name":"wazuh-server"},"manager":{"name":"wazuh-server"},"id":"1760944897.274871891","full_log":"Oct 20 09:21:37 suricata[57535]: {"timestamp":"2025-10-20T09:21:36.676057+0200","flow_id":84474839395842,"in_iface":"vtnet1.195","event_type":"krb5","src_ip":"SOURCEIP","src_port":88,"dest_ip":"DEST-IP","dest_port":54591,"proto":"TCP","pkt_src":"wire/pcap","krb5":{"msg_type":"KRB_TGS_REQ","cname":"<empty>","realm":"DOMAIN","sname":"host/SOURCEHOST","encryption":"<none>","weak_encryption":false}}","predecoder":{"timestamp":"Oct 20 09:21:37","hostname":"suricata[57535]:"},"decoder":{},"location":"pfSense-IP"}
You can check this website for Unescape and Escape JSON.
https://www.freeformatter.com/json-escape.html#before-output
You need to test the logs inside the full_log section.
Oct 20 09:21:37 suricata[57535]: {"timestamp":"2025-10-20T09:21:36.676057+0200","flow_id":84474839395842,"in_iface":"vtnet1.195","event_type":"krb5","src_ip":"SOURCEIP","src_port":88,"dest_ip":"DEST-IP","dest_port":54591,"proto":"TCP","pkt_src":"wire/pcap","krb5":{"msg_type":"KRB_TGS_REQ","cname":"<empty>","realm":"DOMAIN","sname":"host/SOURCEHOST","encryption":"<none>","weak_encryption":false}}
This is the actual log your endpoint is sending, and the engine matches the decoders and rules based on this log.
So you need to write your decoder and rules based on this.
It is difficult to use a prematch for this log pattern, as this part cannot be used this part as it is a part of the predecoder.
Oct 20 09:21:37 suricata[57535]:
We can make a decoder for this log with a generic pre-match, but it can match with other logs from other sources and create conflict.
Follow this to forward the logs to the Wazuh manager using rsyslog. Install rsyslog on the Wazuh manager to save the logs in a log file instead of using Wazuh remote syslog collecting capability.
https://wazuh.com/blog/monitoring-network-devices/
https://documentation.wazuh.com/current/cloud-service/your-environment/send-syslog-data.html
Now, while forwarding the logs to the rule engine, you will be able to add additional text with the logs that you can use in the pre-match for creating decoders.
<localfile>
<log_format>syslog</log_format>
<location>/var/log/suricata.log</location>
<out_format>suricata-logs: $(log)</out_format>
</localfile>
Now you will write a parent decoder like this.
<decoder name="suricata">
<prematch>^suricata-logs: </prematch>
</decoder>
You can follow this document for writing the other child decoders.
Decoders Syntax
Regular Expression Syntax
Custom decoders
Let me know if you need any further assistance.



The log collection configuration looks fine to me.
It seems to me the log collection is working correctly, but as they are information-level logs, they are not generating alerts as per the default rules.
Rules classification
If you want to see alerts for these logs or for testing, you can overwrite the rules level to a higher level and check if you can see them on the dashboard.
For these, add these two rules in the /var/ossec/etc/rules/local_rules.xml
file
<group name="ids,suricata,">
<rule id="86600" level="5" overwrite="yes">
<decoded_as>json</decoded_as>
<field name="timestamp">\.+</field>
<field name="event_type">\.+</field>
<description>Suricata messages.</description>
<options>no_full_log</options>
</rule>
<rule id="86603" level="5" overwrite="yes">
<if_sid>86600</if_sid>
<field name="event_type">^dns$</field>
<description>Suricata: DNS.</description>
<options>no_full_log</options>
</rule>
</group>
And restart the Wazuh Manager or reload the analysisd engine.
systemctl restart wazuh-manager
Ref: Custom rules
Let me know if you are able to see the alerts in the dashboard for the new rules after adding the rules.