安装 mysql
docker run --name mysql-test -p MYSQL ROOT_PASSWORD=123456 -p23306:3306 mysql:5.7.26
启动镜像的时候 已经是把docker容器内部的3306端口 映射到本机了 直接通过navicat连上
进入mysql容器内部 docker exec -it 容器id /bin/bash
,
启动 mysql. docker start docker -mysql
密码登录mysql: mysql -h localhost -u root -p
安装 mysqld-exporter
docker network create my-mysql-network
docker pull prom/mysqld-exporter
# 新建并启动容器
docker run -d \
--restart=always \
-p 8889:9104 \
--network my-mysql-network \
--name mysqld-exporter \
-e DATA_SOURCE_NAME="exporter:*******(**.**.**.**:3306)/" \
prom/mysqld-exporter
参数解释:
export DATA_SOURCE_NAME='root:Test#123@(127.0.0.1:3306)/'
其中:
root 为数据库用户名
Test#123 为数据库密码
127.0.0.1 为数据库 IP
3306 为数据库端口号
进入prometheus.yal 配置文件中,修改 prometheus 的配置文件 prometheus.yml
vi prometheus.yml
增加监控 MySQL 的 job(注意缩进格式)
- job_name: 'mysql'
static_configs:
- targets: ['10.0.0.71:9104']
- targets 中的 IP 为 mysql_exporter 的 IP,端口号固定为 9104
- 重启 prometheus,进入 prometheus 的 UI 界面,在 status-targets 页面下,可以看 到 MySQL
exporter 的状态
在 Grafana 中添加 MySQL 的监控模板
在 grafana 官网模板中找到 MySQL 监控模板 Mysql Overview,id 为 7362,并导入到 Grafana 中(具体操作步骤参考上面导入 Linux 监控模板操作)
这样在 grafana 中,就可以轻松监控 MySQL 的连接数、内存、表锁、慢查询、网络、查询缓存等监控数据