Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Microservices Architecture: The Importance of Centralized Logging

DZone 's Guide to

Microservices Architecture: The Importance of Centralized Logging

In this article, we explore the concept of centralized logging with respect to microservices.

· Microservices Zone ·
Free Resource

You Will Learn

  • What centralized logging is.
  • Why we need centralized logging.
  • Why microservices are difficult to debug.

Cloud and Microservices Terminology

This is the fourth article in a series of six articles on terminology used with cloud and microservices. This first three parts can be found here:

  1. Microservices Architecture: What Is Service Discovery?

  2. Microservices Architecture: Centralized Configuration and Config Server

  3. Microservices Architecture: API Gateways

The Need for Visibility

In a microservices architecture, there are a number of small microservices talking to each other:

Basic microservices communication

In the above example, let's assume there is a problem with Microservice5, due to which Microservice1 throws an error.

How does a developer debug the problem?

They would like to know the details of what's happening in every microservice from Microservice1 through Microservice5. From such a trace, it should be possible to identify that something went wrong at Microservice5.

The more you break things down into smaller microservices, the more visibility you need into what's going on in the background. Otherwise, a lot of time and effort needs to be spent in debugging problems.

One of the popular ways to improve visibility is by using centralized logging.

Centralized Logging Using Log Streams

Using Log Streams is one way to implement centralized logging. The common way to implement it is to stream microservice logs to a common queue. Distributed logging server listens to the queue and acts as log store. It provides search capabilities to search the trace.

Popular Implementations

Some of the popular implementations include

  • the ELK stack (Elastic Search, Logstash and Kibana) for Centralized Logging.
  • Zipkin, Open Tracing API, and Zaeger for Distributed Tracing.

Summary

In this article, we had a look at centralized logging. We saw that there is a need for high visibility in microservices architecture. Centralized logging provides visibility for better debugging of problems. Using log streams is one way of implementing centralized logging.

Topics:
microservices ,logging ,microservices communication ,log streams

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}