WARNING This is currently untested. I'm in the process of rebuilding my puppet development environment.
A Puppet report handler for sending logs, event and metrics to a Logstash TCP input.
json
yaml
A working logstash install with a defined tcp
input matching the report configuration.
input { tcp { type => "puppet-report" port => "5959" } }
NOTE
This currently only works with logstash MASTER which has neccessary changes to the json_event
format for inputs.
To install logstash from master:
- Make sure you have java + ant installed and on your PATH
- clone the repo from https://github.com/logstash/logstash
- run
make jar
- Create a simple Logstash config like so (called logstash.conf):
input { tcp { type => "puppet-report" port => "5959" } }
output { stdout { debug => true debug_format => "json" } }
- run logstash with the configuration file
java -jar build/logstash--monolithic.jar agent -f logstash.conf
-
Follow the installation instructions below, changing host to the host where logstash is running and port to match the port you defined in your Logstash configuration file.
-
Profit?
- Define a TCP input as described above in your Logstash configuration file
- Copy the
logstash.yaml
to/etc/puppet
- Enable pluginsync and reports on your puppetmaster and clients in
puppet.conf
[master]
report = true
reports = logstash
pluginsync = true
[agent]
report = true
pluginsync = true
- Run the Puppet client and sync the report as a plugin
Pretty much anything @jamrtur01 has ever written about or coded for Puppet