When you have numerous containers running in your environment, whether in production or in your home lab, you need to have Docker container monitoring tools. These allow you to monitor docker containers running on your container hosts or swarm clusters to ensure everything is working as expected. Monitoring docker containers requires the right tools to work correctly. A proper monitoring tool provides many capabilities. Let’s look at how to monitor Docker containers with 5 free tools.
Containerized applications have exploded in the enterprise data center and in cloud infrastructure-as-a-service (IaaS) environments. Organizations are spinning up containerized workloads after refactoring monolithic applications from legacy three-tier applications running in virtual machines.
Docker is the de facto standard for running containers in the enterprise as it allows easily running application images for common enterprise applications with resource isolation parameters. Containers are much quicker to provision due to their lightweight size and minimal requirements.
Those with traditional monitoring tools may struggle with monitoring containers in the environment. Monitoring tools must be able to monitor containerized applications and understand Docker container monitoring and log management to quickly troubleshoot performance issues for the Docker target.
Docker monitoring tools can act as a container advisor to keep a pulse on the health of the environment, ingesting the raw data from Docker hosts and presenting this in a meaningful way.
Container or virtual machine monitoring tools
A container monitoring tool must understand the underlying infrastructure that makes containers work, including the Docker daemon, networking, storage, Docker API, and CPU metrics for each container. Many container monitoring tools also can monitor container images. Traditional monitoring systems generally only monitor virtual machines.
Monitoring Virtual Machines is still needed
Monitoring virtual machines and other infrastructure metrics is still relevant to containers since container hosts are often virtual machines. So, monitoring the container host performance and other KPIs associated with the host, such as CPU and memory usage, is still important.
Modern monitoring tool for containers provides native support for performance metrics of the containers themselves without digging for this in low-level logs as you may with other tools.
Container orchestration tools
Container orchestration tools like Docker Swarm and Kubernetes are commonly used today for orchestrating containers in the enterprise data center. It is also a great idea to have monitoring tools that understand these orchestration platforms for Docker monitoring and be able to explore container resource usage in these environments, among other infrastructure monitoring.
Monitoring Docker containers
Monitoring Docker containers includes keeping an eye on container resource usage, recording historical resource usage, running containers metrics, monitoring the Docker daemon, Docker container metrics, CPU usage, Docker metrics, container status, container’s CPU usage, host metrics, and many others of your entire infrastructure.
Gathering performance metrics
Like monitoring any other infrastructure, including virtual machines, monitoring Docker containers allows you to get an idea of the average and peak loads of your entire Docker infrastructure and other key performance metrics like network statistics.
Good Docker monitoring solutions should be part of any infrastructure monitoring and application monitoring solutions used in the enterprise to fully view all the required components and infrastructure related to business-critical applications.
Specific container monitoring
Additionally, with tools to monitor Docker containers, you can see the performance of a particular container and even real-time monitoring and CPU utilization, memory usage, and container logs of individual docker containers.
5 free Docker monitoring tools you should know about
There are free Docker monitoring tools that allow you to easily get a view of multiple containers running inside Docker on your container host. The monitoring system solutions we will look at are free and open-source tools you can download today and start using to monitor:
Monitor containers running
Detail individual containers
View Docker logs
6 Solutions for monitoring Docker containers
Let’s look at the following solutions:
Docker stats command
Zabbix Docker monitoring tools
Lens and OpenLens
Docker stats command
The Docker stats command is most likely one you already know about since it is a built-in command included with the Docker command line. The Docker stats command is like a Linux top command that gives similar output in the command line window.
As you can see below, we get a quick view of the CPU, memory usage, memory percentage, network I/O, Storage I/O, PIDs, etc.
The next solution that is free, easy, and open-source is a solution called Glances. With Glances, you get a dashboard of sorts from the command line that gives you an awesome view of your Docker containers running in the environment. It gives a global view of very detailed statistics in real-time from your Docker containers, allowing you to easily spot “hot spots” and problems in the environment, such as Docker performance, individual docker containers having issues, container layer issues, etc.
The information is much more detailed than the Docker stats command output.
Portainer needs no introduction as it provides one of the most fully featured Docker management tools around. It even allows admins to overcome the security shortcoming of the free and open-source Docker variant to bring it up to par with the paid commercial Docker Enterprise.
Between the beautiful graphical user interface, management tools, role-based access control, Kubernetes integration, and security features, it is arguably one of the, if not the best Docker container management tools out there.
It also offers a Portainer agent allowing you to manage all Docker hosts from a single Portainer instance. It is definitely one of my favorite tools.
Getting performance metrics from running containers with Portainer.
Download Portainer here: https://www.portainer.io/
Zabbix Docker monitoring tools
Those familiar with monitoring will be familiar with Zabbix. It is often touted as one if not “the best” free monitoring solutions you can download and configure. With Zabbix and the Zabbix agent, you can stand up very detailed Docker container monitoring to keep an eye on your infrastructure environment.
Automatic Discovery capabilities
Zabbix has automatic discovery capabilities, allowing it to discover the running containers, images, and other metrics and multiple services in the environment affecting application-specific metrics. It is also one of the tools with a user interface GUI that allows you to easily browse and view container metrics and monitor from the UI, including container performance.
Very Detailed Information along with Container Host Monitoring
Zabbix gets very detailed in the information you can pull for individual containers running on your Docker hosts. It also can pull general container host information with virtual machine monitoring as well as Linux monitoring via the Zabbix agent.
Zabbix strong suit is consuming information and not really actually configuring your containers like you can with Portainer or Lens.
Download Zabbix here: Download and install Zabbix
CheckMK is a great monitoring tool that, like Zabbix, monitors way more than just Docker. It can monitor your virtual environment, Kubernetes, Docker Swarm, and many other infrastructure monitoring needs.
The CheckMK dashboard is extremely pleasing to the eyes and has a lot of valuable information presented in a way that is easy to read and quickly provides value. However, it doesn’t have the configuration features and capabilities at a deep low-level like Portainer or Lens.
Viewing Docker container information in CheckMK for monitoring containerized applications.
Download CheckMK here: Download the Checkmk
Lens and OpenLens
Lens and Openlens are great Kubernetes monitoring solutions. OpenLens is the open-source variant of Lens (a commercial product that also has a free offering). Both look identical and provide tremendous capabilities monitoring, configuration, and administering Kubernetes clusters.
Both have beautiful graphical user interfaces that allow admins to visualize the environment and see performance metrics in real-time with the monitoring tool capabilities provided, much like Portainer. It makes pinpointing performance issues much easier.
Looking at node performance.
The space for monitoring Docker containers is crowded, with many solutions available. Some are very modern applications with a specialty in monitoring, configuring, and administering containers (Portainer, Lens, etc.). Others are more traditional monitoring tools with the capabilities to monitor Docker containers (Zabbix, Checkmk, etc.). If you want the basics, you can use the built-in docker stats output or something more advanced like Glances. Each solution has strengths and weaknesses.