Grafana / Mysqld Exporter 实现Mysql监控
---------------- # 实现MySQL监控
注:安装 和介绍 Grafana,Prometheus 可以参考我的另一篇博文,这里不做介绍, 地址:点击查看(docker-compose搭建Grafana与Prometheus监控SpringBoot应用)
- 这里感谢 mysqld_exporter, 地址:mysqld_exporter
一、安装 mysqld_exporter
- 新建docker-compose.yml
version: '3'
services:
mysqld-exporter:
image: prom/mysqld-exporter:latest
container_name: mysqld-exporter
restart: always
ports:
- 9104:9104
command: "--config.my-cnf=/var/mysqld-exporter.cnf"
environment:
- MYSQLD_EXPORTER_PASSWORD=xxxxx # 监控mysql的密码
volumes:
- "/www/grafana/config/mysqld-exporter.cnf:/var/mysqld-exporter.cnf"
-
新建
/www/granfana/config/mysqld-exporter.cnf
文件 (路径可以自定义,与容器映射路径要一致
) -
在
/www/granfana/config/mysqld-exporter.cnf
中 添加[client] user = xxx password = xxxx [client.servers] user = xxx password = xxxx
-
重启mysql
-
连接mysql 并执行以下内容
## 监控专用账户权限配置: CREATE USER '<监控专用用户名>'@'%' IDENTIFIED BY '<监控专用密码>' WITH MAX_USER_CONNECTIONS 10; GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO '<监控专用用户名>'@'%';
命令解析:
CREATE USER 'xxx'@'%' IDENTIFIED BY 'xxxx' WITH MAX_USER_CONNECTIONS 10;
CREATE USER
:创建一个新的用户。'xxx'@'%'
:指定用户的用户名为 'xxx',并且可以从任何主机连接('%'表示通配符,表示任意主机)。IDENTIFIED BY 'xxxx'
:设置用户的密码为’监控专用密码’。WITH MAX_USER_CONNECTIONS 10
:限制用户的最大连接数为10个。
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'xxx'@'%';
GRANT
:授予用户权限。PROCESS
:允许用户查看当前正在运行的进程。REPLICATION CLIENT
:允许用户连接到MySQL复制通道,并查看复制信息。SELECT ON *.*
:授予用户对所有数据库的SELECT权限。TO 'xxx'@'%'
:将授权应用于用户 'xxx',并且可以从任何主机连接。
综上所述,这段命令的作用是创建一个名为 'xxx' 的用户,该用户可以从任何主机连接到MySQL数据库,并且具有最大连接数限制为10个。该用户被授予查看当前进程、复制信息以及对所有数据库进行SELECT操作的权限。这样可以用于监控MySQL数据库的相关操作。
二、配置 Prometheus
- 在 prometheus.yml 中添加 以下内容
# 采集mysql数据 - job_name: mysql # To get metrics about the mysql exporter’s targets params: # Not required. Will match value to child in config file. Default value is `client`. auth_module: [client.servers] static_configs: - targets: # All mysql hostnames or unix sockets to monitor. - <你的mysql地址>:3306 - <你的mysql地址>:3307 - unix:///run/mysqld/mysqld.sock relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ # The mysqld_exporter host:port replacement: <你的mysqld_exporter地址>:9104
- 全部配置如下
global: scrape_interval: 15s evaluation_interval: 15s alerting: alertmanagers: - static_configs: - targets: scrape_configs: - job_name: "prometheus" static_configs: - targets: ["192.168.0.227:9090"] # 此处为 Prometheus 的ip和端口 # 采集mysql数据 - job_name: mysql # To get metrics about the mysql exporter’s targets params: # Not required. Will match value to child in config file. Default value is `client`. auth_module: [client.servers] collect[]: - info static_configs: - targets: # All mysql hostnames or unix sockets to monitor. - <你的mysql地址>:3306 - <你的mysql地址>:3307 relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ # The mysqld_exporter host:port replacement: <你的mysqld_exporter地址>:9104
三、启动
docker-compose up -d
四、配置Grafana
-
进入界面点击仪表盘后点击导入仪表板
- 输入 JSON 内容 获取导入文件 地址:[mysql-overview.json](https://halo-1319591454.cos.ap-nanjing.myqcloud.com/file/mysql-overview.json),加载完成后点击 Load。
五、结束
-
效果如下:
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果