In application development, we have to deal with many dependencies regrading npm modules, java packages that is present on one application but not on other.When we install these dependencies globally, It creates a problem either on deployment process or by any other developer. In Production environment, We have to deal with monitoring different kinds of microservices for smooth running of services.
What is Docker
Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.
Top Tools to Monitor Docker Servives
Docker and Host Monitoring w/ Prometheus
Play-With-Docker (PWD) to start-up a Prometheus stack containing Prometheus, Grafana and Node scraper to monitor your Docker infrastructure. The Try in PWD below allows you to quickly deploy the entire Prometheus stack with a click of the button. This will allow you to quickly test the stack to see if it meets your needs.
cAdvisor (Container Advisor) provides container users an understanding of the resource usage and performance characteristics of their running containers. It is a running daemon that collects, aggregates, processes, and exports information about running containers. Specifically, for each container it keeps resource isolation parameters, historical resource usage, histograms of complete historical resource usage and network statistics. This data is exported by container and machine-wide.
cAdvisor has native support for Docker containers and should support just about any other container type out of the box. We strive for support across the board so feel free to open an issue if that is not the case. cAdvisor's container abstraction is based on lmctfy's so containers are inherently nested hierarchically.
Monitoring with Dynatrace is easy, as it should be. Dynatrace monitors your containerized applications without touching your images or modifying your run commands. Dynatrace automatically detects the creation of new containers and monitors the applications and services contained within them.
Docker monitoring with Dynatrace is easy, as it should be. Dynatrace automatically scales with your environment by discovering and monitoring new containers. Track deployments of your Dockerized microservices and monitor distributed applications across your network of hosts or cloud instances.
Dynatrace is designed to deal with highly dynamic infrastructure where containers come and go frequently. By monitoring your containers with Dynatrace you’re all set for the monitoring of microservices and the associated micro-deployments, which are commonly delivered via Docker containers.
a href="https://github.com/amir20/dozzle" rel="noopener noreferrer" target="_blank">Dozzle is a real-time log viewer for Docker. It's free. It's small. And it's in your browser. While dozzle should work for most, it is not meant to be a full logging solution. For enterprise use, I recommend you look at Loggly, Papertrail or Kibana. But if you don't want to pay for these services, then Dozzle can help! Dozzle will be able to capture all logs from your containers and send them in real-time to your browser. Installation is also very easy. Dozzle is not a database. It does not store or save any logs. You can only see live logs while using Dozzle.
Axibase Collector streams performance counters, configuration changes and lifecycle events from the Docker engine(s) into Axibase Time Series Database for roll-up dashboards and integration with upstream monitoring systems.
We are currently using promethus for monitoring services in kubernetes clustors and we are satified by its performance.