title: k8s之安装配置grafana #标题tags: grafana #标签
date: 2020-09-22
categories: 监控 # 分类
记录下k8s中安装配置grafana,并接入Prometheus为数据源。
安装grafana
$ cat > grafana.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: monitoring-grafana
namespace: kube-system
spec:
replicas: 1
selector:
matchLabels:
task: monitoring
k8s-app: grafana
template:
metadata:
labels:
task: monitoring
k8s-app: grafana
spec:
containers:
- name: grafana
image: grafana/grafana:latest
ports:
- containerPort: 3000
protocol: TCP
volumeMounts:
- mountPath: /etc/ssl/certs
name: ca-certificates
readOnly: true
# - mountPath: /var
# name: grafana-storage
env:
- name: INFLUXDB_HOST
value: monitoring-influxdb
- name: GF_SERVER_HTTP_PORT
value: "3000"
# The following env variables are required to make Grafana accessible via
# the kubernetes api-server proxy. On production clusters, we recommend
# removing these env variables, setup auth for grafana, and expose the grafana
# service using a LoadBalancer or a public IP.
#- name: GF_AUTH_BASIC_ENABLED
# value: "false"
#- name: GF_AUTH_ANONYMOUS_ENABLED
# value: "true"
#- name: GF_AUTH_ANONYMOUS_ORG_ROLE
# value: Admin
- name: GF_SERVER_ROOT_URL
# If you're only using the API Server proxy, set this value instead:
# value: /api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
value: /
volumes:
- name: ca-certificates
hostPath:
path: /etc/ssl/certs
#- name: grafana-storage
# emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
labels:
# For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons)
# If you are NOT using this as an addon, you should comment out this line.
kubernetes.io/cluster-service: 'true'
kubernetes.io/name: monitoring-grafana
name: monitoring-grafana
namespace: kube-system
spec:
# In a production setup, we recommend accessing Grafana through an external Loadbalancer
# or through a public IP.
# type: LoadBalancer
# You could also use NodePort to expose the service at a randomly-generated port
# type: NodePort
ports:
- port: 80
targetPort: 3000
nodePort: 30567
selector:
k8s-app: grafana
type: NodePort
EOF
$ kubectl apply -f grafana.yaml
# 查看service
$ kubectl get svc -n kube-system | grep grafana
monitoring-grafana NodePort 10.96.190.62 <none> 80:30567/TCP 9s
访问grafana
访问宿主机IP:30567即可:
输入默认用户名/密码(admin/admin):
修改初始密码:
看到如下grafana首页,就表明grfana安装无误:
grafana导入dashboard
在导入dashboard之前,需要先添加数据源,添加数据源可参考:Prometheus+node_exporter+mysqld_exporter+grafana部署与配置,如下:
我不会去一步步的截图,写下怎么导入dashboard,我只是记录下,如何根据自己的需求去找到dashboard。
grafana官方提供了很多dashboard,我们可以自行去搜索,以node-export为例,如下:
点击进来以后,我们看右边的,如下:
我们可以copy其ID号(需保证grafana服务器可以访问公网),亦可以点击下载json文件(grafana无需访问外网)。
然后回到我们的grafana中,依次点击如下:
然后根据我们是copy的ID号,还是下载的json文件,进行不同的导入方式,如下(二选一即可):
等文件导入后,会让你选择数据源,如下:
导入成功后,自动跳转到导入的dashboard,如下:
根据上述的过程,我们可以照猫画虎般导入更多的dashboard,但需要注意的是,并不是所有dashboard都可以直接正常使用的,有些dashboard可能没更新,和你Prometheus采集到的数据不匹配,就需要进行微调,这个就不展开说了。
另外,我买的课程里提供了一些常用的dashboard,如果感兴趣,可以下载下来瞅瞅(提取码:22h4)。