Rsyslog: New advanced Syslogger
authorErik Kapfer <erik.kapfer@ipfire.org>
Tue, 27 Feb 2018 12:24:54 +0000 (13:24 +0100)
committerErik Kapfer <erik.kapfer@ipfire.org>
Tue, 27 Feb 2018 12:24:54 +0000 (13:24 +0100)
commit81f170aca3719eeb2f220b792fae69043e7c1584
tree6b4cee9a5de998b9de4dbc86b88e40b2c0871948
parentca4c354e085083dacf66071b23e507ea2ebb1b81
Rsyslog: New advanced Syslogger

Sysklogd are replaced by Rsyslogd.
Reduced version with libestr libfastjson and liblogging.

Compiletime settings:
    GnuTLS has been enabled so remote logging via TLS is possible --> http://www.rsyslog.com/doc/v8-stable/tutorials/tls.html#client-setup .
    gssapi-krb5 has been also enabled as a second authentication but also encryption possibility for remote logging --> https://www.rsyslog.com/doc/v8-stable/configuration/modules/gssapi.html .
    CFLAGS needed to be set otherwise ZLIB wont be found.

Rsyslog configuration:
    Two modules are used 'imuxsock' and 'imklog' which is the minimum to get the old sysklod ouput.
    Works in 'RSYSLOG_TraditionalFileFormat' which equals to the log output of the old sysklogd.
    Process drops his permissions to already existing 'syslogd', this is possible since 'syslogd' is now a member of 'tty' group (dialout causes problems and worked not accurateley).
    A work directory has been added to /var/spool/rsyslogd.
    New include configuration directory /etc/rsyslog.d has been introduced too.
    Since an additional configuration directory is available, '00-remote-logging.conf' has been introduced to have better overview to main configuration (TLS support directives exists but are commented).
    ca directory has also been applied to /etc/rsyslog.d since Rsyslog supports now also TLS for remote logging.
    One old sysklogd directive needed to be changed whereby ':omusrmsg:*' for emergency messages has been set (all old sysklogd configuration directives could be used in new config).
    Since Rsyslogd drops his privileges (to already existing user 'syslogd'), syslogd user is now member of group tty (/etc/group), group dialout has also been tested but have had partly problems and didn´t logged persistently.
    logrotate.conf has been adapted to Rsyslog, -HUP will be send before restart so all files should be closed before rotation.
    00-remote-logging.conf includes now also GnuTLS directives which are commented and won´t be used per default.

Rsyslog initscript:
    Checks if user syslogd is part of tty group otherwise a usermod includes 'syslogd' to 'tty' (needed to be done to drop the privileges).
    Bootlog lines from sysklogd has been integrated.

syslogctrl:
    Remote logging configuration is now located under /etc/rsyslogd.d/00-remote-logging.conf paths has been adapted.
    Rsyslog restart will be executed after configuration has been saved via logs.cgi/config.dat so remote logging server will be written to 00-remote-logging.conf and should be usable without further modification.

other files/changes:
    User 'klogd' has been deleted from passwd.
    rsyslogd default.conf for 'logwatch' has been activated and syslog default.conf has been commented in logwatch ROOTFILE.
    services.cgi has been adapted to rsyslog as logging server and link has also been set to related logs.cgi/config.dat.
    firstsetup has been adapted to rsyslog.

ToDo´s (there is surely more):
    syslogdctrl may be extendable for GnuTLS configuration (ca upload over logs.cgi/config.dat ?, third option beneath UDP/TCP /'TCP CRYPTED', other port (10514 TCP) and changed syntax with included '(o)' ).
    Check for really needed modules.
    syslogdctrl should only restart rsyslog if remote logging has been 'Enabled:'+ 'SAVE button' , other changes in WUI do not need Rsyslog restart.

Signed-off-by: Erik Kapfer <erik.kapfer@ipfire.org>
28 files changed:
config/etc/group
config/etc/logrotate.conf
config/etc/passwd
config/etc/rsyslog.conf [new file with mode: 0644]
config/etc/syslog.conf [deleted file]
config/rootfiles/common/armv5tel/initscripts
config/rootfiles/common/i586/initscripts
config/rootfiles/common/libestr [new file with mode: 0644]
config/rootfiles/common/libfastjson [new file with mode: 0644]
config/rootfiles/common/liblogging [new file with mode: 0644]
config/rootfiles/common/logwatch
config/rootfiles/common/rsyslog [new file with mode: 0644]
config/rootfiles/common/stage2
config/rootfiles/common/sysklogd [deleted file]
config/rootfiles/common/x86_64/initscripts
config/rootfiles/common/x86_64/stage2
config/rsyslog/00-remote-logging.conf [new file with mode: 0644]
html/cgi-bin/services.cgi
lfs/initscripts
lfs/libestr [new file with mode: 0644]
lfs/libfastjson [new file with mode: 0644]
lfs/liblogging [new file with mode: 0644]
lfs/rsyslog [new file with mode: 0644]
make.sh
src/initscripts/system/firstsetup
src/initscripts/system/rsyslog [new file with mode: 0644]
src/initscripts/system/sysklogd [deleted file]
src/misc-progs/syslogdctrl.c