Install Grafana Kubernetes with Storage - Linux Guru

How to install grafana on Kubernetes google cloud.


Grafana is an open source visualization tool, Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team. Here we will deploy grafana on Kubernetes google cloud platform using helm.

Prerequisite : 
1. Make sure you have created kubernetes cluster ready.
2. Connect kubernetes cluster using gcloud.
3. Make sure you have install and configure helm, you can install it by clicking here.
4. Create kubernetes cluster role for helm.
$ kubectl create clusterrolebinding tiller-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default

Grafana Installation on kubernetes using helm.

1. Search the stable grafana package from helm chart.
$ helm search grafana

2. Download stable grafana package from helm chart.
$ helm fetch --untar stable/grafana

you can notice that grafana folder will be there in your server directory. go to the directory and check the files.

-rwxr-xr-x 1 root root   498 Jan 31 14:55 Chart.yaml
drwx------ 2 root root  4096 Jan 31 14:55 dashboards
-rwxr-xr-x 1 root root 14370 Jan 31 14:55 README.md
drwx------ 2 root root  4096 Jan 31 15:19 templates
-rwxr-xr-x 1 root root  8839 Jan 31 15:21 values.yaml

Helm will use values.yaml to install and configure grafana to kubernetes, So you can customise that file setting as per your requirement, be default grafana installed without persistent storage and if you terminate pod then you may able to loss your data, So it will good to attached volume to pod. here are the lines you need to add to attached storage to your grafana deployment.

open values.yaml and add below line.

persistence:
    enabled: true
    accessModes:
     - ReadWriteOnce
    size: 40Gi
    annotations: {}
  # subPath: ""
    existingClaim: ""
    mountpath: /data


3. Install grafana using helm and run values.yaml.
$ helm install --name grafana stable/grafana -f values.yaml

It will fetch values.yaml context to install grafana. Now you can see on kubernetes dashboard or from command to check your pods.

$ kubectl get pods
NAME                                             READY   STATUS    RESTARTS   AGE
grafana-5f84dc64b-52jhb                          1/1     Running   0          1h

$ kubectl get svc
NAME                            TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)        AGE
grafana                         LoadBalancer   10.43.243.40    35.211.211.11   80:31546/TCP   6h

You can use external ip to access your grafana dashboard,you can access it from user name admin and you can get password from below command.

$ kubectl get secret --namespace default grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
kfHgQmfKwgj9hAhhCxPi1upp2YIfIONO7Fq0Jxg2

Use that password to login grafana dashboard. after login please change the password of admin user.




You can add elastic search, cloudwatch, Graphite, Mysql, Prometheus, Stack driver and many more monitoring tools to their Data source and monitor metrics.


If you trouble to configure email alerting from grafana, i will explain it how to configure email alerting in grafana.

How to configure smtp email alert Grafana.

Open your grafana.ini file and add following lines to enable smtp email alert. here i have used my gmail to configure email alert notification.

[smtp]
enabled = true
host = smtp.gmail.com:587
user = vishal@vishalvyas.com
# If the password contains # or ; you have to wrap it with trippel quotes. Ex """#password;"""
password = sksdffdgxnqgufopj  #your gmail password.
;cert_file =
;key_file =
skip_verify = false
from_address = vishal@vishalvyas.com
from_name = Grafana
[emails]
;welcome_email_on_sign_up = false


If you have any issue about authentication or related password, then you have to follow this article for creating Application-specific password.


In the next article i will explain about how to install Prometheus to kubernetes google cloud and how to monitor metrics from Prometheus to visualise by grafana.

Comments