Grafana+Prometheus+Mysqld-Exporter实现Mysql监控
Grafana+Prometheus+Mysqld-Exporter实现Mysql监控(基于Docker)
使用Grafana+Prometheus+Mysqld-exporter实现Mysql监控的步骤
1. 简介
Granafa: 开源的数据可视化平台 Prometheus:监控系统,时序数据库 Mysqld-Exporter: mysql服务器prometheus metrics导出 在本文介绍如何在云服务器中实现腾讯云MySQL监控。Grafana+Prometheus的搭建可参考https://www.cnblogs.com/xiao987334176/p/9930517.html
2. 步骤
2.1. 安装Grafana
使用docker直接search并Pull,运行。
[root@VM-0-6-centos ~]# docker search grafana
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
grafana/grafana The official Grafana docker container 2150
....
这里直接pull最新版的grafana即可。
[root@VM-0-6-centos ~]# docker pull grafana
拉取完毕后创建一个文件夹用来存放grafana数据,本例子中选择在云服务器的/opt目录下
[root@VM-0-6-centos ~]# mkdir /opt/grafana-storage
修改该目录权限
[root@VM-0-6-centos ~]# chmod 777 -R /opt/grafana-storage
启动grafana
docker run -d \
-p 3000:3000 \
--name=grafana \
-v /opt/grafana-storage:/var/lib/grafana \
grafana/grafana
随后访问{服务器ip}:3000 即可进入登录页,默认的登录用户名和密码都是admin。可以修改。
2.2. 数据库Metrics导出
这是用来导出mysql数据的,同样可以通过拉取镜像生成容器的方法运行。具体步骤如下:
2.2.1. 创建数据库账号
在安装Mysqld-Exporter之前,要先在数据库创建账号用来拉取数据库数据。首先进入数据库,创建账号并赋予权限。 需要注意的是,本例子中云服务器和数据库都在同一内网中,并且数据库只有内网ip没有公网ip,先看数据库操作命令。
create user 'exporter'@'{ip}' IDENTIFIED by '{password}'
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'{ip}';
在这里中{ip}和{password}根据自己实际情况填,记得去掉大括号。
ip
: 这里的ip若想省事可以直接填*
表示所有ip,若要严谨点则填指定机器的ip。在网上大多数教程中由于Mysql和Mysql-Exporter都是同一机器上所以教程里都填localhost,在本例子中由于云服务器和数据库在同一内网,并且·Mysql-Exporter·是在云服务器的Docker下运行并暴露端口到宿主机上。因此本例子中{ip}填了云服务器的内网ip地址。
password
: 账号密码,待会配置Mysql-Exporter需要用到.
2.2.2 安装Mysql-Exporter
直接拉取Mysql-Exporter镜像运行即可。 具体命令如下:
docker search mysqld-export # 查找镜像,一般这里搜索出来的第一个就是
docker pull prom/mysqld-exporter # 拉取镜像
docker run -d -p 9104:9104 -e DATA_SOURCE_NAME="exporter:{password}@({ip}:3306)/" --name mysqld_exporter prom/mysqld-exporter:latest
这里{ip}
和{password}
要和上一步中的一样。
之后访问http://{ip}:9104/metrics
查看是否导出成功(若是云服务记得配置安全组开放端口)。
注意!这里得通过网页数据长度来判断是否导出成功,因为即使Mysql-Exporter配置失败,数据库数据没导出metrics但它还是可以运行,并且同样可以访问该网页。具体表现为进入/metrics页网页内容很少,在下图中为导出成功的结果,数据量较大,可以根据右边的滚动条来判断。
2.3. 安装prometheus
本例子中同样使用Docker拉取镜像运行。
创建prometheus配置文件 本例子在云服务器的/opt目录下创建yml配置文件
mkdir /opt/prometheus
vim /opt/prometheus/prometheus.yml
配置文件的内容如下:
global:
scrape_interval: 60s
evaluation_interval: 60s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
labels:
instance: prometheus
- job_name: mysql
static_configs:
- targets: ['{ip}:9104']
这里的ip为Mysql-Exporter容器的ip地址,可通过docker inspect containerID/containerName
命令查看。
拉取prometheus镜像并启动 pull镜像
docker pull prom/prometheus #这里直接拉取这个即可,不通过search查看
启动
docker run -d \
-p 9090:9090 \
-v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
这里/opt/prometheus/prometheus.yml
要改成自己机器配置文件的路径
检查是否成功
启动后检查一下是否配置成功,进入http://{ip}:9090/
检查是否启动成功。若成功可以进入到prometheus ui界面,由于prometheus是基于时序数据库的,若页面提示时区不配则点一下Use local time
即可。
进入ui界面,检查prometheus是否拉取到Mysql导出数据,点击上方status->Targets检查。
若如上图所示则说明成功了,若还没提示up则等一下即可,要是长时间没up可能就是配置错误,或者是端口没开启。
2.4. 配置Grafana
- 配置prometheus数据源
在界面左边设置中,点击Data sources
,然后选择prometheus
,填写相关信息,添加。
- 配置数据展示模板
首先下载Mysql数据展示的json模板,这里使用7362,网址如下
https://grafana.com/grafana/dashboards/7362
下载完成后,登录进Grafana界面,点击右边
+
号的import按钮,导入刚才下载的模板即可。
完成!
3. 避坑
- 配置文件一定要写对。
- 数据库账号ip要填对,不然Mysql-Exporeter无法导出数据。
- 容器ip要写对
- 若是在云服务器部署,要设置安全组开放相关端口。
相关文章
- Mysql慢查询_mysql服务启动慢
- 如何正确理解 RT 并监控 MySQL 的响应时间
- Mysql 备份文件的正确格式(mysql备份文件格式)
- MySQL实现快速批量更新数据(mysql更新多条数据)
- 和使用mysql实现Linux服务端上MySQL安装与使用(在linux服务端安装)
- MySQL 快速日期加一天实现方案(mysql加一天)
- MySQL:从行到列转换技巧(行转列mysql)
- MySQL数据库中字段最大长度限制(mysql数据长度)
- MySQL 时区调整:一步一步实现(mysql时区)
- MySQL集群技术的选择与优化(mysql集群选择)
- 挑战MySQL二级考试,提升技术水平(mysql二级考试)
- MySQL存储的二进制数据分析(mysql二进制数据)
- 实现高效数据流,MySQL数据库读写同时出发(mysql数据库同时读写)
- MySQL如何安全保存密码(mysql密码保存)
- Vue.js 与MySQL结合,打造高效Web应用程序(vue.js mysql)
- 性能监控MySQL执行效率,提升运行效果(监控mysql执行)
- MySQL导入导出工具:快速高效实现数据迁移和备份(导入导出工具mysql)
- MySQL中的接口解析实现及应用(mysql中什么是接口)
- 数据库通过C语言编程实现从串口获取数据并存入MySQL数据库(c 串口数据存mysql)
- MySQL实现两表左连接查询的方法详解(mysql两表左连接查询)
- 主从更换CDH集群中MySQL主从模式(CDH集群更换mysql)
- 如何使用C ASP实现MySQL数据库连接(c asp连接mysql)
- 借助Canal实现对MySQL的数据采集(canal采集mysql)
- SQL实现MySQL两日期相减操作(mysql 两日期相减)
- MySQL无法设置密码的解决办法(mysql 不能设置密码)