当前位置:网站首页>MySQL实战优化高手10 生产经验:如何为数据库的监控系统部署可视化报表系统?
MySQL实战优化高手10 生产经验:如何为数据库的监控系统部署可视化报表系统?
2022-07-06 09:08:00 【办公模板库 素材蛙】
1、部署Grafana
上一篇文章我们讲解到安装好了Prometheus,接着我们来继续讲解如何安装Grafana,首先要从下面的地址下载grafana-4.6.3.linux-x64.tar.gz,然后一步一步的执行下面的命令,完成他的启动。
https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.3.linux-x64.tar.gz
tar xf grafana-4.6.3.linux-x64.tar.gz -C /data/prometheus cd /data/prometheus
mv grafana-4.6.3 grafana
cd /data/prometheus/grafana ./bin/grafana-server &
接着就完成了grafana的启动,然后可以通过浏览器访问3000端口,默认的用户名和密码是admin/admin。接着在Grafana左侧菜单栏里有一个Data Sources,点击里面的一个按钮是Add data source,就是添加一个数据源。
然后在界面里输入你的数据源的名字是Prometheus,类型是Prometheus,HTTP URL地址是http://127.0.0.1:9090,其他的都用默认的配置就行了,接下来Grafana就会自动从Prometheus里获取监控数据和展示了。
接着需要安装Grafana的仪表盘组件,首先需要下载grafana-dashboards-1.6.1.tar.gz,用如下的链接即可:https://github.com/percona/grafana-dashboards/archive/v1.6.1.tar.gz。
接着执行一系列的命令去安装grafana-dashboard组件。
tar xvf grafana-dashboards-1.6.1.tar.gz cd grafana-dashboards-1.6.1
updatedb
locate json |grep dashboards/
这个时候会看到一大堆的json文件,就是各种不同的仪表盘对应的json配置文件,你可以把这些json配置文件通过WinSCP之类的工具从linux机器上拖到你的windows电脑上来,因为需要通过浏览器上传他们。
接着在grafana页面中,可以看到最上面有一个Home按钮,点击一下进入一个界面,你会看到一个Import Dashboard的按钮,就是说可以导入一些仪表盘,这个时候就是要导入刚才看到的一大堆的json文件。
你点击Upload json file按钮,就会出现一个界面让你上传一个一个的json文件,然后你就依次上传,接着grafana中就会出现一大堆的仪表盘了,比如机器的CPU使用率的仪表盘,磁盘性能仪表盘,磁盘空间仪表盘,MySQL监控仪表盘,等等。
2、添加MySQL机器的监控
首先我们如果想要让Prometheus去采集MySQL机器的监控数据(CPU、内存、磁盘、网络,等等),然后让Grafana可以展示出来,那么就必须先添加Prometheus对MySQL机器的监控。
首先必须要在MySQL机器上解压缩和启动node_exporter,这启动之后是个linux进程,他会自动采集这台linux机器上的CPU、磁盘、内存、网络之类的各种监控数据,其实本质你可以理解为通过我们之前讲解的那些linux命令,就可以采集到一切你想要的linux机器的监控数据。
tar xf node_exporter-0.15.2.linux-amd64.tar
mv node_exporter-0.15.2.linux-amd64 node_exporter cd node_exporter
nohup ./node_exporter &
到这一步为止,我们就在MySQL所在的机器上启动了一个node_exporter了,他就会自动采集这台机器的CPU、磁盘、内存、网络的监控数据,但是此时还不够,因为Prometheus上还没加入对这台机器的监控。
此时我们应该还记得,之前在Prometheus的yml配置文件中,我们已经定义了一个host监控项,他就是用来监控机器的,他的配置文件是host.yml,此时我们可以编辑一下这个host.yml配置文件,加入mysql所在机器的地址就可以了
vi host.yml
- labels:
service: test targets:
- 127.0.0.1
接着Prometheus就会跟MySQL机器上部署的node_exporter进行通信,源源不断的获取到这台机器的监控数据,写入自己的时序数据库中进行存储。接着我们就可以打开Grafana的页面,此时你就可以看到这台机器的相关性能监控了。
3、添加MySQL数据库的监控
接着我们同样需要在MySQL所在机器上再启动一个mysqld_exporter的组件,他负责去采集MySQL数据库自己的一些监控数据,我们看下面的指令就可以了。
tar xf mysqld_exporter-0.10.0.linux-amd64.tar
mv mysqld_exporter-0.10.0.linux-amd64 mysqld_exporter
接着需要配置一些环境变量,去设置mysqld_exporter要监控的数据库的地址信息,看下面配置了账号、密码以及地址和端口号
export DATA_SOURCE_NAME='root:[email protected](127.0.0.1:3306)/'
echo "export DATA_SOURCE_NAME='root:[email protected](127.0.0.1:3306)/'" >> /etc/profile
接着启动mysqld_exporter
cd mysqld_exporter
nohup ./mysqld_exporter --collect.info_schema.processlist --collect.info_schema.innodb_tablespaces -- collect.info_schema.innodb_metrics --collect.perf_schema.tableiowaits --collect.perf_schema.indexiowaits -- collect.perf_schema.tablelocks --collect.engine_innodb_status --collect.perf_schema.file_events -- collect.info_schema.processlist --collect.binlog_size --collect.info_schema.clientstats -- collect.perf_schema.eventswaits &
上面的启动命令指定了大量的选项去开启一些监控的采集,这些命令也都是我手敲的,因为目前写作环境的一些不便利的因素,所以只能是如此,如果大家发现有什么小的错误,可以评论区后台告诉我。
接着这个mysqld_exporter进程就会自动采集MySQL自己的监控数据了,然后我们还需要在Prometheus里配置一下他去跟mysqld_exporter通信获取数据以及存储,然后Grafana才能看到对应的报表。
vi /data/prometheus/mysql.yml
- labels:
service: mysql_test targets:
- 127.0.0.1
接着我们在Grafana中就可以看到MySQL的各种监控数据了。
4、一个作业
今天我想留给大家一个小作业,希望大家可以参考今天的两篇文章,动手搭建一下数据库的监控系统,然后可以用sysbench做一下压测,在压测过程中,可以直接看看Grafana上的机器以及MySQL的各项监控指标。
这个过程没什么难度,但是可能会遇到一些操作性的问题,如果大家搭建的过程中发现什么问题,不要直接把报错的截图贴在评论区,你可以先去上网查查,错误在哪里
如果真的有问题的话,我后续会想办法解决一下错误,然后更新出来的。
另外,我希望大家思考一个问题,大家可以去看看自己公司里的数据库有没有做过压测?可视化监控做了吗?是怎么做的?自己项目的数据库平时的一些机器负载和QPS、TPS都是多少?自己对数据库是否有一个较为全面的掌握?
希望每个人都去看看,然后发表在评论区里跟大家一起分享和交流。
边栏推荐
- 手把手教您怎么编写第一个单片机程序
- C miscellaneous lecture continued
- 单片机如何从上电复位执行到main函数?
- Defensive C language programming in embedded development
- CAPL脚本中关于相对路径/绝对路径操作的几个傻傻分不清的内置函数
- 如何让shell脚本变成可执行文件
- Control the operation of the test module through the panel in canoe (Advanced)
- 美新泽西州州长签署七项提高枪支安全的法案
- How can I take a shortcut to learn C language in college
- Inject common SQL statement collation
猜你喜欢
Contest3145 - the 37th game of 2021 freshman individual training match_ C: Tour guide
MySQL实战优化高手12 Buffer Pool这个内存数据结构到底长个什么样子?
If a university wants to choose to study automation, what books can it read in advance?
tn-c为何不可用2p断路器?
Summary of May training - from a Guang
Some thoughts on the study of 51 single chip microcomputer
Some thoughts on the study of 51 single chip microcomputer
Nc17 longest palindrome substring
嵌入式开发比单片机要难很多?谈谈单片机和嵌入式开发设计经历
C杂讲 浅拷贝 与 深拷贝
随机推荐
Programmation défensive en langage C dans le développement intégré
CAPL script pair High level operation of INI configuration file
MySQL实战优化高手08 生产经验:在数据库的压测过程中,如何360度无死角观察机器性能?
C#/. Net phase VI 01C Foundation_ 01: running environment, process of creating new C program, strict case sensitivity, meaning of class library
在CANoe中通過Panel面板控制Test Module 運行(初級)
Bugku web guide
51单片机进修的一些感悟
Upload vulnerability
[untitled]
The real future of hardware engineers may not be believed by you if I say so
再有人问你数据库缓存一致性的问题,直接把这篇文章发给他
Day 5 of MySQL learning
Redis distributed lock implementation redison 15 questions
Nc29 search in two-dimensional array
C miscellaneous shallow copy and deep copy
Pointer learning
[flask] crud addition and query operation of data
Popularization of security knowledge - twelve moves to protect mobile phones from network attacks
C miscellaneous two-way circular linked list
C杂讲 双向循环链表