Hello,
I'm using central logging using RELP+TLS with disk assisted queues on the
client. When I:
1) stop rsyslog on the server (or just drop all packets at the firewall to
simulate network loss)
2) send a few messages to syslog with "logger" on the client (rsyslog
notices the relp server is down and puts the messages in the queue)
3) then restart rsyslog on the client
the first message (sometimes I've noticed two) sent to logger while the
server was unreachable is lost and does not get sent to the central server.
If I *do not* restart rsyslog on the client while the central server is
unreachable, the message is not lost. This happens with both LinkedList and
Disk queues.
It's not uncommon that the client might be restarted during a time when it
has already lost the network connection to the central server. Am I missing
a config that might fix this?
Here are my example logs showing the message loss:
I start off with both central server and rsyslog client running normally
with RELP working fine:
============================================
root@rsyslog-test:/etc# logger upnow
root@rsyslog-test:/etc# service rsyslog restart
rsyslog stop/waiting
rsyslog start/running, process 23909
root@rsyslog-test:/etc# logger upnow2
Works fine. Central server receives both messages and sees the client
restart:
============================================
root@relp-server /etc # tail /var/log/relp_log
2013-07-19T17:07:55.757080-04:00 rsyslog-test logger: upnow
2013-07-19T17:08:13.439180-04:00 rsyslog-test rsyslogd: [origin
software="rsyslogd" swVersion="7.5.2" x-pid="23883"
x-info="http://www.rsyslog.com"] exiting on signal 15.
2013-07-19T17:08:13.493691-04:00 rsyslog-test rsyslogd: [origin
software="rsyslogd" swVersion="7.5.2" x-pid="23909"
x-info="http://www.rsyslog.com"] start
2013-07-19T17:08:15.894360-04:00 rsyslog-test logger: upnow2
Now I stop the central log server:
============================================
root@relp-server /etc # service rsyslog stop
rsyslog stop/waiting
Log some messages to syslog on the client with "logger" and stop rsyslog on
the client:
============================================
root@rsyslog-test:/etc# logger downnow1
root@rsyslog-test:/etc# logger downnow2
root@rsyslog-test:/etc# logger downnow3
root@rsyslog-test:/etc# service rsyslog stop
rsyslog stop/waiting
Since I have all messages being logged locally on the client I can see that
my messages were sent to syslog and syslog detected the central server was
down after I logged the 'downnow2' message:
============================================
root@rsyslog-test:/etc# tail /var/log/rsyslog-test
2013-07-19T17:07:20.413878-04:00 rsyslog-test rsyslogd: [origin
software="rsyslogd" swVersion="7.5.2" x-pid="23883"
x-info="http://www.rsyslog.com"] start
2013-07-19T17:07:55.757080-04:00 rsyslog-test logger: upnow
2013-07-19T17:08:13.439180-04:00 rsyslog-test rsyslogd: [origin
software="rsyslogd" swVersion="7.5.2" x-pid="23883"
x-info="http://www.rsyslog.com"] exiting on signal 15.
2013-07-19T17:08:13.493691-04:00 rsyslog-test rsyslogd: [origin
software="rsyslogd" swVersion="7.5.2" x-pid="23909"
x-info="http://www.rsyslog.com"] start
2013-07-19T17:08:15.894360-04:00 rsyslog-test logger: upnow2
2013-07-19T17:08:31.045190-04:00 rsyslog-test logger: downnow1
2013-07-19T17:08:48.446359-04:00 rsyslog-test logger: downnow2
2013-07-19T17:08:48.446601-04:00 rsyslog-test rsyslogd-2353:
omrelp[10.10.5.1:20514]: error 'TLS record write failed [gnutls error -53:
Error in the push function.]', object 'conn to srvr 10.10.5.1:20514' -
action may not work as intended [try http://www.rsyslog.com/e/2353 ]
2013-07-19T17:08:54.453092-04:00 rsyslog-test logger: downnow3
2013-07-19T17:09:13.302262-04:00 rsyslog-test rsyslogd: [origin
software="rsyslogd" swVersion="7.5.2" x-pid="23909"
x-info="http://www.rsyslog.com"] exiting on signal 15.
I can see the messages except the first 'downnow1' are in the disk queue
file on the client:
============================================
root@rsyslog-test:/etc# cat /var/spool/rsyslog/queue/relpy.00000001
<Obj:1:msg:1:
+iProtocolVersion:2:1:0:
+iSeverity:2:1:3:
+iFacility:2:1:5:
+msgFlags:2:1:1:
+ttGenTime:2:10:1374268128:
+tRcvdAt:3:34:2:2013:7:19:17:8:48:446601:6:-:4:0:
+tTIMESTAMP:3:34:2:2013:7:19:17:8:48:446601:6:-:4:0:
+pszTAG:1:14:rsyslogd-2353::
+pszRawMsg:1:215:omrelp[10.10.5.1:20514]: error 'TLS record write failed
[gnutls error -53: Error in the push function.]', object 'conn to srvr
10.10.5.1:20514' - action may not work as intended [try
http://www.rsyslog.com/e/2353 ]:
+pszHOSTNAME:1:17:rsyslog-test:
+pszInputName:1:8:rsyslogd:
+pszRcvFrom:1:17:rsyslog-test:
+pszRcvFromIP:1:9:127.0.0.1:
+offMSG:2:1:0:
>End
.
<Obj:1:msg:1:
+iProtocolVersion:2:1:0:
+iSeverity:2:1:5:
+iFacility:2:1:1:
+msgFlags:2:1:4:
+ttGenTime:2:10:1374268134:
+tRcvdAt:3:34:2:2013:7:19:17:8:54:453092:6:-:4:0:
+tTIMESTAMP:3:34:2:2013:7:19:17:8:54:453092:6:-:4:0:
+pszTAG:1:7:logger::
+pszRawMsg:1:36:<13>Jul 19 17:08:54 logger: downnow3:
+pszInputName:1:8:imuxsock:
+pszRcvFrom:1:17:rsyslog-test:
+pszRcvFromIP:1:9:127.0.0.1:
+offMSG:2:2:27:
>End
.
<Obj:1:msg:1:
+iProtocolVersion:2:1:0:
+iSeverity:2:1:6:
+iFacility:2:1:5:
+msgFlags:2:1:1:
+ttGenTime:2:10:1374268153:
+tRcvdAt:3:34:2:2013:7:19:17:9:13:302262:6:-:4:0:
+tTIMESTAMP:3:34:2:2013:7:19:17:9:13:302262:6:-:4:0:
+pszTAG:1:9:rsyslogd::
+pszRawMsg:1:115: [origin software="rsyslogd" swVersion="7.5.2"
x-pid="23909" x-info="http://www.rsyslog.com"] exiting on signal 15.:
+pszHOSTNAME:1:17:rsyslog-test:
+pszInputName:1:8:rsyslogd:
+pszRcvFrom:1:17:rsyslog-test:
+pszRcvFromIP:1:9:127.0.0.1:
+offMSG:2:1:0:
>End
.
<Obj:1:msg:1:
+iProtocolVersion:2:1:0:
+iSeverity:2:1:5:
+iFacility:2:1:1:
+msgFlags:2:1:4:
+ttGenTime:2:10:1374268128:
+tRcvdAt:3:34:2:2013:7:19:17:8:48:446359:6:-:4:0:
+tTIMESTAMP:3:34:2:2013:7:19:17:8:48:446359:6:-:4:0:
+pszTAG:1:7:logger::
+pszRawMsg:1:36:<13>Jul 19 17:08:48 logger: downnow2:
+pszInputName:1:8:imuxsock:
+pszRcvFrom:1:17:rsyslog-test:
+pszRcvFromIP:1:9:127.0.0.1:
+offMSG:2:2:27:
>End
.
Now I restart rsyslog on the central server and the client, and log a few
more messages on the client:
============================================
root@relp-server /etc # service rsyslog start
rsyslog start/running, process 331
============================================
root@rsyslog-test:/etc# service rsyslog start
rsyslog start/running, process 23971
root@rsyslog-test:/etc# logger upagain
root@rsyslog-test:/etc# logger upagain2
root@rsyslog-test:/etc# logger upagain3
I check the central server logs and all messages except the lost "downnow1"
message are successfully received:
============================================
root@relp-server /etc # tail -n 20 /var/log/relp_log
2013-07-19T17:07:55.757080-04:00 rsyslog-test logger: upnow
2013-07-19T17:08:13.439180-04:00 rsyslog-test rsyslogd: [origin
software="rsyslogd" swVersion="7.5.2" x-pid="23883"
x-info="http://www.rsyslog.com"] exiting on signal 15.
2013-07-19T17:08:13.493691-04:00 rsyslog-test rsyslogd: [origin
software="rsyslogd" swVersion="7.5.2" x-pid="23909"
x-info="http://www.rsyslog.com"] start
2013-07-19T17:08:15.894360-04:00 rsyslog-test logger: upnow2
2013-07-19T17:08:48.446601-04:00 rsyslog-test rsyslogd-2353:
omrelp[10.10.5.1:20514]: error 'TLS record write failed [gnutls error -53:
Error in the push function.]', object 'conn to srvr 10.10.5.1:20514' -
action may not work as intended [try http://www.rsyslog.com/e/2353 ]
2013-07-19T17:08:54.453092-04:00 rsyslog-test logger: downnow3
2013-07-19T17:09:13.302262-04:00 rsyslog-test rsyslogd: [origin
software="rsyslogd" swVersion="7.5.2" x-pid="23909"
x-info="http://www.rsyslog.com"] exiting on signal 15.
2013-07-19T17:08:48.446359-04:00 rsyslog-test logger: downnow2
2013-07-19T17:10:15.245473-04:00 rsyslog-test rsyslogd: [origin
software="rsyslogd" swVersion="7.5.2" x-pid="23971"
x-info="http://www.rsyslog.com"] start
2013-07-19T17:10:35.210411-04:00 rsyslog-test logger: upagain
2013-07-19T17:10:41.354935-04:00 rsyslog-test logger: upagain2
2013-07-19T17:10:48.602667-04:00 rsyslog-test logger: upagain3
Here is the relp server config:
============================================
root@relp-server /etc # cat rsyslog.conf
$PrivDropToUser syslog
$PrivDropToGroup syslog
$AbortOnUncleanConfig off
$umask 0000 # Ensure umask is reset
$DirCreateMode 0700
$FileCreateMode 0644
$DirOwner syslog
$DirGroup syslog
# DynaFile settings
$FileOwner syslog
$FileGroup syslog
$FailOnChownFailure on
$DynaFileCacheSize 100 # a cache of 100 files at most
$MaxOpenFiles 200000
$MaxMessageSize 64k
$MainMsgQueueSize 100000
$DropTrailingLFOnReception on
$Escape8BitCharactersOnReceive off
$EscapeControlCharactersOnReceive on
$RepeatedMsgReduction off # log every message
$DropMsgsWithMaliciousDnsPTRRecords off
module(load="imuxsock")
module(load="imrelp" ruleset="relp")
input(type="imrelp" port="20514" tls="on"
tls.caCert="/etc/rsyslog.certs/ca.pem"
tls.myCert="/etc/rsyslog.certs/server.cert"
tls.myPrivKey="/etc/rsyslog.certs/server.key"
tls.authMode="name"
tls.permittedpeer=["rsyslog-test.mydomain.com"]
)
ruleset (name="relp") {
$RulesetCreateMainQueue on
action(type="omfile" file="/var/log/relp_log")
}
$IncludeConfig /etc/rsyslog.d/
*.* /var/log/syslog
And the client config:
============================================
root@rsyslog-test:/etc# cat rsyslog.conf
module(load="imuxsock")
module(load="omrelp")
module(load="imtcp")
input(type="imtcp" port="514")
$WorkDirectory /var/spool/rsyslog/queue # default location for work (spool)
files
$MaxMessageSize 64k
$MainMsgQueueFileName mainq # set file name, also enables disk mode
$MainMsgQueueType LinkedList
$MainMsgQueueSaveOnShutDown on
$MainMsgQueueMaxDiskSpace 40g
$MainMsgQueueSize 8000000
$ActionSendResendLastMsgOnReconnect on
action(type="omrelp" target="10.10.5.1" port="20514" tls="on"
tls.compression="on"
tls.caCert="/etc/rsyslog.certs/ca.pem"
tls.myCert="/etc/rsyslog.certs/rsyslog-test.cert"
tls.myPrivKey="/etc/rsyslog.certs/rsyslog-test.key"
tls.authmode="name"
tls.permittedpeer=["log.mydomain.com"]
queue.filename="relpy"
queue.maxdiskspace="10g"
queue.saveonshutdown="on"
queue.type="linkedlist"
queue.maxfilesize="20m"
action.resumeretrycount="-1"
)
*.* /var/log/rsyslog-test
--
Dave
_______________________________________________
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.