Skip to main content
  1. Posts/

Logio Puppet Modules: automatic installation

·225 words·2 mins· loading · loading · ·
Marco Mornati
Author
Marco Mornati
I build, self-host and sometimes break software in production — writing about AI tooling, coding agents and infrastructure.

I created a puppet module allowing you to automatically install logio server and/or harvester (logio client).

https://github.com/mmornati/puppet-logio

As you can see into the readme file, the usage of this module is really simple.

Server Installation
#

To install the server you just need to include on your node definition the module ‘’logio::server’’. With an external node yaml classifier, for example, the configuration should be:

---
classes:
   logio::server:

Harvester (Client) Installation
#

To install a client you have the ‘’logio::harvester’’ module. You can simply add this module on your node definition, with the server parameter pointing to your logio server ip address:

---
classes:
   logio::harvester:
      logio_server: 127.0.0.1

Add Logs And/or Streams
#

To add a new log for your servers you can modify the templates ‘’templates/harvester.conf.erb’’. You can simply add a new log file path to the default stream (system) or create a new stream with logs for it. Here’s an example template including apache logs:

exports.config = {
nodeName: "<%= fqdn %>",
  logStreams: {
    system: [
      "/var/log/messages",
      "/var/log/secure"
    ],
    apache: [
      "/var/log/httpd/access_log",
      "/var/log/httpd/error_log",
    ],
  },
  server: {
    host: '<%= logio_server %>',
    port: 28777
  }
}

You can then simply access to your installed logio server, pointing your browser to:

http://logio.ip.address:28778

where logio.ip.address the machine’s address or dnsname of your logio server. All harvester will then send new logs with a socket connection to your browser.