Skip to content
Grafana-plugin for k8s' monitoring
TypeScript HTML CSS JavaScript Dockerfile
Branch: master
Clone or download
worond Merge branch 'master' into BUGFIX/131-markup
# Conflicts:
#	dist/components/cluster-alerts/cluster-alerts.html
#	src/components/cluster-alerts/cluster-alerts.html
Latest commit 8a2b76c Sep 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist Merge branch 'master' into BUGFIX/131-markup Sep 20, 2019
kubernetes updated cluster role (k8s v1.16) Sep 20, 2019
scripts initial commit Aug 14, 2019
src Merge branch 'master' into BUGFIX/131-markup Sep 20, 2019
.dockerignore initial commit Aug 14, 2019
.gitignore initial commit Aug 14, 2019
Dockerfile initial commit Aug 14, 2019
Gruntfile.js initial commit Aug 14, 2019
LICENSE initial commit Aug 14, 2019
README.md readme.md update Sep 14, 2019
package.json initial commit Aug 14, 2019
tsconfig.json initial commit Aug 14, 2019
tslint.json initial commit Aug 14, 2019

README.md

DevOpsProdigy KubeGraf

Kubernetes plugin for Grafana

An updated version of the Grafana App for Kubernetes plugin (https://grafana.com/plugins/grafana-kubernetes-app), this plugin allows you to visualize and analyze your Kubernetes cluster’s performance. It demonstrates in graphics the main service metrics and characteristics of the Kubernetes cluster. It also makes it easier to examine the application’s life cycle and error logs.

Requirements

  1. Grafana > 5.0.0
  2. Prometheus + node-exporter + kube-state-metrics
  3. Grafana-piechart-panel

Features

The plugin consists of three main info pages with detailed information about the Kubernetes cluster.

Applications overview

  • Logic map of applications;
  • Distribution of Kubernetes entities;
  • List of pod entities with life metrics;
  • Visual presentation of the application’s life cycle and its basic characteristics;
  • Description of the ports that allow access services in the cluster.

Pic. 1: Applications overview

Cluster status

  • Summary about the status of the cluster and the nodes within it;
  • Details of monitoring the application’s life cycle;
  • Visual presentation of where the services in the cluster servers are located.

Pic. 2: Cluster status

Nodes overview

  • Summary of cluster’s nodes;
  • Information about used and allocated resources (RAM, CPU utilization) and the number of pods;
  • Physical distribution of pods.

Pic. 3: Nodes overview

Dashboards

Besides providing general information on the main pages, the plugin allows you to track a cluster’s performance in graphs, which are located on five dashboards.

  • node dashboard

This is a dashboard with node metrics. It displays the employment of resources like CPU utilization, memory consumption, percentage of CPU time in idle / iowait modes, and disk and network status.

Pic. 4: Node dashboard

  • pod resources

Displays how much of the resources the selected pod has used.

Pic. 5: Pod resources

  • deployment dashboard

Pic. 6: Deployment dashboard

  • statefulsets dashboard
  • daemonsets dashboard

The above three dashboards show the number of available / unavailable application replicas and the status of containers in the pods of these applications, and trace containers’ restarts.

Installation

  1. Go to the plugins directory in Grafana:

    cd $GRAFANA_PATH/data/plugins

  2. Copy repository:

    git clone https://github.com/devopsprodigy/kubegraf /var/lib/grafana/plugins and restart grafana-server

    or

    grafana-cli plugins install devopsprodigy-kubegraf-app

    and restart Grafana.

  3. Go to /configuration-plugins in Grafana and click on the plugin. Then click “enable”.

  4. Go to the plugin and select “create cluster”.

  5. Enter the settings of http-access to the Kubernetes api server.

  6. Open the “additional datasources” drop-down list and select the prometheus that is used in this cluster.

Setting up cluster authentication and permissons

This procedure can be used to create a Kubernetes user account with only minimal permissions required by KubeGraf.

  • Create grafana-kubegraf user private key and certificate on one of the master nodes
    openssl genrsa -out ~/grafana-kubegraf.key 2048
    openssl req -new -key ~/grafana-kubegraf.key -out ~/grafana-kubegraf.csr -subj "/CN=grafana-kubegraf/O=monitoring"
    openssl x509 -req -in ~/grafana-kubegraf.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -out /etc/kubernetes/pki/grafana-kubegraf.crt -CAcreateserial
    
  • Copy /etc/kubernetes/pki/grafana-kubegraf.crt to all other master nodes.
  • Apply Kubernetes manifests in kubernetes/ directory to give required permissions to grafana-kubegraf user:
    kubectl apply -f kubernetes/
    
  • Use generated certificate and key from the first step to authenticate KubeGraf plugin to your cluster.
You can’t perform that action at this time.