docker-syslog-forwarder/run.sh

64 lines
1.4 KiB
Bash

#!/bin/sh
# you need to specify this
TARGET_HOST=${TARGET_HOST:-127.0.0.1}
# tcp (default) | udp
TARGET_PROTO=${TARGET_PROTO:-tcp}
# 514 is the common default
TARGET_PORT=${TARGET_PORT:-514}
# DEBUG MODE ENABLED if != 0
DEBUG=${DEBUG:-0}
cat >/etc/rsyslog.conf <<EOF
\$WorkDirectory /var/lib/rsyslog
# Sets default permissions for all log files.
\$FileOwner root
\$FileGroup adm
\$FileCreateMode 0640
\$DirCreateMode 0755
\$Umask 0022
\$PreserveFQDN on
module(load="imudp")
input(type="imudp" port="514" )
module(load="imtcp")
input(type="imtcp" port="514" )
module(load="mmutf8fix")
action(type="mmutf8fix" replacementChar="?" )
# If the hostname is not specified, we use fromhost
if (\$hostname == '') then set \$!hostname = \$fromhost;
EOF
if [ "${DEBUG}" != "0" ] ; then
cat >>/etc/rsyslog.conf <<EOF
module(load="omstdout")
action(type="omstdout")
EOF
fi
if [ "${TARGET_PROTO}" = "udp" ] ; then
cat >>/etc/rsyslog.conf <<EOF
action(type="omfwd" protocol="udp" target="${TARGET_HOST}" port="${TARGET_PORT}" Template="RSYSLOG_SyslogRFC5424Format" )
EOF
else
cat >>/etc/rsyslog.conf <<EOF
action(type="omfwd" protocol="tcp" target="${TARGET_HOST}" port="${TARGET_PORT}" Template="RSYSLOG_SyslogRFC5424Format" TCP_Framing="octet-counted" KeepAlive="on" )
EOF
fi
# extra config
mkdir -p /extraconfig
cat >>/etc/rsyslog.conf <<EOF
$IncludeConfig /etc/rsyslog.d/*.conf
EOF
/usr/sbin/rsyslogd -nf /etc/rsyslog.conf