一、Grafana简介

二、安装Grafana

通过Helm安装

添加仓库并更新:

  1. helm repo add grafana https://grafana.github.io/helm-charts
  2. helm repo update

先创建一个namespace,以免默认添加到default:

  1. kubectl create namespace grafana

部署Grafana:

  1. helm install grafana grafana/grafana -n grafana

部署完成,看到控制台打印:

  1. NAME: grafana
  2. LAST DEPLOYED: Fri Oct 30 17:38:22 2020
  3. NAMESPACE: grafana
  4. STATUS: deployed
  5. REVISION: 1
  6. NOTES:
  7. 1. Get your 'admin' user password by running:
  8. kubectl get secret --namespace grafana grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
  9. 2. The Grafana server can be accessed via port 80 on the following DNS name from within your cluster:
  10. grafana.grafana.svc.cluster.local
  11. Get the Grafana URL to visit by running these commands in the same shell:
  12. export POD_NAME=$(kubectl get pods --namespace grafana -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=grafana" -o jsonpath="{.items[0].metadata.name}")
  13. kubectl --namespace grafana port-forward $POD_NAME 3000
  14. 3. Login with the password from step 1 and the username: admin
  15. #################################################################################
  16. ###### WARNING: Persistence is disabled!!! You will lose your data when #####
  17. ###### the Grafana pod is terminated. #####
  18. #################################################################################

通过Docker安装(仅供了解)

  1. docker pull grafana/grafana
  2. docker run -d -p 3000:3000 --name grafana --restart=always grafana/grafana
  3. # or
  4. docker run -d -p 3000:3000 --name grafana grafana/grafana
  5. docker update --restart=always grafana

通过yum安装(仅供了解)

  1. yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-6.3.3-1.x86_64.rpm -y
  2. systemctl start grafana-server
  3. systemctl enable grafana-server

通过yaml文件部署(仅供了解)

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: grafana-dashboard
  5. spec:
  6. template:
  7. metadata:
  8. labels:
  9. name: grafana-dashboard
  10. namespace: grafana-dashboard
  11. selector:
  12. run: grafana-dashboard-pod
  13. ports:
  14. - protocol: TCP
  15. port: 3000
  16. targetPort: 3000
  17. ---
  18. apiVersion: apps/v1beta1
  19. kind: Deployment
  20. metadata:
  21. name: grafana-dashboard-pod
  22. namespace: kube-system
  23. spec:
  24. replicas: 4
  25. template:
  26. metadata:
  27. labels:
  28. run: grafana-dashboard-pod
  29. spec:
  30. containers:
  31. - name: grafana
  32. image: grafana/grafana:latest
  33. ports:
  34. - containerPort: 3000
  35. ---
  36. apiVersion: extensions/v1beta1
  37. kind: Ingress
  38. metadata:
  39. name: grafana-dashboard-ing
  40. annotations:
  41. kubernetes.io/ingress.class: traefik
  42. spec:
  43. rules:
  44. - host: grafana.test.com
  45. http:
  46. paths:
  47. - backend:
  48. serviceName: grafana-dashboard
  49. servicePort: 3000

三、暴露Grafana管理界面

首先在hosts中添加:

127.0.0.1    grafana.dashboard.com

创建一个 IngressRoute:

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: grafana-route
  namespace: grafana
spec:
  entryPoints:
    - web
  routes:
    - match: Host(`grafana.dashboard.com`)
      kind: Rule
      services:
        - name: grafana
          port: 80

应用即可:

kubectl apply -f route.yaml -n grafana

四、访问Prometheus管理界面

经过前面的一通操作,我们可以直接在浏览器中输入 http://grafana.dashboard.com 访问:
image.png
第一次访问的时候,通过以下命令获取密码:

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

用户名为 admin,用刚刚获取到的密码登录:
image.png

五、配置 DataSource

添加一个数据源
📃 Grafana - 图3

把 Prometheus 的地址填上
📃 Grafana - 图4

导入 prometheus 的模板
📃 Grafana - 图5

打开左上角选择已经导入的模板会看到已经有各种图
📃 Grafana - 图6

导入模板:文件路径 k8s-ha-install/heapster/grafana-dashboard
📃 Grafana - 图7
📃 Grafana - 图8