Project

General

Profile

LogstashIntegration » History » Version 1

Version 1/6 - Next » - Current version
Lukas Zapletal, 07/22/2015 04:17 AM
Initial idea


Logstash Integration

Summary

Foreman has many compoments involved and when Katello plugin is installed with it's
orchestration capabilities as well as other plugins, possibility to effectively collect
logs in a single place with flexible metadata and interface is a big plus.

Logstash open-source project was picked up as the target to integrate with. It is a Ruby
modular framework (jRuby actually) with modular backends and inputs.

https://github.com/elastic/logstash

Owners

  • Lukáš Zapletal (Foreman) - `lzap_at_redhat_dot_com`

Current status

  • Design done
  • Not yet implemented

Implementation

Foreman uses logging gem which is modular log4j-like logging framework with great
extensibility. Although direct integration via logging-logstash should be possible (https://rubygems.org/gems/logging-logstash/versions/0.0.2),
integration via journald would provide better flexibility of logging from all other
components (foreman-proxy, backend systems) or even scripts (seed, migrate, foreman_hooks) with support of all
metadata. There is a POC journald reader for logstash available: https://github.com/stuart-warren/logstash-input-journald

Metadata

Foreman would benefit from the following extra logging fields:

  • Session ID: User session - usually a browser session if applicable.
  • Transaction/Correlation ID - Usually UUID of the transaction that the logs belong to. This way we can correlate logs from orchestration runs for all services that are under our control: Foreman, Foreman-Proxy, Plugins, Candlepin, Pulp