Research findings for centralized logging

Description

Some research was done about how to do centralized logging in a containerized microservices architecture, using the options outlined here: https://www.loggly.com/blog/top-5-docker-logging-methods-to-fit-your-container-deployment-strategy/. The second, third and fourth options in particular were looked into.

Before the options were looked into, configuration of logging within the container was determined. SLF4J with Logback will be used, as SLF4J will abstract the exact logging framework and Logback comes default on Spring Boot. Logging will be done to a syslog so that logging from Spring Boot (Tomcat), as well as the microservice itself. A syslog appender will be defined in Logback configuration.

Option 3 (logging via docker logging driver):
This was the initial option chosen for research. This would require that each docker container would send its log events to the host's syslog. However, it created some challenges, particularly for development for Mac and Windows users, as they use boot2docker as their host, which does not have syslog installed.

Option 2 (data volumes):
This was researched next for its simplicity. rsyslog would be installed within the containers and data volumes would be host mounted. However, the challenge would be to get the OpenLMIS postgres image to also have rsyslog installed.

Option 3 (logging via a dedicated logging container):
This was chosen in the end. A logging container using rsyslog would be created and wired with other containers using docker compose.

QAlity Plus - Test Management

Checklists

Activity

Show:
Done
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Sprint

Affects versions

Priority

Time Assistant

Created June 1, 2016 at 8:42 PM
Updated June 3, 2016 at 8:55 PM
Resolved June 3, 2016 at 8:55 PM