总字符数: 8.24K
代码: 0.73K, 文本: 2.34K
预计阅读时间: 13 分钟
引言
Grafana 本身是非常轻量级的,不会占用大量资源,此外 Grafana 需要一个数据库来存储其配置数据,比如用户、数据源和仪表盘等,目前 Grafana 支持 SQLite、MySQL、PostgreSQL 3 种数据库,默认使用的是 SQLite,该数据库文件会存储在 Grafana 的安装位置,所以需要对 Grafana 的安装目录进行持久化.
安装Grafana
要安装 Grafana 的方式有很多,我们这里使用的是 CentOS 系统,可以在 Grafana 官方下载页面筛选合适的版本
根据自己的需求来进行安装,比如我们这里直接使用 rpm 包进行安装:
1 | wget https://dl.grafana.com/enterprise/release/grafana-enterprise-10.0.2-1.x86_64.rpm |
安装完成后我们就可以使用 systemd 来管理 Grafana:
1 | systemctl daemon-reload |
默认的启动配置环境变量位于 /etc/sysconfig/grafana-server
文件中:
1 | cat /etc/sysconfig/grafana-server |
从上面文件中可以找到 Grafana 的各种数据配置路径,比如数据目录、日志目录、插件目录等等,正常启动完成后 Grafana 会监听在 3000 端口上,所以我们可以在浏览器中打开 Grafana 的 WebUI.

默认的用户名和密码为 admin
,也可以在配置文件 /etc/grafana/grafana.ini
中配置 admin_user
和 admin_password
两个参数来进行覆盖.


创建面板
面板(Panel)是 Grafana 中基本可视化构建块,每个面板都有一个特定于面板中选择数据源的查询编辑器,每个面板都有各种各样的样式和格式选项,面板可以在仪表板上拖放和重新排列,它们也可以调整大小,所以要在 Grafana 上创建可视化的图表,面板是我们必须要掌握的知识点.
数据源
在创建面板之前我们需要指定我们的面板数据来源,也就是数据源,Grafana 支持多种数据源,我们这里当然使用 Prometheus 作为数据源来进行说明.在 Grafana 左侧工具栏选择 Configuration
,点击到下面的 Data sources
,打开添加数据源的页面:

点击页面中的 Add data source
按钮开始添加数据源:


Access 选择默认的 Server
代理方式,这样就相当于 Grafana 程序去访问 Prometheus 而不是在浏览器端去访问,
如果 Prometheus 配置有认证,则还需要在下发配置 Auth
信息,配置完成后,拉到最下方点击 Save & test
,提示添加成功即表面数据源添加成功了.
然后在数据源列表中就会出现我们刚刚添加的 Prometheus 这个数据源了

添加面板
面板是属于某一个 Dashboard 的,所以我们需要先创建一个 Dashboard,在侧边栏点击 +
切换到 Dashboard
下面开始创建 Dashboard:








添加参数
现在我们在一个 Dashboard 中添加了两个 Panel,我们可以很明显看到会直接将所有的节点信息展示在同一个面板中,但是如果有非常多的节点的话数据量就非常大了,这种情况下我们最好的方式是将节点当成参数,可以让用户自己去选择要查看哪一个节点的监控信息,要实现这个功能,我们就需要去添加一个以节点为参数的变量来去查询监控数据.
点击 Dashboard 页面右上方的 Dashboard settings
按钮,进入配置页面:

在该 Settings
页面可以来对整个 Dashboard 进行配置,比如名称、标签、变量等:





但是这个时候的面板并不会随着我们下拉框的选择而变化,我们需要将 instance
这个变量传入查询语句中,比如重新修改CPU使用率
的查询语句:


