Skip to content

Commit

Permalink
Do not pass the option "device" in rsyslog.conf by default when syslo…
Browse files Browse the repository at this point in the history
…g server's source address is configured (#17616) (#18514)

### Why I did it

An in-band syslog server will not receive any syslog if it is configured without a VRF specified, which is because `eth0` is always specified as the `device` of a syslog server and the syslog packets will be sent to `eth0` regardless of its destination IP address.

### How I did it

Pass the option "device" in rsyslog.conf only if when syslog server's source address is configured with a non-default VRF

#### How to verify it

Manually test:
1. Configuring a syslog server without VRF specified or with `default` as the VRF: no `device` passed in `rsyslog.conf`
2. Configuring a syslog server with non-default VRF: the configured VRF passed as `device` in `rsyslog.conf`

Co-authored-by: Stephen Sun <5379172+stephenxs@users.noreply.github.com>
  • Loading branch information
StormLiangMS and stephenxs authored Mar 31, 2024
1 parent 8263829 commit e1f91ba
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions files/image_config/rsyslog/rsyslog.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -107,19 +107,24 @@ $RepeatedMsgReduction on
{% set regex = conf.get('filter_regex') -%}

{% set fmodifier = '!' if filter == 'exclude' else '' %}
{% set device = 'eth0' if vrf == 'default' else vrf -%}
{% set device = vrf if vrf != '' and vrf != 'default' -%}
{% set template = 'WelfRemoteFormat' if format == 'welf' else 'SONiCFileFormat' -%}

{# Server extra options -#}
{% set options = '' -%}

{% if source -%}
{% set options = options ~ ' Address="' ~ source ~ '"'-%}
{% set device = device if device != 'eth0' else '' -%}
{% endif -%}

{% if device -%}
{% set options = options ~ ' Device="' ~ device ~ '"'-%}
{% endif -%}

{% if filter %}
:msg, {{ fmodifier }}ereregex, "{{ regex }}"
{% endif %}
*.{{ severity }}
action(type="omfwd" Target="{{ server }}" Port="{{ port }}" Protocol="{{ proto }}" Device="{{ device }}" Template="{{ template }}"{{ options }})
action(type="omfwd" Target="{{ server }}" Port="{{ port }}" Protocol="{{ proto }}" Template="{{ template }}"{{ options }})
{% endfor %}

0 comments on commit e1f91ba

Please sign in to comment.