I have created a stream to process incoming bro_dns messages, specifically looking for ‘alien’ address queries.
The stream rules look for
application_name:bro_dns
and a regex (.*.)+local
Which should match all queries for something.local , as a simple test
When I run a search using this I see the expected results, but no messages arrive in the stream using exactly the same conditions.
If change the rule processing form ‘both’ to ‘either’, I see all bro_dns messages arrive in the stream.
Which message field are you running the regular expression against?
Does this field always exist in the messages or do you generate it in an extractor or a pipeline rule?
Check the order of message processors on the System/Configurations page. The stream rules are applied in the Message Filter Chain.
If the Pipeline Processor runs after the Message Filter Chain, all message fields created in pipeline rules will only be available after the stream rules have been evaluated.
You might want to take another look at that regular expression. It works, but it is quite suboptimal.