############################################################################### # Managed by Ansible # file: ansible/roles/acs/templates/rsyslog.conf.j2 ############################################################################### # # /etc/rsyslog.conf Configuration file for rsyslog. # # For more information see # /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html ################# #### MODULES #### ################# $ModLoad imuxsock # provides support for local system logging $ModLoad imklog # provides kernel logging support #$ModLoad immark # provides --MARK-- message capability # provides UDP syslog reception $ModLoad imudp $UDPServerAddress {{udp_server_ip}} #bind to localhost before udp server run $UDPServerRun 514 # provides TCP syslog reception #$ModLoad imtcp #$InputTCPServerRun 514 ########################### #### GLOBAL DIRECTIVES #### ########################### # # Use traditional timestamp format. # To enable high precision timestamps, comment out the following line. # #$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat # Define a custom template $template SONiCFileFormat,"%timegenerated%.%timegenerated:::date-subseconds% %HOSTNAME% %syslogseverity-text:::uppercase% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n" $ActionFileDefaultTemplate SONiCFileFormat # # Set the default permissions for all log files. # $FileOwner root $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 # # Where to place spool and state files # $WorkDirectory /var/spool/rsyslog # # Include all config files in /etc/rsyslog.d/ # $IncludeConfig /etc/rsyslog.d/*.conf # # Suppress duplicate messages and report "message repeated n times" # $RepeatedMsgReduction on ############### #### RULES #### ############### # # Remote syslog logging # # The omfwd plug-in provides the core functionality of traditional message forwarding via UDP and plain TCP. # It is a built-in module that does not need to be loaded. {% if SYSLOG_SERVER is defined %} {% for server, data in SYSLOG_SERVER.items() %} {% set params_list = [] %} {% if 'source' in data %} {% set dummy = params_list.append('address=' + '"' + data.source|string + '"') %} {% endif %} {% if 'port' in data %} {% set dummy = params_list.append('port=' + '"' + data.port|string + '"') %} {% endif %} {% if 'vrf' in data and data['vrf'] != "default" %} {% set dummy = params_list.append('device=' + '"' + data.vrf|string + '"') %} {% endif %} {% if params_list %} *.* action(type="omfwd" target="{{ server }}" protocol="udp" {{ params_list|join(' ') }} template="SONiCFileFormat") {% else %} *.* action(type="omfwd" target="{{ server }}" protocol="udp" template="SONiCFileFormat") {% endif %} {% endfor %} {% endif %}