2013/10/8 David Lang <[email protected]>

> The big problem with this idea is that in general messages do not stay in
> the queues for very long. They are there only until they can get delivered
> to their destinations.
>
> If you were to have rsyslog stop delivering the messages to a destination
> and then hang on to them all, how would rsyslog ever know if all the
> destinations had completed their polling?
>

Ah, I think there's a misunderstanding here. I'm not suggesting to give
access to any action's queue. I'm suggesting to have a separate queue for
the REST API. For example, rsyslog is listening to /dev/log, and instead of
forwarding those messages via TCP, put them in the action queue and wait
for something to pull those messages from the queue. When once asks for a
batch of messages, they get "consumed".


>
> It is easy enough to have rsyslog deliver messages to a queue of your
> choice (may I suggest that you look at either Zero MQ or Rabbit MQ which
> are already supported by rsyslog), and then you can deal with them at your
> convienience.
>

Right, thanks for mentioning. This will work as well. Although having the
REST API directly in rsyslog will eliminate the need of another moving
piece.


>
>
> There's also the problem that giving outside programs access to the
> rsyslog internals would be fragile, it wouldn't work with any other syslog
> daemon (destroying the value of standardization), and it would probably not
> continue to work even with rsyslog in the face of updates or even config
> changes.
>

Ah, but this has nothing to do with syslog standards. Think of it as a
different output, like omelasticsearch. Only instead of pushing logs,
rsyslog will store them so they can get pulled.


>
> As for the logstash recommendations, I can tell you that the idea of
> putting all your logs through a single chain of processing the way they do
> doesn't scale that well. At really high log volumes, you need to be able to
> split your processing not only across different servers, but across
> different farms of servers.
>

The "ASCII diagram" was just a sketch of the flow, I didn't include scaling
in there. With Logstash in particular, you can have multiple "receivers"
across multiple servers, then if you use Redis as a buffer you can cluster
that, and you can have multiple Logstash "indexers" to send logs to
Elasticsearch, which can be clustered, too.

Maybe my drawing was confusing, sorry for that. I wanted to show the chain
of processing in terms of technology, not in terms of scale.
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to