title: k8s之安装配置grafana #标题tags: grafana #标签
date: 2020-09-22
categories: 监控 # 分类
记录下k8s中安装配置grafana,并接入Prometheus为数据源。
安装grafana
$ cat > grafana.yaml << EOFapiVersion: apps/v1kind: Deploymentmetadata:name: monitoring-grafananamespace: kube-systemspec:replicas: 1selector:matchLabels:task: monitoringk8s-app: grafanatemplate:metadata:labels:task: monitoringk8s-app: grafanaspec:containers:- name: grafanaimage: grafana/grafana:latestports:- containerPort: 3000protocol: TCPvolumeMounts:- mountPath: /etc/ssl/certsname: ca-certificatesreadOnly: true# - mountPath: /var# name: grafana-storageenv:- name: INFLUXDB_HOSTvalue: monitoring-influxdb- name: GF_SERVER_HTTP_PORTvalue: "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/proxyvalue: /volumes:- name: ca-certificateshostPath:path: /etc/ssl/certs#- name: grafana-storage# emptyDir: {}---apiVersion: v1kind: Servicemetadata: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-grafananame: monitoring-grafananamespace: kube-systemspec:# 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: NodePortports:- port: 80targetPort: 3000nodePort: 30567selector:k8s-app: grafanatype: NodePortEOF$ kubectl apply -f grafana.yaml# 查看service$ kubectl get svc -n kube-system | grep grafanamonitoring-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)。
