sysklogd

BSD syslog daemon with syslog()/syslogp() API replacement for Linux, RFC3164 + RFC5424

OTHER License

Stars
87
Committers
13

Bot releases are hidden (Show)

sysklogd - sysklogd v2.2.3

Published by troglobit over 3 years ago

Bug fix release. The focus is still on tackling the fallout resulting in migrating from the old kernel log interface in /proc/kmsg to /dev/kmsg, introduced in v2.2.0.

Fixes

  • Issue #28: log messages stuck in 1969. When not using libsyslog, or the bundled logger, the syslog() API in the C library is used, which may not necessarily set the timestamp. When sysklogd infers timestamp it was offset by the number of years since 1969, i.e., boot_time
  • Issue #29: kernel messages repeated if syslogd is restarted at runtime. This introduces a new state file, /var/run/syslogd.cache, which saves the last seen/logged sequence id read from /dev/kmsg
  • Issue #31: log message time calculation issue on 32-bit systems
  • Issue #32: remote kernel messages being mapped to uucp instead of user
  • Fix syslogd(8) manual page name of the syslogd PID file
sysklogd - sysklogd v2.2.2

Published by troglobit over 3 years ago

Bug fix release.

Changes

  • Load and reload timezone, with tzset(), on init/SIGHUP
  • Logging from remote servers enabled by default in syslogd.service use /etc/default/syslogd to disable
  • Initial Debian/Ubuntu packaging

Fixes

  • Fix issue with parsing /dev/kmsg time, off by one error
  • Fix spelling issues in syslogd and man pages, found by lintian
sysklogd - sysklogd v2.2.1

Published by troglobit over 3 years ago

Bug fix release.

Fixes

  • Issue #26: Liunx sends EPIPE when reading from /dev/kmsg if the kernel internal buffers are overrun. EPIPE is a heads-up message to
    userspace that at least one log message has been lost. Usually caused by a too small CONFIG_LOG_BUF_SHIFT value. sysklogd v2.2.0 treated the descriptor as faulty and closed it. The fix is to log the event and restart polling for more messages
  • Issue #27: Linux log messages read from /dev/kmsg are formatted in a different way than its predecessor /proc/kmsg. sysklogd v2.2.0 failed to parse the priority field correctly, which caused matching problems with rules in /etc/syslog.conf
  • Restore default install prefix, from / to /usr/local, which is the default for GNU configure based applications
  • Drop %m gnuism from internal log macro (portability)
  • logger: drop extra error message string, on error logging to a file
sysklogd - sysklogd v2.2.0

Published by troglobit almost 4 years ago

Minor feature and bug fix release.

Changes

  • Issue #19: use /dev/kmsg instead of /proc/kmsg on Linux

Fixes

  • Issue #17: Finally fix long-standing parallel build issue, big thanks to Windriver for sticking with it and finding a really good fix!
  • Issue #24: O_CLOEXEC not available on all systems
  • Fix build error; allow loop initial declarations, enable C99
  • Fix build warning; missing initializer for field 'usec'
sysklogd - sysklogd v2.1.2

Published by troglobit over 4 years ago

Bug fix release.

Fixes

  • Issue #17: Windriver found and fixed a race between building lib/*.o files with and without -fPIC. This should be the final parallel build issue.
sysklogd - sysklogd v2.1.1

Published by troglobit almost 5 years ago

Bug fix release.

Changes

  • Add unit test to verify rule option parsing
  • Minor code cleanup and code de-duplication

Fixes

  • Issue #11: Some users still reported problems with parallel build, which was worked-around with .NOTPARALLEL in v2.1. This v2 fix is a refactor of src/Makefile.am which removes libcompat and use the same objects for linking both syslogd and the user libsyslog API. Yet still protecting against symbol poisoning
  • A Westermo customer reported problems sending to remote syslog sinks at startup. Turns out the handling if sendmsg() fails was the same as that if syslogd fails to resolve the IP from a DNS name. The fix is to just let sendmsg() retry on the next syslog message for all benign/common network errors; EHOSTUNREACHABLE, ENETUNREACH, etc.
  • Fix timer reset for suspended remote sinks. All suspended (remote) sinks had their timeout mistakenly reset to 180 sec for each new incoming message
sysklogd - sysklogd v2.1

Published by troglobit almost 5 years ago

Relicensed under the 3-clause BSD license.

Changes

  • klogd removed, replaced by native syslogd functionality
  • Import pristine FreeBSD versions of syslogd and syslog.conf man pages, both under the 3-clause BSD license.
  • With klogd removed and the original man pages replaced with FreeBSD versions, the only remaining GPL'ed material was the build system, which the copyright owner (undersigned) agrees to change to BSD as well. Hence, the GNU GPL could be dropped in favor of 3-clause BSD

Fixes

  • Issue #8: Kernel messages duplicated to console. syslogd on Linux now calls klogctl() to disable kernel logging to console
  • Earlier versions were slightly sensitive to time skips. I.e., when recording the last-change time on a log file and wall time changed backwards, syslogd would consider that log file to have a date in the future. This only affected buffering of multiple messages, and -- MARK -- so most users never would have noticed
  • Issue #9: Kernel logging broken if syslogd started without -F
  • Issue #10: Fix build on non-GLIBC Linux systems, by Khem Raj
  • Issue #11: Fix nasty parallel build problem. Also reported by the Gentoo project, and Westermo
  • Make sure log rotation cannot be enabled for non-file targets
  • Use snprintf() rather than sprintf() in log rotation
  • Fix variable names shadowing global/local defs, found by clang-tidy
  • Handle multiple invocations of SIGHUP, respond to all of them
  • Use correct #ifdef for checking on Linux or not
sysklogd - sysklogd v2.0.3

Published by troglobit almost 5 years ago

Changes

  • Always run domark() timer, regardless of -m interval setting, it is used for internal housekeeping, runs every 15 sec
  • Handle DNS lookup of unknown remote syslog hosts in domark()
  • Only enable debug mode when -d is given on the command line
  • Always create PID file, even in debug mode
  • Add -F, as alias for -n, to klogd for compat. with syslogd

Fixes

  • When logging to a remote host using @FQDN previous releases of syslogd gave up after 10 tries. In many industrial cases intermittent access to the DNS is very likely, so this release includes a fix to retry the IP address lookup forever. The interval for retries is configurable
  • Fix accidental blocking of SIGHUP/SIGALRM when an invalid facility is found in the internal logmsg() function
  • Fix leaking of internal error messages (like DNS lookup failure) to /dev/console during reconfiguration, i.e. after initial start
sysklogd - sysklogd v2.0.2

Published by troglobit almost 5 years ago

Changes

  • Add missing remote:port info in error message when failing to send to a remote syslog server

Fixes

  • Fix assert() in fprintlog_successive(), caused by never being reset in fprintlog_first(), found by @Westermo
  • Issue #6: Workaround for systems with vanilla autoconf 2.69 that does not support --runstatedir=PATH, e.g. CRUX https://crux.nu/
sysklogd - sysklogd v2.0.1

Published by troglobit almost 5 years ago

Minor bug fix release.

Changes

  • Make logger tool and man page optional in build, by Lars Wendler
  • Expand resulting directories in configure summary

Fixes

  • Add missing -k and -T command line flags to getopt()
  • Issue #3: Don't guess PID file location, use configre's $runstatedir

Note: Initial upload (2019-11-25) was missing man/klogd.8, see issue #4

sysklogd - sysklogd v2.0

Published by troglobit almost 5 years ago

This release represents a major refresh of the sysklogd project. The venerable syslogd gets an infusion of new blood from NetBSD and FreeBSD to fully support RFC3164 and RFC5424. Also included is a user library and a replacement for syslog.h to enable new features in RFC5424.

Note: as of this release klogd is disabled by default, syslogd can read Linux kernel messages on its own now.

Changes

  • Support for true RFC3164 formatted log messages to remote log servers, including timestamp and hostname. Use ;RFC3161 rule option
  • Support for RFC5424 from UNIX domain socket, from remote servers and also to remote servers. Requires new API syslogp() to unlock these features on the UNIX socket. Still compatible with GLIBC/musl/uClibc
  • Support for options to syslog.conf rules. E.g. ;RFC5424 to enable sending/writing log messages with RFC3339 style timestamps, and more
  • Support for include /etc/syslog.d/*.conf in syslog.conf
  • New tool logger from the Finit project, BSD licensed. Supports all the features of RFC5424, so very useful for trying out the "new" standard
  • Support for reading from a custom UNIX domain socket path, -p SOCK, for unit testing with logger -u /path/to/sock
  • Support for sending to a custom port on a remote server, @host:port
  • New syslogp() API from NetBSD, for applications wanting to use RFC5424 features like MsgID or structured data
  • Many incompatible changes to command line options in syslogd and klogd for compatiblity with FreeBSD and NetBSD syslogd. Examples:
    • In syslogd: -b and -c have been replaced with -r for global log rotation, -a has been replaced with the new -p support. The -r flag and -s HOST has also been dropped in favor of the BSD -s flag to control two levels of secure mode. The -n flag is now -F and -n means something else entirely ... there's more
    • In klogd: -i and -I have been removed
  • klogd is not built by default anymore, syslogd can read /proc/kmsg on Linux on its own. Reduces complexity and gives you one daemon less
  • When systemd support is detected by the configure script the unit file(s) are now installed into the systemd system services folder
  • Update COPYING file to GPL 2 rev 2, with new FSF address and other minor stuff
  • Update license header in all files:
    • Sync 3-clause BSD license change with upstream NetBSD and FreeBSD sources
    • Sync GPL license header, new FSF address
    • Add SPDX license identifiers to all source files

Fixes

  • Fix GCC 8 warnings; "too small destination buffer in snprintf()"
  • Major code cleanup and rewrite inspired by both NetBSD and FreeBSD
    sources, e.g. removed all previous unit TESTING #ifdefs
sysklogd - sysklogd v1.6

Published by troglobit about 6 years ago

Changes

  • IPv6 support forward ported from FreeBSD, by John Haxby [email protected]
  • Built-in log rotation support from BusyBox syslogd, disabled by default
    • Enable from command line using '-b SIZE' and '-c COUNT', or
    • Per log file in syslog.conf using 'SIZE:COUNT'
  • Automatic compression (gzip) of rotated files from .1
  • Only read /etc/services when needed, by Martin Schulze [email protected]
  • Improved sleep/alarm/mark implementation, by Alan Jenkins [email protected]
  • Move hostname setting code from main() into init() so it is re-read on SIGHUP, by Thomas Jarosch [email protected]
  • Documentation update by Martin Schulze [email protected]
  • Re-indent code to Linux KNF
  • Touch PID file on SIGHUP, for integration with Finit
  • Add systemd unit files
  • Add GNU configure & build system
    • Add configure flags to enable features and control behavior
    • Detect systemd PATHs

Fixes

  • Flush log files independent of MARK, by Martin Schulze [email protected]
  • Fix segfault, remove faulty fclose(), found by Andrea Morandi and Sean Young. Fixed by Martin Schulze [email protected]
  • Correct continuation line problems on 64bit architecture, by David Couture [email protected]
  • Bugfix against invalid PRI values (CVE-2014-3634), by mancha [email protected]
  • Ignore backed up (low baud rate) console, and do not close it. Instead, continue writing when its unclogged
  • Increase socket receive buffer size (double), patch from FreeBSD
Package Rankings
Top 14.42% on Alpine-v3.17
Top 11.42% on Alpine-v3.13
Top 11.55% on Alpine-v3.15
Top 12.2% on Alpine-v3.14
Top 14.98% on Alpine-edge
Top 10.58% on Alpine-v3.18
Top 7.55% on Proxy.golang.org
Top 11.01% on Alpine-v3.12
Top 14.94% on Alpine-v3.16
Badges
Extracted from project README
BSD Badge GitHub Status Coverity Status