I have a syslog message that contains a null terminated string: "syslog_message":"A10\u0000"
— these messages represent is-alive checks from a load balancer to the logstash servers. I would prefer not to have thousands of “the A10 checked & said logstash is still there” filling up Elasticsearch.
Unfortunately, the logstash configuration doesn’t recognize unicode escape sequences … and it’s not like I can literally type a NULL the way I could type a ° or è
I’ve been able to filter out any messages that start with A10. Since our “real” messages start with timestamps, I shouldn’t be dropping any good data, but there’s always the possibility. Without any way to indicate a null character, the closest match is any single character … and I’ve decided not to worry about a possible log message that is simply A101 or A10$ until we encounter a system that would send such messages.
#if [message] == "A10\u0000"{ -- doesn't work #if [message] == "A10\\u0000"{ -- doesn't work #if [message] == 'A10\u0000'{ -- doesn't work #if [message] =~ /^A10/{ -- this isn't great because of false positives, although *these* messages all start with a timestamp so are unlikely to match if [message] =~ "^A10.$" { drop { } }