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.
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.