Hello,

I'm having an issue where messages sent from rsyslog relays via RELP to
rsyslog collectors that write them to disk via DynFile (%HOSTNAME%
template) are not looking right and causing problems. I don't think the
RELP protocol is negotiating properly as the syslog messages are not
seen on the wire and the queue is building up on the relays.

$ ls -l /var/spool/rsyslog/
total 69892
-rw------- 1 root root 1049135 Sep 24 11:36 rsyslog-buffer.00000001
-rw------- 1 root root 1048593 Sep 24 12:09 rsyslog-buffer.00000002
-rw------- 1 root root 1049021 Sep 18 22:19 rsyslog-buffer.00000003
-rw------- 1 root root 1049181 Sep 19 00:32 rsyslog-buffer.00000004
-rw------- 1 root root 1048907 Sep 19 02:01 rsyslog-buffer.00000005
-rw------- 1 root root 1049049 Sep 19 04:13 rsyslog-buffer.00000006
-rw------- 1 root root 1048661 Sep 19 06:25 rsyslog-buffer.00000007
....

Systems are running compiled with RELP via rsyslog's rpm repo.
$ rsyslogd -v
rsyslogd 7.4.4, compiled with:
        FEATURE_REGEXP:                         Yes
        FEATURE_LARGEFILE:                      No
        GSSAPI Kerberos 5 support:              Yes
        FEATURE_DEBUG (debug build, slow code): No
        32bit Atomic operations supported:      Yes
        64bit Atomic operations supported:      Yes
        Runtime Instrumentation (slow code):    No
        uuid support:                           Yes

Here is dump of the syslog messages seen by the collectors. This message is
seen over and over.

115, options [nop,nop,TS val 141682 ecr 152580], length 96
        0x0000:  4500 0094 c32b 4000 4006 2585 0a8e 9e47  E....+@.@.%....G
        0x0010:  0a8e 9e50 e6a9 0202 6808 ea5c 8961 44fd  ...P....h..\.aD.
        0x0020:  8018 0073 5936 0000 0101 080a 0002 2972  ...sY6........)r
        0x0030:  0002 5404 3120 6f70 656e 2038 3520 7265  ..T.1.open.85.re
        0x0040:  6c70 5f76 6572 7369 6f6e 3d30 0a72 656c  lp_version=0.rel
        0x0050:  705f 736f 6674 7761 7265 3d6c 6962 7265  p_software=libre
        0x0060:  6c70 2c31 2e30 2e36 2c68 7474 703a 2f2f  lp,1.0.6,http://
        0x0070:  6c69 6272 656c 702e 6164 6973 636f 6e2e  librelp.adiscon.
        0x0080:  636f 6d0a 636f 6d6d 616e 6473 3d73 7973  com.commands=sys
        0x0090:  6c6f 670a                                log.

Each of the rsyslog machines have multiple connections that end up in
TIME_WAIT state,
over and over which suggests that the relays connect to the collectors but
the application
data isn't liked and thus connection finishes and is then retried again.

$ netstat -an -A inet | grep 514
tcp        0      0 0.0.0.0:514                 0.0.0.0:*
LISTEN
tcp        0      0 10.142.158.71:55249         10.142.158.81:514
TIME_WAIT
tcp        0      0 10.142.158.71:59079         10.142.158.80:514
TIME_WAIT
tcp        0      0 10.142.158.71:55239         10.142.158.81:514
TIME_WAIT
tcp        0      0 10.142.158.71:59073         10.142.158.80:514
TIME_WAIT
tcp        0      0 10.142.158.71:55247         10.142.158.81:514
TIME_WAIT
tcp        0      0 10.142.158.71:59071         10.142.158.80:514
TIME_WAIT
tcp        0      0 10.142.158.71:59077         10.142.158.80:514
TIME_WAIT
tcp        0      0 10.142.158.71:59069         10.142.158.80:514
TIME_WAIT
tcp        0      0 10.142.158.71:55241         10.142.158.81:514
TIME_WAIT
tcp        0      0 10.142.158.71:55251         10.142.158.81:514
ESTABLISHED
tcp        0      0 10.142.158.71:55245         10.142.158.81:514
TIME_WAIT
tcp        0      0 10.142.158.71:55243         10.142.158.81:514
TIME_WAIT
tcp        0      0 10.142.158.71:59075         10.142.158.80:514
TIME_WAIT
udp        0      0 0.0.0.0:514                 0.0.0.0:*


RSYSLOG RELAY CONFIGURATION:
Relays should receive messages via UDP, TCP, and RELP.

#### MODULES ####

$ModLoad imuxsock # provides support for local system logging (e.g. via
logger command)
$ModLoad imklog   # provides kernel logging support (previously done by
rklogd)
#$ModLoad immark  # provides --MARK-- message capability

# Loaded by default
# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Load input module relp
$ModLoad imrelp
$InputRELPServerRun 514

# Load output module relp
$ModLoad omrelp

#### GLOBAL DIRECTIVES ####

# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf

# Spool files
$WorkDirectory /var/spool/rsyslog

#### RULES ####

(default local log stuff cut out for brevity)

action(Name="collect02-sec"
           Type="omrelp"
           Target="10.142.158.81"
           Port="514"
           Action.ResumeInterval="5"
           Timeout="5")

action(Name="collect02-sec"
           Type="omrelp"
           Target="10.142.158.80"
           Port="514"
           Action.ExecOnlyWhenPreviousIsSuspended="on"
           Action.ResumeInterval="5"
           Timeout="5")

RSYSLOG COLLECTOR CONFIGURATON:

#### MODULES ####

$ModLoad imuxsock # provides support for local system logging (e.g. via
logger command)
$ModLoad imklog   # provides kernel logging support (previously done by
rklogd)
#$ModLoad immark  # provides --MARK-- message capability

# Load (i)nput and (o)utput (m)odules
$ModLoad imudp
$ModLoad imtcp
$ModLoad imrelp
$ModLoad omrelp

#### TEMPLATES ####

template(name="ByHost" type="string"
string="/var/log/remotelogs/%HOSTNAME%.log")

#### GLOBAL DIRECTIVES ####

# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf

# Spool files
$WorkDirectory /var/spool/rsyslog

#### RULES ####

$AllowedSender TCP, 10.142.158.70, 10.142.158.71
$AllowedSender UDP, 10.142.158.70, 10.142.158.71

                #### Remote Logging

if $fromhost-ip == ["10.142.158.70","10.142.158.71"]
        then {
                action(type="omfile" DynaFile="ByHost")
                stop
                }

                #### Local Logging

(default local log stuff cut out for brevity)

#### LISTENERS ####

# Provides UDP syslog reception
$UDPServerRun 514

# Provides TCP syslog reception
$InputTCPServerRun 514

# Provides Reception of RELP
$InputRELPServerRun 514

I've been working on this for awhile so any help is appreciated.

Thanks
-- 
Jon Schipp,
jonschipp.com, sickbits.net
_______________________________________________
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