Dear All, I hope every one is doing fine. We were doing stress testing of Rsyslog and found few problems (in our setup and not in Rsyslog :)) that I want to discuss at this forum.
1. We were using LOIC (LOIC is DDOS attack tool - your anti virus will delete it :) - disclaimer: handle it with care) for generation of UDP packets. We created a customized log message. The speed of Packets sent by LOIC is very very high, that is some thing 20,000 packets in 2 sec. for example. Every thing is fine if we use point to point connection between Rsyslog machine and MangoDB machine. Point to point means connection via cross cable and not through a switch. We calculated the no. of packets sent by LOIC and no. of packets received by Rsyslog and then written by MongoDB after parsing by Logtash is fairly equal. 2. However, if we connect both MongoDB and Rsyslog through a switch LAN, there is a packet drop at the Rsyslog end, some what between 300-500 packets depending on the speed of LOIC - thus 300-500 lesser logs are written to MongoDB. What we concluded and I want your expert opinion on this: 1. It seems LOIC is the not the right choice for traffic generation for Rsyslog - that is stress testing of Rsyslog. It sends packets via UDP 514, but essentially it does not follow Syslog Protocol. Now, we are trying to understand: Is there some sort of reliability achieved in Syslog protocol even if packets are sent on UDP 514? BTW, i am well aware that UDP is for faster communication but at the expense of reliability. Why we are saying that there is a problem at the LOIC - that is traffic generation end - because when we selected to send traffic via TCP on LOIC, due to speed it combines log packets and Rsyslog reports an error in its log. The net effect of this operation is that Rsyslog combines arbitrary no. of logs together and then give to Logtash, which does not understand and leave it un parsed. 2. What options do we have, either we use a python library to generate traffic, write it to /var/log/messages and ask the Rsyslog to send that traffic to another Rsyslog?. Does using this way guarantees that there will be no drop of Log messages even in UDP? 3. But what I am interested in understanding what is the reliability mechanism provided by Rsyslog in general in the case of UDP. After all each n every log is a very important piece of information and can destroy the reputation of an organization. 4. Even if the some reliability can be achieved at the Rsyslog end, how can we avoid - up to maximum extent - the possibility of log drop between Rsyslog to Logtash. Logtash is a very small program than Rsyslog. Rsyslog in our setup is used only for Buffering - thus, what parameters in the .conf file of Rsyslog should be changed to achieve this reliability. Please note that, our Rsyslog and Logtash are setup at the same system - so no network latency at this end. 5. In all this setup, the performance of LogAnalyzer was very pathetic in filtering and running other queries. So we choose to write a simple PHP web page for displaying logs and it is running much much faster than LogAnalyzer. 6. Are we on the right path for checking reliability and stress testing? _______________________________________________ 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.

