On Fri, 1 Mar 2013, Ben Bradley wrote:

Hi everyone

So I've got Rsyslog happily transmitting log messages over the network to Logstash. I 
have disk assisted queueing on the rsyslog log "clients".
Sometimes I don't think Logstash can keep up on the other end, it blocks 
because it can't get data into ElasticSearch fast enough. I've not got logstash 
using elasticsearch_http which bulks the messages into ElasticSearch so we'll 
see how that goes.
But this is for relatively low logging volume (15/sec to 40/sec).

I probably need some sort of queueing system on the receiving end, in front of 
Logstash. We will probably be increasing our log volume gradually to about 5x 
the current level. Though I probably also need some queueing between Logstash 
and ElasticSearch.

I could ditch Logstash altogether and have Rsyslog pumping directly into 
ElasticSearch with omelasticsearch. But I'm not sure about the reliability of 
this (mention of ElasticSearch crashes) and how I need to structure the schema 
to maintain compatibility with Kibana. Also Logstash's filtering and pattern 
matching is (unfortunately) much easier to get working at this point (though I 
have got Rsyslog doing this in testing).

Or I could install Rsyslog in front of Logstash and use Rsyslog's queue options 
(and zip compression).
But what would be the best output module to use with Rsyslog to then send to 
the local Logstash?
Using omfwd to send via TCP to Logstash on the same machine seems a bit 
wasteful so I looked at omuxsock but then I'm not sure Logstash can receive 
through a socket.

Or is this the point where I need some sort of proper queueing system. What 
would be great is if there was something that could just receive the TCP 
packets from Rsyslog and queue them up. Then Logstash just reads from the queue 
when it can. Is that what systems like 0mq and AMQP do?

Are there any queueing systems in particular that are best to use for queueing 
messages from Rsyslog?

You have correctly identified the problem as being on the recieving side. If logstash can't keep up, then adding a rsyslog daemon on the reciever to forward to logstash is only going to move the bottleneck to that new rsyslog instance, you still will have the problem of logstash not keeping up with the rate of new traffic.

You need to find out if the problem is in logstash or elasticsearch.

If it's in logstash, then eliminating it and having rsyslog push the traffic to elasticsearch can help, but if the bottleneck is in elasticsearch, then you need to speed it up.

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