关于
- 格拉法纳是一个仪表板工具,可以可视化各种数据
- 这篇文章我会在本地环境下快速试用
- 在 Docker 上准备 Grafana 和 MySQL 容器
- 使用 MySQL 创建合适的数据库
- 在 Grafana 中查看该数据
- (无需用户注册或登录 Grafana)
环境
- Windows 11 主页
- WSL2 (Ubuntu-20.04)
- 码头工人
使用 MySQL 创建数据库
创建一个 MySQL 容器
使用以下命令创建 MySQL 容器。为了简单的数据持久化,这里我们创建一个名为db的本地目录并挂载它。即使您重新创建容器,这也会保留数据库。此外,还指定了用户,因为如果未设置访问权限,它将被写为 root。
尝试 WSL2 时需要--net host。此外,Windows 防火墙在不禁用它的情况下也很好。
创建一个 MySQL 容器
mkdir ./db
docker run --name some-mysql \
--user `id -u` \
-v `pwd`/db:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=pw-for-root \
--net host \
-p 3306:3306 \
-d --rm mysql:8.0.30
配置 MySQL
输入使用以下命令创建的容器。密码是pw-for-root。
进入 MySQL
docker exec -it some-mysql mysql -u root -p
之后,为 Grafana 创建一个用户,稍后将使用以下 SQL 语句。 Grafana 只允许 SELECT。在不使用通配符的情况下正确指定数据库名称和表名称会更安全。
为 Grafana 添加用户
CREATE USER 'grafanaReader' IDENTIFIED BY 'pw-for-grafana';
GRANT SELECT ON *.* TO 'grafanaReader';
创建示例数据库
接下来,使用以下 SQL 语句创建一个合适的数据库。这里我们创建一个普通表和一个时间序列表。
完成后,按 Ctrl+d 退出并确定。
创建示例数据库
CREATE DATABASE IF NOT EXISTS test_db;
CONNECT test_db;
CREATE TABLE user_table (
id int(10) AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20)
);
INSERT INTO user_table(name) VALUES ('Alice');
INSERT INTO user_table(name) VALUES ('Bob');
INSERT INTO user_table(name) VALUES ('Charlie');
CREATE TABLE time_table (
id int(10) AUTO_INCREMENT PRIMARY KEY,
data_time DATETIME,
value int
);
INSERT INTO time_table(data_time, value) VALUES ('2022-01-02 16:00:00', 10);
INSERT INTO time_table(data_time, value) VALUES ('2022-02-02 16:00:00', 20);
INSERT INTO time_table(data_time, value) VALUES ('2022-03-02 16:00:00', 30);
INSERT INTO time_table(data_time, value) VALUES ('2022-04-02 16:00:00', 40);
INSERT INTO time_table(data_time, value) VALUES ('2022-05-02 16:00:00', 30);
INSERT INTO time_table(data_time, value) VALUES ('2022-06-02 16:00:00', 20);
SELECT * FROM user_table;
SELECT * FROM time_table;
格拉法纳
创建一个 Grafana 容器
使用以下命令创建 Grafana 容器。为了方便数据持久化,这里我们创建一个名为grafana 的本地目录并挂载它。各种设置保存在这里。
创建 Grafana 容器
mkdir ./grafana
docker run --name grafana \
--user `id -u` \
-v `pwd`/grafana:/var/lib/grafana \
--net host \
-p 3000:3000 \
-d --rm grafana/grafana
访问 Grafana
在启动容器的同一台 PC 上访问以下内容:
- 网址:http://localhost:3000/
- 用户名:admin
- 密码:管理员
数据源设置
- 点击配置->数据源->添加数据源
- 选择 MySQL
- 配置以下设置
- 主机:本地主机:3306
- 数据库:test_db
- 用户:grafanaReader
- 密码:pw-for-grafana
- 点击页面底部的
Save & Test,确保看到Database Connection OK
仪表板设置
- 单击
- 仪表板 -> 浏览 -> 新建 -> 新建仪表板
- 单击添加新窗格
添加常规表
-
将格式设置为
Table -
单击编辑 SQL 并输入
SELECT * FROM user_table; -
从右上角选择表格。或者选择另一种绘图方法
-
设置完成点击
Apply
添加时间序列数据
-
由于Dashboard上已经添加了之前的表格,继续点击Add Panel -> Add a new panel
-
将格式设置为
Time series(默认) -
单击编辑 SQL 并输入
SELECT data_time AS "time", value FROM time_table -
将时间范围设置为过去一年(因为这就是我们的数据的样子)
-
设置完成点击
Apply
保存仪表板
- 添加更多面板并调整它们在仪表板上的位置
- 保存后完成
其他
- 设置在容器重新启动后保持不变
- 在 MySQL 端添加数据也会更新 Dashboard
- InfluxDB 在处理时序数据时优于 MySQL
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308628114.html