Containerized applications are all the rage in the world of software delivery today. From startups to traditionally run enterprises, regardless of industry, there is an increasing dependency on Docker containers. But a broader view shows the growing complexity and challenges with containers. One of these challenges is the methods of monitoring containers. Monitoring tools are vital for the maintenance of the IT infrastructure of a business. This is where open source comes in. Open source is both technology and business friendly. This feature has proven so beneficial that even highly innovative companies like Google have chosen open source over other options. Open source ensures that innovation is an ongoing process so that the company does not miss out on technological advances of the time. With the growing importance of containers, monitoring tools, and open source software certain tools have emerged as the cream of the crop that many DevOps teams worldwide rely on. Let’s discuss the top eight open source monitoring tools that are considered effective in the market today.
These tools are arranged below in no particular order. They range from monitoring modern container stacks to more traditional hardware-based infrastructure. Before we get into the list of tools, it’s worth mentioning that merely opting for an open source monitoring tool isn’t a silver bullet that will solve all your challenges. You need to keep in mind open source vulnerability management, which involves tasks like forking open source projects, keeping track of updates and versions, and detecting issues with external components early on itself. That said, let’s move on to our list of open source monitoring tools.
InfluxData’s TICK Stack
TICK Stack by InfluxData is a product based on an open source core made up of four distinct projects: Telegraf, InfuxDB, Chronograf, and Kapacitor (TICK). These components are responsible for metrics collection from humans, sensors, or machines. They also engage in aggregation and visualization with alerts. Visualization is deemed to be the core competence of the platform. It uses a modern time-series platform and uses the collected data to build next-generation monitoring, analytics, and make IoT applications faster and easier. The drawback of this product is that high availability of the InfluxDB storage engine is restricted only to users who pay for InfluxData Enterprise or InfluxCloud, InfluxData’s hosted solution.
When it comes to enterprise-class open source monitoring tools, Zabbix is the go-to option for many. It offers real-time monitoring providing users with a built-in Java application server, hardware monitoring, and VMware monitoring. Other features include auto-discovery, mapping, and scalability from data that is collected from servers, virtual machines, and network devices of any kind of IT infrastructure, service, application, and cloud resource. The frontend of the software handles any incoming brute-force attacks. It is free software and is able to perform almost 3 million checks per minute, with added security and datacenter monitoring also available.
Graphite was originally designed and written in 2006 at Orbitz as a side project and ultimately grew to be a foundational monitoring tool. It was released under the open source Apache 2.0 license in 2008 and it was deployed on large businesses to monitor their e-commerce services, plans for growth, and production. It is a tool that runs well both on cheap hardware or cloud infrastructure. It can be used to track the performance of websites, applications, business services, and networked servers. It marked the start of a new generation of monitoring tools as it made it easier than ever before to store, retrieve, share, and visualize time-series data.
Introduced in 1999, Nagios is one of the oldest open source monitoring tools for keeping an eye on IT infrastructure and for viewing current status, historical logs, and basic reports. Users can monitor system metrics, network protocols, applications, servers, network infrastructure, and even receive failure alerts.
If you want to monitor network performance, you can do it using external tools, or ones that track internal metrics. Externally, tools like Dotcom-Monitor run a series of tests to gauge application performance across the world and gauge various aspects of network performance. Tools like Nagios take the alternate route and look at the network from inside.
Nagios XL, Nagios log server, and Nagios network analyzer are the three types of network management tools offered by Nagios. Although all three have the network monitoring feature, Nagios XL is most capable as it offers enterprise-level network monitoring, providing users with bandwidth reports, heartbeat monitoring, custom action URL, email reports, and remote machine monitoring. The enterprise upgrade also provides web-based server console access, business process monitoring, audit logging, and automated decommissioning. Though not the most modern monitoring tool, Nagios is one of the most popular as it is one of the first tools of its kind.
Hyperic, a monitoring tool from VMware, is intended for monitoring custom web applications and their performance across physical, virtual, and cloud environments. It works across application and web servers, databases, operating systems, hypervisors, messaging, and directory servers. Hyperic provides IT infrastructure and OS monitoring, detailed reporting, application and middleware monitoring, alerts and remediation workflows, and a universally extensible API. The creation of baselines and improvisation of the alert function can be found in the enterprise version that Hyperic provides.
Prometheus is the most popular and hottest of all the open source monitoring tools available today. It specializes in monitoring time series data and was initially built by SoundCloud. It is currently hosted by the Cloud Native Computing Foundation (CNCF), which also hosts other projects such as Kubernetes and OpenTracing. Prometheus appears to a have a traditional server and agent setup; however, it works by itself rather than having its own agent. It stores its data in its own time-series database and discards the datapoints from other hosts. It is used to consistently monitor, alter, and autoscale. It supports the Kubernetes application system and it is the most widely used tool to monitor Kubernetes clusters, according to a Kubernetes User Experience survey conducted in 2017 by The New Stack.
Prometheus doesn’t include visualization but integrates with Grafana, an open source visualization tool to plot charts based on the time-series data. In a Kubernetes system where there are numerous data points that are updated at a frantic pace, there’s a need for visualization. Being the foremost Kubernetes monitoring tool, Prometheus is supported by other monitoring tools like Stackdriver from Google Cloud and InfluxData. Prometheus is what puts muscle into Kubernetes management as it reports on data in real-time. If you run a Kubernetes stack, Prometheus is a must-have monitoring tool.
Heapster provides metric collection, basic monitoring capabilities, and supports multiple data sinks to write the collected metrics as well. The code for each sink resides within the Heapster repository itself.
Heapster also enables the use of the Horizontal Pod Autoscaler to autoscale on metrics. It can also support and work with other services such as Kubernetes computer applications like its counterpart Prometheus. It is also found to be the second most-used monitoring tool on the 2017 Kubernetes User Experience Survey by The News Stack.
cAdvisor is a container monitoring tool created by Google with native support for Docker containers. It is shipped in a single container, so it is lightweight and easy to get running. “It is a 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,” according to cAdvisor’s GitHub page. cAdvisor is often used along with Heapster and Prometheus to supervise Kubernetes clusters (Kubernetes Application System).
Open source monitoring tools: Get ‘em at GitHub
Almost all of the above mentioned open source monitoring tools are available on GitHub. Container technology has truly exploded around all levels of different industries thanks to the unique features of open source. Most of these tools work with containers despite them being created before the container era. Monitoring is not a one-size-fits-all practice, so you should choose the combination of monitoring tools that is best suited for your organization. With this much choice between monitoring tools, it’s a great time to be running containerized applications.