当前位置:网站首页>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都是多少?自己对数据库是否有一个较为全面的掌握?
希望每个人都去看看,然后发表在评论区里跟大家一起分享和交流。
边栏推荐
- [NLP] bert4vec: a sentence vector generation tool based on pre training
- Interview shock 62: what are the precautions for group by?
- CANoe不能自动识别串口号?那就封装个DLL让它必须行
- Sichuan cloud education and double teacher model
- Contrôle de l'exécution du module d'essai par panneau dans Canoe (primaire)
- 14 医疗挂号系统_【阿里云OSS、用户认证与就诊人】
- Day 5 of MySQL learning
- Installation of pagoda and deployment of flask project
- Hero League rotation chart manual rotation
- 宝塔的安装和flask项目部署
猜你喜欢
[flask] crud addition and query operation of data
C杂讲 文件 续讲
Why can't TN-C use 2p circuit breaker?
Learning SCM is of great help to society
在CANoe中通過Panel面板控制Test Module 運行(初級)
Cmooc Internet + education
Can I learn PLC at the age of 33
Southwest University: Hu hang - Analysis on learning behavior and learning effect
The 32 year old programmer left and was admitted by pinduoduo and foreign enterprises. After drying out his annual salary, he sighed: it's hard to choose
Hero League rotation chart manual rotation
随机推荐
Release of the sample chapter of "uncover the secrets of asp.net core 6 framework" [200 pages /5 chapters]
The programming ranking list came out in February. Is the result as you expected?
MySQL ERROR 1040: Too many connections
Hero League rotation map automatic rotation
Notes of Dr. Carolyn ROS é's social networking speech
Safety notes
Why is 51+ assembly in college SCM class? Why not come directly to STM32
学习单片机对社会的帮助是很大的
Download address of canoe, download and activation of can demo 16, and appendix of all canoe software versions
Elk project monitoring platform deployment + deployment of detailed use (II)
Single chip microcomputer realizes modular programming: Thinking + example + system tutorial (the degree of practicality is appalling)
Which is the better prospect for mechanical engineer or Electrical Engineer?
华南技术栈CNN+Bilstm+Attention
Counter attack of noodles: redis asked 52 questions in a series, with detailed pictures and pictures. Now the interview is stable
Write your own CPU Chapter 10 - learning notes
Combined search /dfs solution - leetcode daily question - number of 1020 enclaves
June brush question 01 - array
History of object recognition
Yarn organizational structure
51单片机进修的一些感悟