一、背景

对于LNMP环境下的开发者来说,mysql是非常重要的一环,同时mysql的性能监控也是开发者所需要关注的一环;如果大家使用阿里云的RDS会感觉到其监控功能非常好用,但如果开发者使用的是自建数据库,该怎么去搭建则需则需要去考虑一番了。

在prometheus和grafana未普及之前,要实现mysql的搭建确实要费一番工夫的,不过现在则很简单就可以实现mysql的监控了。

笔者之前写过一篇grafana+prometheus的基础篇,因此本文中有些较为基础的操作就省略了,读者如果有不清晰的地方,建议去看一下基础篇,参考链接:grafana+ prometheus+php 监控系统实践

二、操作概要

  1. 安装Mysqld-Exporter
  2. 增加prometheus任务
  3. 导入mysql仪表盘
  4. 功能验证与展示

三、安装Mysqld-Exporter

要实现监控mysql的状态,就需要获取mysql的一些数值,然后把这些数值传递给prometheus,这个过程使用mysqld-exporter就可以轻易实现了,安装之后,把所需的参数传递过去就可以使用,这里使用docker安装最为方便,因此笔者在下面的安装方法便是采用此种方法安装。

3.1 下载镜像

使用docker方式下载极为方便,只需要执行如下命令即可,当然前提是需要安装了docker。

docker pull prom/mysqld-exporter
复制代码

3.2 创建容器并启动

下载镜像完成之后,笔者需要按照指定的格式把数据库的一些账号与密码以及地址名称等信息传入进入,参考格式如下方命令:

docker run -d -p 9104:9104 -e DATA_SOURCE_NAME="root:password@(127.0.0.1:3306)/databaseName" prom/mysqld-exporter
复制代码

3.3 验证

启动之后,笔者需要验证是否启动成功,可以通过浏览器访问如下地址

http://127.0.0.1:9104/
复制代码

当在浏览器当中看到如下界面,则代表以及启动成功,如下图:

不过需要注意的是,看到此界面并不代表你的数据库账号与密码以及地址就正确了。

四、增加prometheus任务

经过前面一个步骤,笔者已经有了数值来源,现在需要做的就是通过prometheus将其收集起来,收集的方法也比较简单,修改配置文件,重启prometheus即可,具体操作方法如下:

4.1 编辑prometheus的配置文件

vim /Users/song/config/prometheus/prometheus.yml
复制代码

增加一个收集任务

---
global:scrape_interval: 5sscrape_timeout: 3s
scrape_configs:
- job_name: 'media'scrape_interval: 3smetrics_path: "/api/v1/rrd/toolSpool"static_configs:- targets: ['gslb.offcncloud.com:8080']
- job_name: 'mysql'scrape_interval: 5sstatic_configs:- targets: ['127.0.0.1:9104']labels:instance: 127.0.0.1复制代码

在配置文件当中,能看到prometheus会每5秒收集一次数据,需要给prometheus传入主机地址。

4.2 启动prometheus

修改并保存配置文件之后,笔者需要启动prometheus,在mac系统中启动命令如下:

prometheus --config.file=/Users/song/config/prometheus/prometheus.yml
复制代码

4.3 验证收集是否成功

启动完成之后,需要验证prometheus是否启动成功,可以通过浏览器打开如下URL:

http://127.0.0.1:9090/graph
复制代码

如果在URL中看到mysql的状态为绿色标志,则代表笔者增加的任务已经成功。

五、导入mysql仪表盘

到这一步笔者已经把mysql的性能数值导入到prometheus当中,现在所需要做的事情便是在grafana当中展示仪表盘;这个仪表盘笔者可以自己去手动创建,也可以导入一些开源的仪表盘,笔者觉得第三方的仪表盘省事也好看,所以这里将采用导入开源的仪表盘方式。

5.1 下载仪表盘文件

首先需要在GitHub下载这些仪表盘文件,下载命令如下:

git clone https://github.com/percona/grafana-dashboards.git
复制代码

下载完成之后,在其项目根目录的dashboards文件夹下,会有一批grafana所导出的仪表盘文件,如下图

找到MySQL_Overview.json文件,并打开此文件,将其里面的内容复制下来,

链接地址:MySQL_Overview.json,笔者将其上传到了自己的服务器,读者可以直接打开如下URL地址:

http://tuchuang.qsjianzhan.com/mysql/MySQL_Overview.json
复制代码

5.2 启动grafana

现在笔者需要启动grafana,笔者使用mac的brew安装,所以启动命令如下:

brew services start grafana
复制代码

5.3 导入仪表盘

grafana本身提供导入仪表盘功能,通过浏览器访问如下网址:

http://127.0.0.1:3000/
复制代码

在grafana左侧有一个添加仪表盘的图表,可以点击点击导入仪表盘,操作方法如下图:

前面笔者已经复制了仪表盘的文件,现在需要将其粘贴进来,并点击load

六. 功能验证与展示

导入仪表盘之后,可以打开grafana的首页,在首页当中会展示仪表盘列表,找到刚才导入的仪表盘,如下图

找到对应的仪表盘便可查看mysql的详细数值,如下图所示:


作者:汤青松

微信:songboy8888

grafana+prometheus快速搭建MySql监控系统实践相关推荐

  1. Telegraf+InfluxDB+Grafana快速搭建实时监控系统 监控postgresql

    Telegraf+InfluxDB+Grafana快速搭建实时监控系统  监控postgresql 转载于:https://www.cnblogs.com/gaoyuechen/p/10081026. ...

  2. Grafana+Prometheus打造运维监控系统(一)-安装篇

    1. Prometheus.Grafana介绍 Prometheus是一个开源的系统监控和报警系统,Grafana 是一个开源的监控数据分析和可视化套件,利用Grafana+Prometheus组合, ...

  3. prometheus连续查询_Grafana + Prometheus快速搭建监控平台

    随着业务的越发复杂,软件系统也越来越庞大,对软件系统的要求越来越高,意味着我们需要随时掌控系统的运行情况.因此,系统的实时监控以及可视化展示,就显得非常重要. 今天来介绍下使用Grafana + Pr ...

  4. 基于 Prometheus 的监控系统实践

    监控作为底层基础设施的一环,是保障生产环境服务稳定性不可或缺的一部分,线上问题从发现到定位再到解决,通过监控和告警手段可以有效地覆盖了「发现」和「定位」,甚至可以通过故障自愈等手段实现解决,服务开发和 ...

  5. MySQL监控系统Lepus的搭建

    现在流行的监控系统很多,选择一个合适自己的就可以了,例如Zabbix.Nagios:监控MySQL为主的有MySQLMTOP.Lepus.本文主要介绍快速部署lepus以及监控MySQL,因为作为DB ...

  6. 普罗米修斯监控系统_一步步教你用Prometheus搭建实时监控系统系列(二)——详细分析拉取和推送两种不同模式...

    前言 本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台. 本系列受众对象为初次接触Prometheus的用户,大神勿喷,偏重于操作和实战,但是重要的概念 ...

  7. 阿里云数据库快速搭建疫情分析系统最佳实践

    简介:疫情降临,疫情态势分析和防控任务迫在眉睫,如果快速搭建高效的疫情态势分析系统是众多部门和单位的难题,阿里云RDS PG+Ganos解决方案可在极短时间内完成分析系统搭建,有效助力疫情防控. 直达 ...

  8. 不用羡慕BAT,自己手工也能搭建伪基站监控系统

    本文讲的是不用羡慕BAT,自己手工也能搭建伪基站监控系统,编者按:伪基站是个很烦人的东西.基于海量移动终端用户,近两年BAT3在国内搭建了强大的伪基站监控系统,在打击犯罪上贡献不少.这篇文章中,作者将 ...

  9. 资源放送丨《如何从零快速搭建一整套监控体系(日志采集+主机+数据库)》PPT视频...

    前段时间,墨天轮分享了直播<如何从零快速搭建一整套监控体系(日志采集+主机+数据库)>,在这里我们共享一下PPT和视频,供大家参考学习. 客户转型去O使用分布式架构的情况下,作为DBA需要 ...

最新文章

  1. html5控件组合,[Vue 3] 教程 – 可复用与组合 – 插件
  2. QN8027输出调频分裂的频谱
  3. Spring事务之Propagation
  4. 一段Spring代码引起的调用绑定总结
  5. python实现阿里云域名绑定动态IP
  6. Java计算器接口策略_Java 基础 接口 ——运算
  7. linux学习笔记-第六课-/etc/passwd,/etc/shadow,useradd,su,sudo等
  8. 使用了SAP Spartacus的一个在线网站:乐高Storefront
  9. axios源码中的10多个工具函数,值得一学~
  10. 在构造器里调用可重写的方法有什么问题?
  11. 人工智能-机器学习之Selenium(chrome驱动,火狐驱动)
  12. [仁润云技术团队]并发编程-(1)基本概念
  13. .net中对象序列化技术
  14. 必须了解的程序员 8个职业发展方向
  15. k8s calico-node错误日志 listen tcp: lookup localhost on ip:53: no such host
  16. Harbor: 企业级Registry的构建利器
  17. 【Hardware】【磁保持继电器基础知识】
  18. Elastic 7.14.0 版推出业界首个免费开放的 Limitless XDR
  19. AIX存储LV PV VG
  20. 魏小亮:国内软件工程师如何面试硅谷创业公司

热门文章

  1. [裴礼文数学分析中的典型问题与方法习题参考解答]5.1.5
  2. 【转载】混合高斯模型(Mixtures of Gaussians)和EM算法
  3. 如何解决Linux操作系统找不到网卡的问题
  4. Apache Libcloud 0.12.3 发布
  5. margin和padding
  6. WPF xaml中列表依赖属性的定义
  7. Could not reliably determine the server's fully qualified domain name
  8. Qt使用教程:使用Qt Quick UI表单(五)
  9. Oracle Dataguard HA (主备,灾备)方案部署调试
  10. css3 渐变、蒙版