Streams not working

Before you post: Your responses to these questions will help the community help you. Please complete this template if you’re asking a support question.
Don’t forget to select tags to help index your topic!

1. Describe your incident:
I have a UDP input setup that is pulling in syslog from a FW and using that input as well as a parsed field I have this syslog information going into a specific stream. (remove from all messages selected)

This stream above goes into it’s own index.

Now I am trying to create a new stream that is pulling information from messages that are being routed into the above stream but I can’t get them to show up when in the search page and selecting the new stream.

Sending this to a different index than above.

Do the streams only pull from the all messages queue or can pull messages from one stream into another?

2. Describe your environment:

  • OS Information:
    Debian
  • Package Version:
    4.2.9-1
  • Service logs, configurations, and environment variables:

3. What steps have you already taken to try and solve the problem?
I have been trying to figure out why it won’t pull these messages into my stream, when go into the original stream and then filter on the criteria in the new stream the messages are filtered. When I take those messages and match them against the new stream I get all green but for some reason when I select just that stream on the search page I don’t get any messages.

I just tried using the filter from stream #2 above and inversing on stream #1 so that it wouldn’t get pulled into the first stream and it still doesn’t show up.

4. How can the community help?
I have tried to access the documentation but can’t seem to find the answer as to whether the streams can only pull from all messages and not from another stream which removed the messages from “all messages”

Helpful Posting Tips: Tips for Posting Questions that Get Answers [Hold down CTRL and link on link to open tips documents in a separate tab]

Hello && Welcome @bigjohns97

Think I understand, correct me if I’m wrong.

All Message ( Stream) --filter to ( Stream-A) and ( New-Index-001). This works.

Now

( Stream-A) and ( New-Index) --filter to (Stream-B) using (New-Index-002)

Results:
(Stream -B) Does not have messages

Only if its configured that way.

Yes you can.

Showing your configuration ( i.e. remove personal info) perhaps we can see where the issue is.

Thank you @gsmith,

Good to know this should be working, I ended up just saving them as searches and looking through the data that way but it would be nice to use streams so I could tie them to notifications if needed.

Here is my config as best I know how to post it

1	Message Filter Chain	active
2	Pipeline Processor	active
3	AWS Instance Name Lookup	disabled
4	GeoIP Resolver	active

Stream-A

application_name must match exactly filterlog
gl_source_input must match input PFsense UDP (Syslog UDP: 60abedc170314b73e1afb538)

Stream-B

tracker must match exactly 1650119255

Now here is the thing, any messages that match that tracker number will also match Stream-A criteria and I have gone back to storing both of these streams in the same index after learning more about indexes I really don’t want two copies of this message.

But for some reason whenever I try and load just the Stream-B on the search page I don’t get any messages even through when I do a manual query with the same tracker number I get messages with or without using Stream-A as a stream filter.

I included message processing at the top since it seems this could come into play as well but since I have Message Filter Chain first I am thinking it shouldn’t be messing this up, please correct me if I am wrong.

Hello,

Unsure all the configuration made, I did a mock for a better visual to mimic what has been posted here.

Stream-A Configurations

image

Stream-B Configurations

image

This should work.

As for dup’s. noticed it says during the configurations it reply’s to All Message stream.
Remove matches from ‘All messages’ stream, It does not reply to Stream-A.

I believe a pipeline would be you best option in sending the correct messages to the correct stream.
Using All Messages stream keep the others streams/indices that were created. Now just use a pipeline.

Example: You may have to fine tune this.

Rule "application Route to stream"
when
 contains(to_string($message.application_name), "filterlog") && has_field("gl_source_input ")from_input([3A62730f30eeb96e7f96518123]) 
then
    route_to_stream(id:"5d8acba383d72e04cba8888");
    remove_from_stream(All Messages Stream _id)
end

Last,

Rule "tracker  Route to stream"
when
    has_field("tracker ") AND contains(to_string($message.tracker), "1650119255",true)
then
    route_to_stream(id:"5d8acba383d72e04cba9999");
    remove_from_stream(All Messages Stream _id)
end

Hope that helps

Appreciate the help.

I was able to get it working using the examples you provided and while it is more troublesome than just using the GUI to build stream I guess it will have to do.

I still was unable to get the streams working through basic stream rules whether using the same index or different ones.

Maybe it has to do with the pipelines I am using to parse certain information out of the original message? (even though I had message filter chain above pipeline processor)

Anyways I took the current 2 stage pipeline and added a third stage and placed your template in there with all of the tracker id’s defined routing them to the proper stream id and everything is working now.

Thanks again @gsmith

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.