开发者社区> 汤青松> 正文

grafana+prometheus快速搭建MySql监控系统实践

简介: 版权声明:作者:汤青松 https://blog.csdn.net/u013431141/article/details/81633229 一、背景 对于LNMP环境下的开发者来说,mysql是非常重要的一环,同时mysql的性能监控也是开发者所需要关注的一环;如果大家使用阿里云的RDS会感觉到其监控功能非常好用,但如果开发者使用的是自建数据库,该怎么去搭建则需则需要去考虑一番了。
+关注继续查看
版权声明:作者:汤青松 https://blog.csdn.net/u013431141/article/details/81633229

一、背景

对于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/

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

image

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

四、增加prometheus任务

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

4.1 编辑prometheus的配置文件

vim /Users/song/config/prometheus/prometheus.yml

增加一个收集任务

---
global:
  scrape_interval: 5s
  scrape_timeout: 3s
scrape_configs:
- job_name: 'media'
  scrape_interval: 3s
  metrics_path: "/api/v1/rrd/toolSpool"
  static_configs:
    - targets: ['gslb.offcncloud.com:8080']
- job_name: 'mysql'
  scrape_interval: 5s
  static_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的状态为绿色标志,则代表笔者增加的任务已经成功。
image

五、导入mysql仪表盘

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

5.1 下载仪表盘文件

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

git clone https://github.com/percona/grafana-dashboards.git

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

image

找到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左侧有一个添加仪表盘的图表,可以点击点击导入仪表盘,操作方法如下图:

image

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

image

六. 功能验证与展示

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

image

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


作者:汤青松

微信:songboy8888

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
30394 0
Centos 搭建Mysql-Proxy 读写分离
  Mysql 读写分离   主:192.168.153.130 从:193.168.153.131 Mysql-Proxy:193.168.153.132   这里省略mysql主从同步,如果有需要,请查看:Mysql,主从同步    1、 安装Lua 官网下载:http://www.lua.org/download.html Lua 是一个小巧的脚本语言。
1719 0
sorl6.0+jetty+mysql搭建solr服务
1.下载solr   官网:http://lucene.apache.org/solr/ 2.目录结构如下 3.启动solr(默认使用jetty部署)   在path路径下将 bin文件夹对应的目录加入,然后输入 solr start(或者 solr start -p port,指定端口启动)。
1133 0
使用innobackupex基于从库搭建mysql主从架构
        MySQL的主从搭建大家有很多种方式,传统的mysqldump方式是很多人的选择之一。但对于较大的数据库则该方式并非理想的选择。使用Xtrabackup可以快速轻松的构建或修复mysql主从架构。
1261 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
21341 0
PHP与Mysql环境搭建
小白还是使用小皮面板或者宝塔面板之类的吧,当然你也可以自己去搭建一个环境,笔者学习的环境是小皮面板:https://www.xp.cn/
43 0
+关注
汤青松
《PHP Web安全开发实战》 作者 ;微信 songboy8888
62
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载