On Tue, 22 Nov 2016, [email protected] wrote:

We've been playing with logstash, rsyslog and redis for a while in order to *index into elasticsearch a bunch of application logs*. Briefly: app1-file1.log, app1-file2.log...appN-fileX.log -> pipeline -> elasticsearch.

So far, we are using *redis queues and _each application_ processing was made by one logstash instance* (docker container). Of course, this works with 5-10 applications, but it doesn't when you plan to deploy 100 apps cause each logstash instance requires ~512MB of RAM.

We've been thinking about rsyslog since the beginning, because it takes fewer RAM, but just noticed it doesn't have a *redis input module (aka: imhiredis)*

We still plan to have independent instances (one rsyslog for each application), but we're wondering if you'll consider it makes sense to implement this module.

What sort of log volume are you talking about here? (logs/sec type of thing)

Logstash needs something like redis because it can't do any queueing itself. Rsyslog is built around queues, and has the ability to create multiple queues and piplines internally, you don't need to run multiple instances.

What you would do is create a ruleset for each application (pipeline) and give that ruleset it's own queue.

As new logs arrive, you then sort them by application, and for each application (or application category), you call the appropriate ruleset. All processing from that point on will take place in different threads working on different queues for each category.

Give it a try, I'll bet that you find the result much simpler and faster.

David Lang
_______________________________________________
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