b6b1f3fac8
Add changes for syslog support for containers running in namespaces on multi ASIC platforms. On Multi ASIC platforms Rsyslog service is only running on the host. There is no rsyslog service running in each namespace. On multi ASIC platforms the rsyslog service on the host will be listening on the docker0 ip address instead of loopback address. The rsyslog.conf on the containers is modified to have omfwd target ip to be docker0 ipaddress instead of loopback ip Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
24 lines
825 B
Bash
Executable File
24 lines
825 B
Bash
Executable File
#!/bin/bash
|
|
|
|
PLATFORM=`sonic-cfggen -H -v DEVICE_METADATA.localhost.platform`
|
|
|
|
# Parse the device specific asic conf file, if it exists
|
|
ASIC_CONF=/usr/share/sonic/device/$PLATFORM/asic.conf
|
|
if [ -f "$ASIC_CONF" ]; then
|
|
source $ASIC_CONF
|
|
fi
|
|
|
|
# On Multi NPU platforms we need to start the rsyslog server on the docker0 ip address
|
|
# for the syslogs from the containers in the namespaces to work.
|
|
# on Single NPU platforms we continue to use loopback adddres
|
|
|
|
if [[ ($NUM_ASIC -gt 1) ]]; then
|
|
udp_server_ip=$(ip -o -4 addr list docker0 | awk '{print $4}' | cut -d/ -f1)
|
|
else
|
|
udp_server_ip=$(ip -o -4 addr list lo scope host | awk '{print $4}' | cut -d/ -f1)
|
|
fi
|
|
|
|
sonic-cfggen -d -t /usr/share/sonic/templates/rsyslog.conf.j2 -a "{\"udp_server_ip\": \"$udp_server_ip\"}" >/etc/rsyslog.conf
|
|
|
|
systemctl restart rsyslog
|