2015-07-14 17:32 GMT+02:00 Gerhardus Geldenhuis
<[email protected]>:
> Thanks David,
> I configured RELP but it has not made a difference...
>
> More specifically if I turn on the firewall by
>
>    1. running: systemctl start firewalld on the master server
>    2. and then start generating 40 000 log entries on the client, and wait
>    for it to finish
>    3. run: systemctl stop firewalld
>    4. Wait for logs to come over
>    5. Count logs
>
> I still get 24767 messages instead of 40000.

can you share the impstats data with us? We may get a better
understanding of what's going on based on it...

Rainer
>
> If however I physically turn of the network on the master machine using
> VMWare, I do get 40 000 messages when I connect the network back again.
>
> So why is RELP handling it like this surely if it does not get any response
> from the firewall for if the firewall sends it to a black hole then it
> should not mark messages as delivered. I am also willing to admit that my
> testing methodology is flawed but then I would like to understand why
> exactly and at the moment I feel my testing methodology represents a real
> world scenario which would make loosing logs a reality even if you use RELP.
>
> Importantly I enable the firewall before starting the log test so it should
> all be blocked from the very beginning.
>
> Regards
>
> On 14 July 2015 at 12:44, David Lang <[email protected]> wrote:
>
>> One issue you are probably running into is the fact that TCP is not
>> reliable enough. TCP is 'reliable' in that if a packet gets dropped it will
>> detect and re-send it as part of the same connection, but there is a
>> problem when the connection is interrupted (as it is in your test by the
>> firewall)
>>
>> When the sending rsyslog hands the message to the OS on the sending
>> system, it is told "yes, I have this and will deliver it" by the OS. But if
>> the OS is unable to deliver it (because the network connection breaks),
>> there is no way for the OS to go back to the sending application and say
>> "oops, I really can't get this through to the other end" so the messages
>> are lost.
>>
>> This is what the RELP protocol was developed to fix. It does application
>> level acks for the messages so that if the network is interrupted, it knows
>> what messages didn't get through and will re-send them. switch to
>> omrelp/imrelp instead of omfwd/imtcp and you should avoid loosing any
>> messages
>>
>> If you make the firewall send resets rather than dropping packets, the
>> sending machine will detect the problem faster.
>>
>>
>> This would account for some messages being lost between the time that you
>> ahve the firewall block the connection and the time that rsyslog detects
>> this. But once rsyslog detects this and starts queueing messages, those
>> messages should be sent when rsyslog re-establishes the connection.
>>
>> enable impstats writing stats rapidly (say every 10 seconds or so for
>> testing)
>>
>> then block the connection and send a small number of messages until
>> rsyslog logs locally that it's unable to send and the queue for the action
>> starts filling.
>>
>> then do your write of 40000 test messages
>>
>> then open the firewall and you should see all the messages get sent once
>> rsyslog retries and notices that the connection is open again.
>>
>> David Lang
>>
>>  On Tue, 14 Jul 2015, Gerhardus Geldenhuis wrote:
>>
>>  Date: Tue, 14 Jul 2015 11:20:46 +0100
>>> From: Gerhardus Geldenhuis <[email protected]>
>>> Reply-To: rsyslog-users <[email protected]>
>>> To: rsyslog-users <[email protected]>
>>> Subject: Re: [rsyslog] Disk queue to flush after restart
>>>
>>> Hi,
>>> I don't seem to be making as much progress as I would hope for. I now have
>>> the following client config:
>>> action( type="omfwd"
>>>        target="192.168.8.134"
>>>        port="514"
>>>        protocol="tcp"
>>>        queue.size="50000"
>>>        queue.type="LinkedList"
>>>        queue.spoolDirectory="/var/lib/rsyslog"
>>>        queue.filename="testforwardingqueue"
>>>        queue.lowwatermark="20000"
>>>        queue.highwatermark="35000"
>>>        queue.discardmark="50000"
>>>        queue.maxfilesize="1g"
>>>        queue.saveonshutdown="on"
>>> #       queue.fulldelaymark="2500"
>>>      )
>>>
>>> I have made the numbers smaller to be able to do testing that will finish
>>> in a reasonable amount of time.
>>>
>>> My process is:
>>>
>>>   1. Start firewall on master server to block all access.
>>>   2. On client server start logging using: for i in $(seq 1 40000); do
>>>   logger -p error "############### TESTING ########### SEQ001-${i}"; done
>>>   3. Wait for for loop to finish and check if all entries are contained
>>>   locally
>>>   4. watch 'ls -l /var/lib/rsyslog' to see if queue gets created.
>>>   5. Disable firewall on master
>>>   6. run logger -p error with one message to get logs going again
>>>   7. Wait for logs to arrive on master server
>>>   8. grep 'SEQ001' /var/log/messages -c
>>>
>>>
>>> The problem I am getting is that the number of messages I receive on the
>>> remote server does not correspond with what I get on the master server.
>>> I only get 24768 messages on the master server.
>>>
>>> Is there anything else that I have missed out of the configuration? I
>>> can't
>>> see anything that would cause my messages to not arrive. The queue file I
>>> specified grows in size but interestingly when I grep'ed it for SEQ005 I
>>> only get 15232 matches. I did the grep after re-enabling the firewall.
>>>
>>> I thought that it might be because syslog thinks my messages are the same
>>> and then marks them as duplicates. I then added:
>>> for i in $(seq 1 40000); do logger -p error "############### TESTING
>>> ########### SEQ005-${i}-$(openssl rand -base64 32)"; done
>>>
>>> to try and prevent that. However if the firewall is not enabled then all
>>> 40k messages arrive on the master server.
>>>
>>> Any help would be appreciated.
>>>
>>> Regards
>>>
>>> On 13 July 2015 at 14:20, Rainer Gerhards <[email protected]>
>>> wrote:
>>>
>>>  2015-07-13 15:18 GMT+02:00 Gerhardus Geldenhuis
>>>> <[email protected]>:
>>>>
>>>>> Hi,
>>>>> Thanks for the replies. I think the bulk of my problem was mixing old
>>>>> and
>>>>> new config and I much further along to get something working. I have
>>>>> discovered a few other niggles but will report back once I have
>>>>> something
>>>>> working properly. As far as pull requests go, I would really consider
>>>>>
>>>> doing
>>>>
>>>>> so but as always time is a factor.
>>>>>
>>>>
>>>> yup - for everyone ;) And that is what it is like it currently is ;)
>>>>
>>>>  It does bug me so much that I must just
>>>>> end up doing it for the documentation. I will give debug mode a go.
>>>>>
>>>>> Regards
>>>>>
>>>>> On 13 July 2015 at 13:17, Rainer Gerhards <[email protected]>
>>>>>
>>>> wrote:
>>>>
>>>>>
>>>>>  2015-07-10 13:40 GMT+02:00 Gerhardus Geldenhuis
>>>>>> <[email protected]>:
>>>>>>
>>>>>>> Hi
>>>>>>> I am struggling a bit to get rsyslog to work as described.
>>>>>>>
>>>>>>> <rant>
>>>>>>> Firstly the documentation is a struggle. There is some reference to
>>>>>>>
>>>>>> old
>>>>
>>>>> and
>>>>>>
>>>>>>> new style configuration but no clear differentiation between the two.
>>>>>>>
>>>>>> What
>>>>>>
>>>>>>> makes it more confusing is that documents like
>>>>>>> http://www.rsyslog.com/doc/queues.html then refers to what looks like
>>>>>>>
>>>>>> the
>>>>>>
>>>>>>> old style of config and none of the examples contains new syntax
>>>>>>>
>>>>>> examples.
>>>>>>
>>>>>>>
>>>>>>> There was also an expectation that the new rsyslog package would
>>>>>>>
>>>>>> install
>>>>
>>>>> a
>>>>>>
>>>>>>> new style config but that turned out to be not the case. I deleted the
>>>>>>> config file and did a yum reinstall just to be sure.
>>>>>>> </rant>
>>>>>>>
>>>>>>
>>>>>> well, this is open source. Pull requests are always appreciated,
>>>>>> anything else happens as time permits ;)
>>>>>>
>>>>>>
>>>>>>> OS: CentOS 7
>>>>>>> RSyslog:
>>>>>>> rsyslog-8.11.0-1.el7.x86_64
>>>>>>> rsyslog-relp-8.11.0-1.el7.x86_64
>>>>>>> rsyslog-gnutls-8.11.0-1.el7.x86_64
>>>>>>>
>>>>>>> So basically what I am trying to achieve is the following:
>>>>>>>
>>>>>>>    - Log remotely to a rsyslog server
>>>>>>>    - Turn off the remote server ( via firewall )
>>>>>>>    - Have logs be cached locally and saved to disk
>>>>>>>    - Restart client server
>>>>>>>    - Turn remote server back on
>>>>>>>    - See cached logs appear in the remote server
>>>>>>>
>>>>>>> It does not work...
>>>>>>>
>>>>>>>    - So more specifically, if I turn the firewall off, log a few
>>>>>>>
>>>>>> messages
>>>>
>>>>>    and turn it back on then the caching works and I get the messages.
>>>>>>>    - If however I restart the client server, the logs never make it to
>>>>>>>
>>>>>> the
>>>>>>
>>>>>>>    remote sever, I can see the logs in the cached file but it does not
>>>>>>>
>>>>>> get
>>>>>>
>>>>>>>    send to the remote server.
>>>>>>>
>>>>>>> My config on the client:
>>>>>>> #### MODULES ####
>>>>>>> module(load="imuxsock") # provides support for local system logging
>>>>>>>
>>>>>> (e.g.
>>>>
>>>>> via logger command)
>>>>>>> module(load="imklog")   # provides kernel logging support (previously
>>>>>>>
>>>>>> done
>>>>>>
>>>>>>> by rklogd)
>>>>>>>
>>>>>>> #### GLOBAL DIRECTIVES ####
>>>>>>> $IncludeConfig /etc/rsyslog.d/*.conf
>>>>>>>
>>>>>>> #### RULES ####
>>>>>>>
>>>>>>> *.info;mail.none;authpriv.none;cron.none
>>>>>>>
>>>>>> /var/log/messages
>>>>
>>>>> authpriv.*
>>>>>>>
>>>>>> /var/log/secure
>>>>
>>>>> mail.*
>>>>>>>
>>>>>> /var/log/maillog
>>>>
>>>>> cron.*                                                  /var/log/cron
>>>>>>> *.emerg                                                 :omusrmsg:*
>>>>>>> uucp,news.crit
>>>>>>>
>>>>>> /var/log/spooler
>>>>
>>>>> local7.*
>>>>>>>
>>>>>> /var/log/boot.log
>>>>
>>>>>
>>>>>>> # ### begin forwarding rule ###
>>>>>>> $WorkDirectory /var/lib/rsyslog # where to place spool files
>>>>>>> $MainMsgQueueFileName LocalCaching # unique name prefix for spool
>>>>>>>
>>>>>> files
>>>>
>>>>> $MainMsgQueueSaveOnShutdown on # save messages to disk on shutdown
>>>>>>> # $MainMsgQueueType LinkedList
>>>>>>> $MainMsgQueueType Disk
>>>>>>> $MainMsgResumeRetryCount -1    # infinite retries if host is down
>>>>>>>
>>>>>>> *.* @@192.168.8.253:514
>>>>>>>
>>>>>>> # ### end of the forwarding rule ###
>>>>>>>
>>>>>>> My config on the remote server:
>>>>>>> module(load="imuxsock") # provides support for local system logging
>>>>>>>
>>>>>> (e.g.
>>>>
>>>>> via logger command)
>>>>>>> module(load="imklog")   # provides kernel logging support (previously
>>>>>>>
>>>>>> done
>>>>>>
>>>>>>> by rklogd)
>>>>>>> module(load="imtcp") # needs to be done just once
>>>>>>> input(type="imtcp" port="514")
>>>>>>> $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
>>>>>>> $IncludeConfig /etc/rsyslog.d/*.conf
>>>>>>> *.info;mail.none;authpriv.none;cron.none
>>>>>>>
>>>>>> /var/log/messages
>>>>
>>>>> authpriv.*
>>>>>>>
>>>>>> /var/log/secure
>>>>
>>>>> mail.*
>>>>>>>
>>>>>> /var/log/maillog
>>>>
>>>>> cron.*                                                  /var/log/cron
>>>>>>> *.emerg                                                 :omusrmsg:*
>>>>>>> uucp,news.crit
>>>>>>>
>>>>>> /var/log/spooler
>>>>
>>>>> local7.*
>>>>>>>
>>>>>>> Any pointers would be appreciated. I am hoping I am missing something
>>>>>>> obvious or misunderstanding what I am suppose to be doing.
>>>>>>>
>>>>>>>
>>>>>> You should run rsyslog in such a situation in debug mode.From the
>>>>>> debug log, we can see why it thinks it can't deliver to the remote
>>>>>> system (well, hopefully ;)).
>>>>>>
>>>>>> HTH
>>>>>> Rainer
>>>>>>
>>>>>>  Regards
>>>>>>>
>>>>>>> --
>>>>>>> Gerhardus Geldenhuis
>>>>>>> _______________________________________________
>>>>>>> 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.
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Gerhardus Geldenhuis
>>>>> _______________________________________________
>>>>> 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.
>>>>
>>>>
>>>
>>>
>>>
>>>  _______________________________________________
>> 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.
>>
>
>
>
> --
> Gerhardus Geldenhuis
> _______________________________________________
> 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.

Reply via email to