NULL считаются символами конца строки.
К счастью, источник UDP не зависит от конца строки (символы новой строки или NULL), поэтому перед синтаксическим анализом можно удалить все ненужные 0 байтов, например:
source s_ise {
udp(port(522) flags(no-parse));
};
rewrite r_remove_nulls {
subst('\x00', '', value("MESSAGE"), type(pcre), flags(global)); # single quotes!
};
parser p_syslog {
syslog-parser();
};
destination d_ise {
file("/var/log/ise.log");
udp("myhost.example" port(516) spoof_source(no));
};
log {
source(s_ise);
rewrite(r_remove_nulls);
parser(p_syslog);
filter(f_ise_aaa);
destination(d_ise);
};
В качестве альтернативы вы можете оставить NULL-байты, но в этом случае вам не следует использовать объекты конфигурации syslog-ng, которые обрабатывают сообщение как строки (например, парсеры, правила перезаписи на основе строк, строковые фильтры, et c).