Systemd Journal persistency

by Thor Erik — on  ,  ,  , 

On TruckersMP we recently had a crash on one of our backend systems, and as a part of the proceadure, we try to identify what caused the issue.

To my dismay, there was no logs from pervious boot in the systemd journal, which I found a bit peculiar, after a quick google search, I found that this is also the case with CentOS 7 (we use Ubuntu 16.04, which happens to use the same defaults).

I suppose that's fine for a desktop or laptop, but in a server envrionment it's not.

To combat this issue, I wrote a quick puppet manifest that makes sure all systems have the required configuration.

# == Class: persistentjournal
#
class persistentjournal {
  file { '/var/log/journal':
    ensure => directory,
  }

  exec { 'systemd-tmpfiles':
    command => '/bin/systemd-tmpfiles --create --prefix /var/log/journal',
    refreshonly => true
  }

  exec { 'restart-journald':
    command => '/bin/systemctl restart systemd-journald',
    refreshonly => true
  }

  File['/var/log/journal'] -> Exec['systemd-tmpfiles'] ~> Exec['restart-journald']
}

Note that I've not made any attempts of verifying that it's a systemd system, since we have none where it's applied to.