The revolution will be verbosely {,b}logged

Announcing remote_syslog2: aggregate text log files with one dependency-free binary

Posted by @troyd on

We’re pleased to announce a new daemon for transmitting log messages from text log files to Papertrail: remote_syslog2. remote_syslog2 replaces its predecessor, remote_syslog, and provides 2 major improvements:

  • no dependencies, so setup is painless. We rewrote the daemon in Go so it doesn’t require Ruby or any other VM. While we love the Ruby language, we love dependency-free apps a lot more.

    The tarball contains a single binary. “Installation” is simply copying that file and an optional configuration file. remote_syslog2 runs on almost any modern Unix with a working C library.

  • less code (read: potential idiosyncrasies) between the daemon and the OS. Most of this daemon’s work is file or network I/O. Because Go’s libraries are closer to direct mappings to the corresponding libc calls, they’re less likely to introduce bugs or implementation idiosyncrasies.

    Those which do occur are generally easier to reproduce and diagnose, since any two systems are much closer to identical. In contrast, the older remote_syslog has a known TLS bug that we believe was introduced by a dependency (rather than in remote_syslog itself), but which was effectively impossible to reproduce consistently enough to diagnose.

We’ll continue to support the older remote_syslog, so there’s no pressure to upgrade. For new environments, we strongly recommend remote_syslog2. To learn more or download a release tarball, visit the README.