0%

Grafana 入门

Grafana是一个开源的度量分析与可视化套件。经常被用作基础设施的时间序列数据和应用程序分析的可视化,它在其他领域也被广泛的使用包括工业传感器、家庭自动化、天气和过程控制等。

安装部署

Deployment

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
kind: Deployment
metadata:
name: grafana
namespace: monitoring
spec:
replicas: 1
template:
metadata:
labels:
task: monitoring
k8s-app: grafana
spec:
containers:
- name: grafana
image: grafana/grafana:7.0.5
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3000
protocol: TCP
env:
- name: GF_SECURITY_ADMIN_USER
value: admin
- name: GF_SECURITY_ADMIN_PASSWORD
value: admin321
volumeMounts:
- mountPath: /var/lib/grafana
subPath: grafana
name: storage
securityContext:
fsGroup: 472
runAsUser: 472
volumes:
- name: storage
emptyDir: {}

这里设置了环境变量GF_SECURITY_ADMIN_USERGF_SECURITY_ADMIN_PASSWORD,用来配置 grafana 的管理员用户和密码的。由于 grafana 将 dashboard、插件这些数据保存在/var/lib/grafana这个目录下面的,所以我们这里如果需要做数据持久化的话,就需要针对这个目录进行 volume 挂载声明。

Service

1
2
3
4
5
6
7
8
9
10
11
12
apiVersion: v1
kind: Service
metadata:
name: grafana
namespace: monitoring
spec:
ports:
- name: grafana
port: 80
targetPort: 3000
selector:
k8s-app: grafana

Ingress

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: grafana
namespace: monitoring
annotations:
kubernetes.io/ingress.class: traefik
spec:
rules:
- host: grafana.houmin
http:
paths:
- path: /
backend:
serviceName: grafana
servicePort: grafana

创建 DeploymentService 之后,即可在浏览器访问 Grafana 对应的服务。

数据源

Grafana默认支持的数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch。Grafana支持同时绑定多套数据源,根据自己需求管理即可,下面以 Prometheus 数据源为基准作为示例。

这里需要配置的主要参数如下:

配置项 配置解释
Name 数据源名称,建议以数据源类型+用途命名
Type 数据源类型,选择对应的InfluxDB、Prometheus等即可
URL 填写Prometheus对应的API地址即可,如果Grafana跟Prometheus在同一个Namespace,可以直接ServiceName:http://prometheus:9090
Access API访问方式,一共有 Server 和 Browser 两个选项,建议选择 Server
Access-Browser 浏览器直连数据源API,然后由Grafana解析返回的数据
Access-Server Grafana后端通过API访问数据源,然后返回给浏览器展示

数据源添加/更新成功后会有如下提示:

Dashboard

仪表盘(Dashboard),顾名思义,就是管理各种图表的地方,主要由行(Row)+图表面板(Panel)组成。你可以根据自己的需求手动新建一个Dashboard,也可以从 Grafana 的官方网站导入。

导入 Dashboard

这里从选择倒入Node Exporter for Prometheus Dashboard CN

导入之后,显示统计数据如下所示:

添加 Dashboard

我们也可以完全手动创建 Dashboard,添加面板(Panel)

Panel主要支持:Graph,Singlestat,Dashlist,Table和Text。这里我们以曲线图(Graph)为例

Reference