Start your 14-day free trial today & Get 20% Off All Annual Managed ELK Plans

No Credit Card Required

Try Logit.io Free

Already have an account? Sign In

Send data via Azure Kubernetes Metrics to your Logstash instance provided by Logit.io

Azure Kubernetes Metrics

Collect and ship Azure Kubernetes container service metrics to Logstash and Elasticsearch.

Metricbeat is a lightweight shipper that helps you monitor Azure Kubernetes Service by collecting metrics from the containers running on the host system. Configure Metricbeat using the pre-defined examples below to collect and ship Azure Kubernetes service metrics and statistics to Logstash or Elasticsearch.

Step 1 - Install Kube-State-MetricsCopy

You are going to need an instance of Kube State Metrics running in your cluster so that we can access different metrics that aren't accessible using just Metricbeat. Kube-state-metrics is a simple service that listens to the Kubernetes API server and generates metrics about the state of the objects.

In the Azure cloud shell run the following command to download the kube-state-metrics.

go get k8s.io/kube-state-metrics

Now change into the newly downloaded directory:

cd go/src/k8s.io/kube-state-metrics/

Then to deploy this project to your cluster you simply run:

kubectl apply -f examples/standard
Read more about what configuration and options are available for Kube State Metrics There are different settings and configurations you can use specifically for your cluster but for this example the default settings are being used.

Step 2 - Download Manifest FileCopy

Download the metricbeat kubernetes deployment manifest using the link below:

Click to download metricbeatbeat-kubernetes-7.10.0.yaml

Step 3 - Insert stack detailsCopy

Now you have the manifest you're going to want to add your Stack details. Open the file in a text editor.

Locate the environment variables controlling the logging destination and enter your Stacks Logstash input information.

We need to change the environment variables on both lines 142 & 270.

env:
- name: LOGSTASH_HOST
  value: "your-logstash-host"
- name: BEATS_PORT
  value: "your-ssl-port"

This is because Kubernetes runs a Metricbeat instance on each node in the cluster and also an additional single instance of Metricbeat to retrieve metrics for the cluster itself.

Step 4 - Deploy podCopy

Now your Metricbeat deployment manifest is updated with your Stack details, you can deploy it using the following command in Azure Cloud Shell:

kubectl apply -f metricbeat-kubernetes-7.10.0.yaml

Step 5 - Confirm deployment succesfulCopy

Confirm that your pod has successfully been deployed using one or all of the following commands in Azure Cloud Shell:

kubectl get po -A

kubectl --namespace=kube-system get ds/metricbeat

kubectl --namespace=kube-system get pods

You should see a pod for each Kubernetes node with a name similar to metricbeat-abcde listed.

Step 6 - Kibana Example LogCopy

You should now start to see logs arriving in Kibana from your Kubernetes cluster, similar to the example below.

Toggle View

Expand View

Return to Search