Saw this error message below several times, not every time though:
rsyslogd-2040: fatal error on disk queue 'action 22 queue[DA]', emergency
switch to direct mode [try http://www.rsyslog.com/e/2040 ]

I also noticed that .qi file in the disk queue directory doesn't show up
sometimes. Is this file required for disk queue to function correctly? I
did notice that disk queue flushing was working when the files was absent
in several cases.

Thanks,
Fajun


On Thu, May 9, 2013 at 4:50 PM, David Lang <[email protected]> wrote:

> On Thu, 9 May 2013, Fajun Chen wrote:
>
>  Resending original reply without debugging logs since it was blocked
>> waiting for approval (message size over 512k).
>>
>> Thanks,
>> Fajun
>>
>> On Thu, May 9, 2013 at 2:52 PM, Fajun Chen <[email protected]> wrote:
>>
>>
>>>
>>>
>>> On Thu, May 9, 2013 at 11:34 AM, David Lang <[email protected]> wrote:
>>>
>>>  On Thu, 9 May 2013, Fajun Chen wrote:
>>>>
>>>>  On Wed, May 8, 2013 at 9:22 PM, David Lang <[email protected]> wrote:
>>>>
>>>>>
>>>>>  On Wed, 8 May 2013, Fajun Chen wrote:
>>>>>
>>>>>>
>>>>>>  iptables block setting didn't work for some reason.
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>  what do the iptables rules on that system look like?
>>>>>>
>>>>>> without seeing them, my guess is that there is a rule already there
>>>>>> that
>>>>>> allows packets related to a known connection that are getting applied
>>>>>> (and
>>>>>> therefor accepting the packets) before the deny rule you are trying to
>>>>>> put
>>>>>> in place takes effect.
>>>>>>
>>>>>>
>>>>>
>>>>> The same problem exists on 5.8.6 with iptables blocking. One minor
>>>>> detail:
>>>>> the queued files reached the limit of 96M, it's reduced to 95M after
>>>>> the
>>>>> firewall was unblocked, but it stays at 95M on the client without
>>>>> flushing.
>>>>> I can use logger to send new log messages to the server, so network
>>>>> connection is not an issue.
>>>>>
>>>>> 7.3.14 seems to be working with iptables blocking.
>>>>>
>>>>>
>>>> hmm, I don't understand how it could be different for different versions
>>>> of rsyslog. the iptables filtering should be happening by the OS and
>>>> wouldn't care what version of software is running.
>>>>
>>>
>>>
>>> iptables filtering issue had been resolved by restarting rsyslog  for the
>>> firewall changes to take effect.
>>>
>>
> Ok, that is almost certinly the 'established connection' thing that I was
> speculating about.
>
>
>  rsyslog version has nothing to do with iptables filtering. What I referred
>>> to was that rsyslog 5.8.6 doesn't flush queued files while 7.3.14 does
>>> when
>>> iptables filtering was changed from blocking to unblocking.
>>>
>>
> ahh, Ok.
>
> At this point 5.8.6 is old enough that it's well past being supported, so
> let's work on the current version.
>
>
>
>>>>
>>>>   As a alternative testing, I stopped rsylogd on the remote server and
>>>> the
>>>>
>>>>>
>>>>>>  logs were queued on the client as expected. I started rsyslog on the
>>>>>>> remote
>>>>>>> server once the disk queue on the client is filled up. I did see the
>>>>>>> queue
>>>>>>> files were flushed to the remote server once rsyslog is back to
>>>>>>> service. So
>>>>>>> this seems to be related to rsyslog configuration change.
>>>>>>>
>>>>>>>
>>>>>>>  My guess (without knowing the code well) is that the queued
>>>>>> messages are
>>>>>> somehow queued for the specific destination (IIRC you had this queue
>>>>>> setup
>>>>>> as an action queue, not as the main queue, you posted your config,
>>>>>> but I
>>>>>> have already deleted those messages). I'd be curious to see if you
>>>>>> have
>>>>>> the
>>>>>> same problem spilling the main queue to disk.
>>>>>>
>>>>>>
>>>>>
>>>>> Just for your reference, here's my rsyslog configuration:
>>>>>
>>>>> # start forwarding rule 1 of 1
>>>>> $ActionQueueType LinkedList
>>>>> $ActionQueueFileName srvrfwd
>>>>> $ActionResumeRetryCount -1
>>>>> $ActionQueueSaveOnShutdown on
>>>>> $ActionQueueMaxDiskSpace  100000000
>>>>> $ActionQueueSize 200000   # Tried 100000 as well
>>>>> $ActionQueueHighWaterMark 600
>>>>> $ActionQueueLowWaterMark  200
>>>>> $ActionQueueTimeoutEnqueue 1
>>>>>
>>>>> #local5.* :omrelp:127.255.255.1:20514   # Invalid IP to trigger log
>>>>> buffering
>>>>> local5.* :omrelp:172.17.5.28:20514         # Real IP to trigger log
>>>>> forwarding
>>>>> # end forwarding rule 1 of 1
>>>>>
>>>>>
>>>>>
>>>>>   On the other hand, as I noted in the first report, when I changed
>>>>>> rsyslog
>>>>>>
>>>>>>  configuration before disk space limit is reached, the queued files
>>>>>>> were
>>>>>>> flushed to the remote server without issues.
>>>>>>>
>>>>>>>
>>>>>>>  very interesting, and probably a bug.
>>>>>>
>>>>>>
>>>>>
>>>>> Let me know if you need debugging logs to troubleshoot it.
>>>>>
>>>>>
>>>> Ranier will need probably need to get involved with this, but he's super
>>>> busy the next 2-3 weeks with a very high priority deadline (the "every
>>>> waking hour" type of project)
>>>>
>>>> It wouldn't hurt to take a look at the debug logs for the copy started
>>>> after the config change.
>>>>
>>>>
>>> Rsyslog debugging log is attached here. This was collected by running
>>> "rsyslogd -dn" when the remote server IP was set to valid. Please let me
>>> know if you want me to submit bug tracking item.
>>>
>>
> you can e-mail it to me directly
>
>
>
>>>> by the way, are you sure you are doing a full restart after the config
>>>> change? a -HUP does not cause rsyslog to do a full restart and re-read
>>>> it's
>>>> config file, it just causes rsyslog to close and re-open it's outputs (a
>>>> full restart takes a long time and can cause messages to be lost)
>>>>
>>>
>>>
>>> I did "service rsyslog restart" after the config change. "Kill timeout 5"
>>> is set in /etc/init/rsyslog.conf. I'm not sure if this timeout setting
>>> could make a difference.
>>>
>>
> this should do it. but just to be sure, do a stop (make sure it's finished
> shuttng down), then a start
>
>
>
>>>>
>>>>   We need the initial startup logs to be queued before remote logging
>>>>
>>>>> server
>>>>>>
>>>>>>  is set. Switching from invalid IP to valid IP in rsyslog
>>>>>>> configuration
>>>>>>> was
>>>>>>> chosen to meet this requirement.
>>>>>>>
>>>>>>>
>>>>>>>  Is there any chance of re-ordering the startup sequence to get the
>>>>>> config
>>>>>> first, then start rsyslog, then start everything else? kernel messages
>>>>>> will
>>>>>> get queued for quite a while, so they shouldn't be an issue. The only
>>>>>> issue
>>>>>> would be any other applications that need to write logs very early on.
>>>>>>
>>>>>>
>>>>>>  The problem is that we don't know remote logging server at startup,
>>>>> so we
>>>>> need the capability to buffer the logs until the remote server is set
>>>>> by
>>>>> user later. Understood that the logs could get lost after the disk
>>>>> space
>>>>> limit is reached. Is there any way to achieve this without rsyslog
>>>>> configuration change?
>>>>>
>>>>>
>>>> one possibility would be to just write the logs to a file and then use
>>>> imfile to read this file later to send them upstream, but I'm not sure
>>>> if
>>>> imfile has gained the capability to get all it's data from the file yet.
>>>>
>>>> Historically, imfile only read the message content from the file, it
>>>> generated the timestamp, hostname, priority, and severity information
>>>> itself. I know there was talk about having an option to have imfile
>>>> parse
>>>> this from the file, but I don't know if it ever happened.
>>>>
>>>> If nothing else, you could write messages to a file with the
>>>> RSYSLOG_ForwardFormat and then use netcat or similar to read the file
>>>> and
>>>> spit it out over the network later, but that wouldn't be able to use
>>>> RELP
>>>> to send it. I guess you could use netcat to send it to a UDP listener on
>>>> localhost and then have the logs sent out via RELP from there.
>>>>
>>>> There should be some way to feed the logs to /dev/log, but I'm not sure
>>>> exactly how to do that.
>>>>
>>>> Thanks for all your suggestions. Data completeness and integrity is very
>>>>
>>> important in our use cases. I'm not sure how some of the logging
>>> information such as originial timestamp would change when it's routed
>>> around. If this is confirmed to be a bug and can be fixed in 1-2 months,
>>> I
>>> would much rather to wait for the fix.
>>>
>>
> Well, if you feed the data to syslog with the timestamp, it will preserve
> the existing timestamp by default.
>
> David Lang
>
>  Thanks,
>>> Fajun
>>>
>>>
>>>>
>>>>  On Wed, May 8, 2013 at 11:56 AM, David Lang <[email protected]> wrote:
>>>>
>>>>>
>>>>>>>  On Wed, 8 May 2013, Fajun Chen wrote:
>>>>>>>
>>>>>>>
>>>>>>>>  I upgraded ubuntu rsyslog to 7.3.14 and still got the same issue.
>>>>>>>>
>>>>>>>>
>>>>>>>>  My test procedure:
>>>>>>>>> Clean log file. Set remote host IP to 127.255.255.1 (invalid IP) in
>>>>>>>>> rsyslog conf. service rsyslog restart followed by logger in a
>>>>>>>>> loop. The
>>>>>>>>> disk queue files are buffered but are limited to 96M overall. Set
>>>>>>>>> remote
>>>>>>>>> host IP to valid IP. service rsyslog restart. I expect the queued
>>>>>>>>> files to
>>>>>>>>> be flushed to the remote host but these files are still in the
>>>>>>>>> queuing
>>>>>>>>> directory.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  This may be a silly thought, but the fact that you are changing
>>>>>>>>> the
>>>>>>>>>
>>>>>>>> configuration between these two steps could be part of the problem.
>>>>>>>>
>>>>>>>> I would suggest that instead of changing the config to
>>>>>>>> enable/disable
>>>>>>>> sending the logs that you instead keep the rsyslog config the same
>>>>>>>> and set
>>>>>>>> iptables rules to block and unblock the communications.
>>>>>>>>
>>>>>>>>  ______________________________****_________________
>>>>>>>
>>>>>> rsyslog mailing list
>>>> http://lists.adiscon.net/****mailman/listinfo/rsyslog<http://lists.adiscon.net/**mailman/listinfo/rsyslog>
>>>> <http:**//lists.adiscon.net/mailman/**listinfo/rsyslog<http://lists.adiscon.net/mailman/listinfo/rsyslog>
>>>> >
>>>> http://www.rsyslog.com/****professional-services/<http://www.rsyslog.com/**professional-services/>
>>>> <http://**www.rsyslog.com/professional-**services/<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://lists.adiscon.net/mailman/listinfo/rsyslog>
>> http://www.rsyslog.com/**professional-services/<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://lists.adiscon.net/mailman/listinfo/rsyslog>
> http://www.rsyslog.com/**professional-services/<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