hidden:Rsyslog configuration on hpa and hpss clients

From Lsdf
Jump to navigationJump to search

Using the stock rsyslog that comes with RHL 6 and RHL 7. Reciever configuration is described down below.

Syslog sender configuration

Use following template (only non commented out lines are listed here. More configuration lines maybe nice to have but this minimal set does the job). Not the log host for hpss purposes is hpssloghost. Copy these lines to /etc/rsyslog.conf

#### MODULES ####

$ModLoad imuxsock
$ModLoad imklog 

#### GLOBAL DIRECTIVES ####

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf

#### RULES ####

$WorkDirectory /var/lib/rsyslog # where to place spool files
$ActionQueueFileName fwdRule1 # unique name prefix for spool files
$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
$ActionQueueType LinkedList   # run asynchronously
$ActionResumeRetryCount -1    # infinite retries if host is down
# forward everything to the remote host on port 514
*.* @@hpssloghost:514

(Re)start rsyslogd:

 RHL6: /etc/init.d/rsyslog restart
 RHL7: systemctl restart rsyslog.service

Done

Syslog receiver configuration

Add line to autmatically generate filenames in /var/remotelog/.... The template line definse location and format. The if clause selects incoming messages for hosts other then hpa itself. The 'rule' is finished with the '& ~'.

 # log every host in its own directory
 $template RemoteMessages,"/var/remotelog/%HOSTNAME%/%$YEAR%/%$MONTH%/%syslogfacility-text%"
 if ($hostname != 'hpa') then ?RemoteMessages
 & ~

rsyslog will create the directory itself but SElinux will kick in. Therefore we create it by hand.

 mkdir /var/syslog

if SELinux is active you'll see /var/remotelog does not have the required security context.

 # ls -Zd /var/syslog
 drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /var/syslog
 # ls -Zd /var/log
 drwxr-xr-x. root root system_u:object_r:var_log_t:s0   /var/log

To change it:

 # chcon --reference /var/log /var/syslog

(Re)start rsyslogd:

 RHL6: /etc/init.d/rsyslog restart
 RHL7: systemctl restart rsyslog.service

Done

The full server side config file below:

# rsyslog configuration file

# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html

#### MODULES ####

# The imjournal module bellow is now used as a message source instead of imuxsock.
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
#$ModLoad imklog # reads kernel messages (the same are read from journald)
#$ModLoad immark  # provides --MARK-- message capability

# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

#### GLOBAL DIRECTIVES ####

# Where to place auxiliary files
$WorkDirectory /var/lib/rsyslog

# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on

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

# Turn off message reception via local log socket;
# local messages are retrieved through imjournal now.
$OmitLocalLogging on

# File to store the position in the journal
$IMJournalStateFile imjournal.state

# Templates
#
# Log every host in its own directory and keep the messages filtered in RULES below local

$template RemoteMessages,"/var/remotelog/%HOSTNAME%/%$YEAR%/%$MONTH%/%syslogfacility-text%"
if ($hostname != 'hpa') then ?RemoteMessages
& ~

#### RULES ####

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog


# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 :omusrmsg:*

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log

# ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
#$ActionQueueType LinkedList   # run asynchronously
#$ActionResumeRetryCount -1    # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
# ### end of the forwarding rule ###