With the recent successes and near-omnipresence of Docker in the IT industry during the past two years, the common approach to deploying applications into environments has changed dramatically. Containerization is everywhere and “going cloud” has become a mainstream mantra! Computing clusters in private and public clouds are also common now.
Clustering Makes Data Centers Liquid
Data centers are no longer just collections of computing instances and servers. Increasingly data centers are fully virtualized software-defined clusters that offer elastic partitioning of applications. Apache Mesos is a cluster resource manager that enables you to distribute and run a variety of tasks within a shared pool of cluster nodes. Mesos is flexible in terms of the types of tasks it enables you to execute on clusters. You can execute long-running services in Docker containers using Marathon. You can schedule MapReduce jobs in your Hadoop cluster. And you can Cassandra distributed databases or cron-like jobs using Chronos.
Find Your Mesos Masters
Monitoring Mesos masters and slave nodes allows you to learn about the health of your nodes from an infrastructure perspective. In the example below, taken from our demo environment, you can see that our Mesos masters are healthy.
Digging into an individual master node shows you the processes that run on that node. As you can see, this master node is running at only partial capacity as it consumes low CPU time and only a small fraction of available memory.
Drill Down to Your Mesos Slave Nodes
By clicking the infographic on any Mesos master Host page you can view all the nodes that have active network connections to the selected master.
This list typically includes a number of slave nodes. You can click a slave node to see if the node is working at capacity. You can also see the processes and containers that run on that slave node.
Full-stack Monitoring for Mesos Clusters
In this example, 19 Docker containers run on this node by means of Mesos. Take a look at the container names—all names that have the prefix mesos- are started by Mesos and automatically detected via Ruxit Docker monitoring. 14 of these containers run Tomcat services. One executes a Java application. And four run Nginx instances. There is also a Hadoop DataNode and a fuse-dfs process running. At this point you have insights into infrastructure, process, and network data that could otherwise only be captured at the operating system level.
Ruxit can detect services that are provided via Docker containers running across multiple hosts. Ruxit analyzes all requests from calling services and applications as well as the requests to called services and databases. This enables you to track application performance in a Mesos cluster, including response times and failure rates, giving you an application-centric perspective on the tasks you run in your cluster. You can drill down to code level and also track performance of database statements.
Validate Application Deployment
At the bottom of each Services page (shown above), you’ll find a list of the Mesos nodes and processes that provide the service. The names of the processes that run within each mesos-prefixed container are shown in the Processes column. The three listed Tomcat processes are based on the same Docker image and run on separate Mesos slave nodes. Ruxit has automagically detected that these processes serve the same service and has therefore identified them as a single service. In this way you can easily confirm that your services have been deployed correctly.