Skip to main content

Secure nginx with Let's Encrypt on Ubuntu 18.04

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.




©linuxguru

Comments

Popular posts from this blog

Another instance of Certbot is already running - Solved - Linux guru

Error : Another instance of Certbot is already runningcertbot --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns --installer nginx -d *.vishalvyas.com Another instance of Certbot is already running Reason : when you run certbot form your machine and unexpectedly stop the command, Then cert bot is not running but it left some .certbot.lock files behind.You need to kill the certbot instance form your machine. Solution : Run the below command to find killed certbot.find / -type f -name ".certbot.lock" You can see result of the command, If there are, you can remove them. Run below command to remove them.find / -type f -name ".certbot.lock" -exec rm {} \; And try again.

Install Apache Using Ansible Playbooks

Ansible is a automation tool which is widely used, you can install and install, configure and manage number of system and services remotely. you can install software and manage services and tasks without needing manually log in to each servers. you have to install ansible in one machine and use ssh to communicate host each other.



Ansible uses Playbooks which is written in YAML format. it's uses module base format. with playbook can run multiple tasks at time and provide more advance functionality, YAML file always start with "---" syntax. In this article we will see how to install and configure apahce2 using ansible YAML script. Master server : 10.80.253.11 [Ansible server, ] Slave 1 : 10.80.253.12 [need to install apache2 in slave 1] Slave 2 : 10.80.253.13 [need to install apache2 in slave 2] We need to configure slave server info in our ansible configuration file, click here to know how to add client machine to ansible. Let's update our apache2.yml file and install…

Create aws s3 bucket using cli

In this article i will explain you to how to manage s3 bucket and objects using AWS cli command line interface. for that you will have to configure AWS cli interface to your local linux machine. You can configure cli from. HERE.




After configured aws cli to your local machine, you can run all below commands. How to create bucket using AWS Cli.root@master:~# aws s3 mb s3://linuxgurubucket make_bucket: linuxgurubucket Listing Bucket : To list all bucket : root@master:~# aws s3 ls 2018-05-01 15:28:37 linuxgurubucket To list all objects from bucket :root@master:~# aws s3 ls s3://linuxgurubucket 2018-05-01 15:32:16 71515 vishal.jpg How to copy local file to s3 using aws cp command :root@master:~# aws s3 cp ansible.sh s3://linuxgurubucket/ upload: ./ansible.sh to s3://linuxgurubucket/ansible.sh To check it's upload or not :root@master:~# aws s3 ls s3://linuxgurubucket/ 2018-05-01 15:34:19 82 ansible.sh 2018-05-01 15:32:16 71515 vishal.jpg To remove file from s3 bucket using cli: