---------- Forwarded message ---------- From: Jordan Sissel <[email protected]> Date: Tue, May 20, 2014 at 1:40 AM Subject: Re: Fwd: [logstash-users] Re: [rsyslog] Log Drop Issue To: David Lang <[email protected]> Cc: [email protected]
Also bounced: ---------- Forwarded message ---------- From: Jordan Sissel <[email protected]> To: logstash-users <[email protected]> Cc: rsyslog-users <[email protected]> Date: Mon, 19 May 2014 16:38:25 -0700 Subject: Re: [logstash-users] Re: [rsyslog] Log Drop Issue I also repeated this with udp: logger -> local rsyslog -> logstash (udp -> tcp) -> netcat -> local file No logs were lost. # Logstash % bin/logstash -e 'input { udp { port => 3333 } } output { tcp { codec => line { format => "%{message}" } host => localhost port => 3334 } }' # Result: % wc -l /tmp/logstash.udp 100000 /tmp/logstash.udp This was tested on logstash 1.4.1, rsyslogd 7.4.4, ubuntu 14.04 on a virtualbox vm with 4 cores. -Jordan On Mon, May 19, 2014 at 3:57 PM, David Lang <[email protected]> wrote: > Sorry, I didn't notice that this was sent to the logstash list. As for > logstash dropping logs, that may just be that when doing UDP logs the logs > get dropped when it can't keep up (as you say, I'm repeating hearsay) > > I suspect that there is something wrong with the original system, but > without more info, it's hard to diagnose where there is a problem. > > David Lang > > > On Mon, 19 May 2014, Jordan Sissel wrote: > > This message got bounced because I am not on the list. It might be worth >> forwarding to the rsyslog-users list given it should answer the user's >> question as well as David's concerns about uncertainty and hear-say. >> >> -Jordan >> >> ---------- Forwarded message ---------- >> From: <[email protected]> >> Date: Mon, May 19, 2014 at 9:52 AM >> Subject: Re: [logstash-users] Re: [rsyslog] Log Drop Issue >> To: [email protected] >> >> >> You are not allowed to post to this mailing list, and your message has >> been automatically rejected. If you think that your messages are >> being rejected in error, contact the mailing list owner at >> [email protected]. >> >> >> >> ---------- Forwarded message ---------- >> From: Jordan Sissel <[email protected]> >> To: logstash-users <[email protected]> >> Cc: rsyslog-users <[email protected]> >> Date: Mon, 19 May 2014 09:56:25 -0700 >> Subject: Re: [logstash-users] Re: [rsyslog] Log Drop Issue >> >> >> >> On Mon, May 19, 2014 at 7:33 AM, David Lang <[email protected]> wrote: >> >> the pstats output should also show the deliveries to logstash (at least >>> if >>> you are using anything close to a current version of rsyslog) >>> >>> This isn't the logstash support mailing list :-) but we've been hearing a >>> lot of people talking about how logstash will drop logs when it gets >>> behind, so that could be the problem. If you use RELP instead of just >>> TCP, >>> that will guarantee all the logs get to logstash, even if the TCP >>> connection gets cut and has to be reestablished. But if logstash is >>> dropping them after that, we won't be able to help much. >>> >>> >>> David; this email thread is on both logstash-users and rsyslog-users, >> so, >> in a way, this is the logstash support mailing list ;) >> >> As for "Logstash will drop logs when it gets behind" - this is neither a >> feature nor something I've observed in general. Logstash's inputs don't >> have any such code that says "Are we under load? OK, drop logs!" - >> logstash >> aims to never drop logs unless the operator has explicitly requested such >> dropping. >> >> I do agree that TCP isn't great for preventing message loss and that an >> application-level acknowledgement protocol such as RELP will help in >> transmission reliability. >> >> Back at the reported problem - message loss. Empirically, I cannot >> reproduce this message loss under several configurations. The examples >> below tests with and without rsyslog, with and without logstash filters; >> and in both scenarios, as I expected, all messages are received properly. >> I >> suspect something else is going on here. >> >> I did 4 tests: >> * seq | nc -> logstash (tcp -> tcp) -> nc -> /tmp/somefile >> * seq | logger -> rsyslog -> logstash (tcp -> tcp) -> nc -> /tmp/somefile >> * seq | nc -> logstash (tcp -> grok -> tcp) -> nc -> /tmp/somefile >> * seq | logger -> rsyslog -> logstash (tcp -> grok -> tcp) -> nc -> >> /tmp/somefile >> >> If logstash or rsyslog are dropping messages, I can't reproduce it. Full >> details of the test runs below. >> >> # Fun generator >> % seq -f "%g laksjdf lakjsdf lakjsdf lkasjdf laksjflakwjet laksjtl kasjdl >> kajsdlfkja lkwje tlkasjltkaj welktj alkdsj falskdjf laksjdf lkaj lkwj >> elkjatslkdjt alksdjf laksjd flkasjd flkaj lkjwe;taosiejtaow;eijt" 100000 | >> nc localhost 3333 >> # Logstash passing tcp to tcp: >> % bin/logstash -e 'input { tcp { port => 3333 } } output { tcp { codec => >> line { format => "%{message}" } host => localhost port => 3334 } }' >> # Receiver: >> % nc -l localhost 3334 >> # Result: >> % wc -l /tmp/logstash.logs >> 100000 /tmp/logstash.logs >> % tail -1 /tmp/logstash.logs >> 100000 laksjdf lakjsdf lakjsdf lkasjdf laksjflakwjet laksjtl kasjdl >> kajsdlfkja lkwje tlkasjltkaj welktj alkdsj falskdjf laksjdf lkaj lkwj >> elkjatslkdjt alksdjf laksjd flkasjd flkaj lkjwe;taosiejtaow;eijt >> >> Now, if I repeat the same process, but put rsyslog in between (seq -> nc >> -> >> rsyslog -> logstash -> nc -> file), the results are exactly the same. No >> events are lost. >> >> # Fun generator (now pipes to logger) >> % seq -f "%g laksjdf lakjsdf lakjsdf lkasjdf laksjflakwjet laksjtl kasjdl >> kajsdlfkja lkwje tlkasjltkaj welktj alkdsj falskdjf laksjdf lkaj lkwj >> elkjatslkdjt alksdjf laksjd flkasjd flkaj lkjwe;taosiejtaow;eijt" 100000 | >> logger -p local7.info >> # In my rsyslog config: >> local7:* @@localhost:3333 >> # Same logstash as previous test >> # Result: >> % wc -l /tmp/logstash.logs2 >> 100000 /tmp/logstash.logs2 >> % tail -1 /tmp/logstash.logs2 >> <190>May 19 16:38:38 oh-my jls: 100000 laksjdf lakjsdf lakjsdf lkasjdf >> laksjflakwjet laksjtl kasjdl kajsdlfkja lkwje tlkasjltkaj welktj alkdsj >> falskdjf laksjdf lkaj lkwj elkjatslkdjt alksdjf laksjd flkasjd flkaj >> lkjwe;taosiejtaow;eijt >> >> >> If I add a simple filter in the middle (grok to parse a number), all logs >> are successfully transmitted. >> % wc -l /tmp/logstash.logs.grok* >> 100000 /tmp/logstash.logs.grok # netcat -> logstash >> 100000 /tmp/logstash.logs.grok2 # logger -> rsyslog -> logstash >> >> -Jordan >> >> >> >> >>> we are generating logs from LOIC with 800 logs per second and sending it >>>> to >>>> rsyslog. >>>> >>>> rsyslog agent is receiving all the logs even it is showing some count on >>>> the upper side , i mean if i sent 3000 logs from LOIC it always shows me >>>> that it receives 3020 logs , don't know about these 20.(According to my >>>> imstat file) >>>> >>>> Now again rsyslog passes these logs to logstash which at the moment has >>>> 15 >>>> filters. The metric to count the logs recived at logstash is >>>> http://logstash.net/docs/1.4.1/filters/metrics#flush_interval , but it >>>> always showed me the less number as i received in rsyslog. At certain >>>> level >>>> for example ,,3000 logs/5 sec, count of rsyslog and logstash is same but >>>> after 3500 , 4000 there is a difference of 30 -40 logs between rsyslog >>>> and >>>> logstash , our connection between rsyslog to logstash is TCP , so there >>>> should be no reason for this difference , either logstash is unable to >>>> parse all the msgs or rsyslog is sending less msgs to logstash. >>>> >>>> Any clue? >>>> >>>> On Sunday, May 18, 2014, David Lang <[email protected]> wrote: >>>> >>>> If you are sending the right contents in the packet, LOIC should be >>>>> just >>>>> >>>>> fine. >>>> >>>> >>>>> Now, you haven't said what version of rsyslog you are using, your >>>>> >>>>> configuration, or even talked about what speed network you are on (let >>>> alone system specs), so figuring out what's wrong is not possible yet >>>> :-) >>>> >>>> >>>>> That said, we've had people getting around 400,000 packets/sec through >>>>> >>>>> rsyslog, so you are probably not hitting any fundamental limit at >>>> 10,000 >>>> packets/sec. But there are a lot of things to look at to figure this >>>> out. >>>> >>>> >>>>> start by configuring impstats (set it to dump stats every 10 sec for >>>>> now >>>>> >>>>> at these traffic levels) so that we can see the what's happening >>>> inside >>>> rsyslog (to see if the problem is getting the logs in, or out of >>>> rsyslog) >>>> >>>> >>>>> version info (rsyslog, distro, kernel) >>>>> >>>>> when you say you put things on a switch, is this a 100Mb switch, Gb >>>>> >>>>> switch, managed (so you can get stats from the switch)???? >>>> >>>> >>>>> what's your rsyslog config? >>>>> >>>>> what do you use for name resolution (/etc/hosts, local DNS, nearby DNS, >>>>> >>>>> ISP DNS, LDAP, ????) >>>> >>>> >>>>> UDP isn't necessarily faster than TCP, but it's a whole lot easier to >>>>> >>>>> setup a UDP test, so let's stick with that for now. There's nothing >>>> in the >>>> syslog protocol to add reliability to UDP >>>> >>>> >>>>> David Lang >>>>> >>>>> >>>>> On Sun, 18 May 2014, masoom alam wrote: >>>>> >>>>> 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. >>>> >>>> >>>>> _______________________________________________ >>>>>> >>>>> 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. >>>> >>>> >>>>> >>>>> >>>> >>>> -- >>> Remember: if a new user has a bad time, it's a bug in logstash. >>> --- You received this message because you are subscribed to the Google >>> Groups "logstash-users" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >>> >> _______________________________________________ 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.

