python+PYQT+grafana+mysql+navicat进行图表数据监控

一、在windows上安装Grafana
下载地址
https://grafana.com/grafana/download?platform=windows

step 1
把下载的.zip文件解压到您的想运行Grafana的任何地方,然后进入conf目录复制一份sample.ini并重命名为custom.ini。以后所有的配置应该编辑custom.ini,永远不要去修改defaults.ini。

step 2
修改端口,Grafana的默认端口是3000,此端口需要Windows上的额外权限。打开刚刚复制的custom.ini文件,找到http_port配置选项并取消注释(;是ini文件中的注释字符)。该端口不应该需要额外的Windows权限。

step 3
到目前你就可以运行Grafana了,执行bin目录下的grafana-server.exe程序,然后打开浏览器访问http://IP地址:3000

Grafana的默认登录名和密码admin/admin,第一次登录会提示修改密码。
如果提示:If you’re seeing this Grafana has failed to load its application files
请检查下浏览器是否版本太低不支持
在这里插入图片描述

step 4
每次启动需要执行grafana-server.exe,你也可以把Grafana作为Windows服务来运行。
二、win10系统下mysql和其使用工具Navicat的安装配置
1、下载mysql
浏览器打开https://dev.mysql.com/downloads/installer/
在这里插入图片描述
即可完成下载。
2、安装
在这里插入图片描述
在这里插入图片描述

选择custom

选择MySQL Servers,选择64位(与操作系统一致),
在这里插入图片描述
提示:“Microsoft Visual C++ 2019 Redistributable Package (x64) is not installed. Latest binary compatible version will be installed if agreed to resolve this requirement.”
解决:
Microsoft Visual C++ Redistributable 2019
x86: https://aka.ms/vs/16/release/VC_redist.x86.exe
x64: https://aka.ms/vs/16/release/VC_redist.x64.exe
在这里插入图片描述

点击绿色箭头,取消“Development Components”的勾选
一路点击next,
在这里插入图片描述

自己设置密码admin
在这里插入图片描述

Windows Service Name改成了MySQL808080,取消了开机启动,
继续next,或者Execute,最终Finish
3、配置环境变量(非必须)-----博主设置了
在这里插入图片描述

把安装的bin文件夹的路径添加进来
测试是否配置成功,打开cmd,输入“mysql -u root -p”回车,然后输入mysql安装时设置的root账号的密码(上一步设置的),若提示“Welcome to the MySQL monitor.”说明配置成功了。
若提示“ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password’ cannot be loaded”
原因:电脑中存在两个mysql,删除掉之前的即可
解决方法:
其实移除已经有的mysql服务可以使用管理员权限打开cmd,然后进入bin文件夹键入:mysqld remove 就可以了。

4、启动mysql
管理员身份运行cmd,输入net start mysql808080(不用区分大小写),提示启动成功。

附***卸载mysql服务的方法。
1)以管理员的权限 net stop mysql ,关闭mysql服务
2)以管理员的权限 mysqld -remove ,卸载mysql服务
5、测试
下载Navicat for MySQL软件。

然后选择刚刚安装的Navicat安装路径下找到navicat.exe文件,点击选择即可激活成功
即可使用

点击连接,选择MySQL,
在这里插入图片描述

连接名任取,密码是之前设置过的。
三、利用grafana让mysql数据可视化
step1
mysql新建一个表testgraph,用来存放查询的数据。
可以手动创建,当然也可以使用sql语句创建,都可以,创建表的sql语句如下:

DROP TABLE IF EXISTS testgraph;
CREATE TABLE testgraph (
id int(10) NOT NULL AUTO_INCREMENT,
create_time datetime(0) NULL DEFAULT NULL,
value int(20) NULL DEFAULT NULL,
metric varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;
在表中添加如下数据,用来测试,注意create_time特意填入的日期每个都不一样,不是同一天。
至此,数据准备工作结束。
step2
打开grafana,选择折线图表并选择mysql数据源。
1、添加数据源
在登陆系统后的首页,就可以进行数据源的添加了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
回到首页,点击(Dashboard)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择SQL Edit模式,在编辑框中输入以下sql语句:
SELECT
create_time AS “time”,
value,metric
FROM testgraph
WHERE
$__timeFilter(create_time)
ORDER BY create_time desc
点击编辑框外的空白处,并在右上角的时间范围选择中选择近7天,图表会被显示出来

我们来回顾一下sql语句的格式:
必须要在返回的结果集中有的三个字段是time, value,metric。
如果数据库中的字段名称不为这三个必须字段名,可以使用类似create_time AS "time"的形式将返回参数名进行别名命名。

如果你的数据表中设计的值字段和名称字段不为value和metric的话,也需要在查询语句中使用AS进行别名命名。

另外time字段也可以被别名成time_sec,经过我测试,二者都可以,暂时没发现区别是什么。

$__timeFilter(create_time)的含义是,将sql语句的where条件的时间段,替换成grafana中的用户自定义选择的时间段。
在这里插入图片描述
配置邮件通知
在这里插入图片描述
Alert配置
在这里插入图片描述
在这里插入图片描述
目前如何推送企业微信还在研究当中,有会的底下评论,一起交流呀

step3
我们尝试在同一个折线图中显示两条折线。

为了使step2中的数据和之前保持一致,我们修改上一步的sql语句,在其中加入限定的where条件:metric=“收入” 。即我们的第一个折线的sql内容修改成:

SELECT
create_time AS “time”,
value,metric
FROM testgraph
WHERE
$__timeFilter(create_time) AND metric=“收入”
ORDER BY create_time desc
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
【Grafana】开启匿名登录
编辑D:\install\grafana-7.5.4\conf\defult.ini文件,enabled = true启用匿名访问,具体如下:
[auth.anonymous]
enabled = true
这样分享面板在这里插入图片描述
,在其他电脑登录就无须用户名密码了

四、局域网内MySQL数据库的访问
1、输入mysql -u root -p,之后输入随机生成的初始密码,完成登录。
2、连接本地数据库,查看当前数据库的用户和对应host
use mysql;
select user, host from user;
3、更改root用户的host

update user set host='%' where user='root';

4、查看更新后的user表,会发现上面方法都起到了效果。
select user,host from user;
在这里插入图片描述
在这里插入图片描述

5、以管理员身份运行控制台,关闭再重启mysql服务
方法一:
我的电脑->(右键)管理->服务与应用程序->服务->MYSQL->开启(停止、重启动)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
方式二:
1、点击“开始”->“运行”(快捷键Win+R)。
2、输入
net stop mysql
net start mysql

6、通过Navicat连接
在这里插入图片描述
---------------------创建表的sql语句----------------------------

DROP TABLE IF EXISTS `qac_port_wm_d0_p1`;
CREATE TABLE `qac_port_wm_d0_p1`  (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `create_time` datetime(0) NULL DEFAULT NULL,
  `value` int(20) NULL DEFAULT NULL,
  `metric` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `ip` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `lc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

五、Python3连接MySQL
Python3连接MySQL的第三方库–PyMySQL
PyMySQL安装
进入 cmd 输入 pip install pymysql
回车等待安装完成;
在这里插入图片描述
问题总结:
1、5.6号在后面在这里插入图片描述
解决办法:ORDER BY create_time asc
2、在用grafana连接mysql的一个视图展示数据时,出现grafana中的时间比数据库中的时候多8小时的问题
在这里插入图片描述
解决办法:
a、grafana中的页面设置时区:defualt
b、SELECT KaTeX parse error: Expected group after '_' at position 1: _̲_timeGroupAlias…__interval),xxx from table
3、鼠标移到图上,数据提示秒都是00
在这里插入图片描述
解决办法:
SELECT
$__timeGroupAlias(create_time,1s),
4、突然没有edit了,面板也无法设置了
在这里插入图片描述
解决办法:
重新安装grafana-----这种方法不太好
编辑D:\install\grafana-7.5.4\conf\defult.ini文件,修改org_role = Viewer为Editor,具体如下:
[auth.anonymous]
org_role = Editor

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值