Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Monitoring OpenShift on Azure With CoScale

DZone's Guide to

Monitoring OpenShift on Azure With CoScale

As a result of a three-way partnership, see how you can easily monitor your containers on Azure with CoScale.

· Cloud Zone
Free Resource

Linkerd, the open source service mesh for cloud native applications. Get the complete guide to using Linkerd and Kubernetes to build scalable, resilient applications.

As containers are becoming the preferred way to rapidly build and deploy applications, organizations are also starting to look at managed platforms to host their containerized applications. Red Hat OpenShift is a popular choice as it provides an enterprise-grade container platform based on Docker and Kubernetes in a variety of consumption models, from fully hosted to on-premises. For enterprises that don’t want to bother with an on-premises installation, but still want a private OpenShift instance, hosting on Microsoft Azure is an interesting alternative.

In this blog post, we will explain how to monitor an OpenShift environment on Azure, using a private CoScale instance on Azure. This is the result of a partnership between CoScale, Microsoft, and Red Hat.

Monitoring OpenShift on Azure

Both Azure and OpenShift provide management dashboards that provide good insights into resource usage at the host and container level, however they don’t provide real-time visibility in the performance of your microservices and the dynamics of containers. This is where a service as CoScale comes in. CoScale is an OpenShift Primed partner that provides integrated monitoring of your hosts and containers, as well as detailed insight into the services that run inside your containers. Powered by anomaly detection, this lets you quickly detect abnormal behavior.

CoScale on Azure

Now you can also install the CoScale monitoring platform as a private instance on Azure. This makes it very easy to monitor any service on Azure (including OpenShift) from within Azure. This blog post will provide more details about running OpenShift and CoScale on Azure, and how you can use CoScale to monitor your applications running on OpenShift.

Azure Resource Manager

Deployment of OpenShift and CoScale on Azure can be easily done via the Azure Resource Manager. This allows you to provision your applications using a declarative template. In a single template, you can deploy and manage multiple services and their dependencies as a group. You use the same template to repeatedly deploy your application during every stage of the application lifecycle.

Installing OpenShift on Azure

If you don’t have an OpenShift instance running yet, you can easily set one up with the following template:
https://github.com/Azure/azure-quickstart-templates/tree/master/openshift-origin-rhel

This template deploys OpenShift Origin with basic username / password for authentication to OpenShift. You can select to use either CentOS or RHEL for the OS.

openshift_on_azure_template.png

Installing CoScale on Azure

The same goes for installing CoScale on Azure with the following template:
https://github.com/Azure/azure-quickstart-templates/tree/master/coscale-dev-env

This template installs the CoScale platform on a single VM and automatically creates all required objects, such as a storage account, virtual network, nic, load balancer, public ip, etc.

You will need to provide a registration key that can be obtained via https://www.coscale.com/azure/ and provide your account credentials, as shown below.

coscale_on_azure_template.png

Once you click “Deploy on Azure” and the template finishes, it will output the URL of your private CoScale instance. This will take approximately 10-15 minutes.

Setting up the CoScale Agent

The GitHub repository also contains a deploy-agent.sh script to easily deploy the CoScale agent on all VMs in a resource group. With the CoScale agent you can monitor your Kubernetes cluster and Docker containers, as well as the services running inside your containers by setting up the right plugins. For more information about configuring the plugins for OpenShift, see our OpenShift monitoring blog post.

Start Monitoring your OpenShift Environment

You can now start monitoring the performance of your OpenShift platform and the applications running on it via CoScale’s dashboards, many of which are available out-of-the-box.

Typically you would start with a high level dashboard to get see the main performance metrics of your application and its main services. For example, the dashboard below shows the response time of different microservices as well as a heatmap of the containers for these microservices, as well as some other high-level metrics.

microservices_monitoring_dashboard.png

From there you can drill into more details, for example showing general resource metrics of your hosts and containers that are collected by our lightweight agent.

openshift_azure_server_monitoring.png

openshift_azure_container_monitoring.png

The next two dashoards show more information about your Kubernetes cluster in OpenShift and the containers and microservices it hosts. This quickly shows which services or containers are having issues, as also explained in our previous blog post on monitoring Kubernetes

openshift_azure_cluster_monitoring.png

openshift_azure_kubernetes_monitoring.png

The following dashboard shows performance metrics of an Elasticsearch service running inside the containers. This is a default dashboard provided by CoScale that monitors the most important Elasticseach KPIs and that automatically pics up the metrics from new containers, as also explained in our previous blogpost on monitoring containers and the services inside.

openshift_azure_elasticsearch_monitoring.png

Of course, you don’t want to be constantly looking at all these dashboards. That is why our anomaly detection will automatically detect abnormal behaviour for you, as shown in some of the examples below.

In the first example, our anomaly detection detects an anomaly at the services level, where there is an abnormal high request rate on all containers for a particular service. By detecting this anomaly at the services level, we avoid having to send anomalies for each container.

openshift_azure_anomaly_detection.png

In the second example, we detect an anomaly on one container that spins into an infinite loop and shows abnormal CPU usage compared to other containers for the same service. 

openshift_azure_kubernetes_anomaly_detection.png

Linkerd, the open source service mesh for cloud native applications. Get the complete guide to using Linkerd and Kubernetes to build scalable, resilient applications.

Topics:
red hat openshift ,microsoft azure ,cloud ,coscale

Published at DZone with permission of Peter Arijs, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}