Hands-on guide to logging and monitoring containers at scale
Kubernetes is an open source platform designed to automate deployment, scaling, and operation of application containers. Kubernetes automates various aspects of application development, which is extremely beneficial for enterprises. Centralized logging is crucial for any production-grade infrastructure, especially in a containerized architecture. Since Kubernetes is dynamic and does not store change logs except the recent changes, logging and monitoring is highly imperative for saving pod logs.
You’ll learn how to build your centralized logging and send data for monitoring. To set up centralized logging, you’ll establish one logging agent per Kubernetes node to collect all logs of all running containers from disk and transmit them to Elasticsearch. You’ll search for log data, monitor the containers, and also collect metrics using Kibana. You’ll decide how your final log data will be presented. By the end of the course, you’ll be able to use centralized logging and monitoring techniques for debugging purposes to find out reasons for crashes, and trigger alerts if there is a spike in error messages (which can be more efficient than a system health check).
- Discover what Elasticsearch, Fluentd, and Kibana are (aka the EFK stack)
- See how to implement a centralized monitoring and logging platform with these technologies
- Discover what Kubernetes is and how to create a Kubernetes cluster in GCP for modern, containerized applications
- Deploy applications from Kubernetes to the cloud
- Scale the number of applications running in Kubernetes
- Install and configure monitoring and logging agents on the Kubernetes nodes
- Create powerful visualizations for metrics stored Kibana
- Effectively and efficiently analyze logs stored in Kibana
Walter Dolce is a Software and Platform Engineer based in London, United Kingdom. He has worked for both small/medium-sized businesses as well as large enterprises such as the BBC and Just Eat. Over the course of the years, he has developed deep knowledge of various areas of Software Engineering concepts and practices such as - for example - Test-Driven Development, Behaviour-Driven Development, the SOLID principles, Design Patterns, etc. He has later on transitioned to the DevOps/Platform Engineering space where he used that knowledge to implement highly available, resilient systems and platforms running in today’s major Cloud providers such as Amazon Web Services, Google Cloud Platform and Microsoft Azure.