Prometheus+Grafana保姆笔记(3)——监控MySQL

devtools/2024/9/24 23:26:31/

Prometheus + Grafana 的组合在微服务项目中可以完成许多DevOps任务,它们共同提供了强大的监控和可视化功能。我们陆续介绍Prometheus + Grafana 的相关用法。

前面我们介绍了:

Prometheus+Grafana保姆笔记(1)——Prometheus+Grafana的安装

Prometheus+Grafana保姆笔记(2)——监控Spring Boot微服务程序

本期我们介绍监控Prometheus + Grafana搭配mysqld_exporter来监控MySQL.

一、下载mysqld_exporter

  1. 访问Prometheus官网
    前往Prometheus官网或Prometheus的GitHub页面,找到mysqld_exporter的下载链接。通常,你可以在GitHub的mysqld_exporter仓库中找到适用于你系统的发布版本。

  2. 下载Windows/Linux版本
    下载对应系统的mysqld_exporter压缩包,如Linux下mysqld_exporter-0.15.1.linux-amd64.tar.gz,给个wget的代码。而Windows下mysqld_exporter-0.15.1.windows-amd64.zip。

    cd /opt  
    wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.1/mysqld_exporter-0.15.1.linux-amd64.tar.gz

二、解压mysqld_exporter

解压文件
不管是Windows还是Linux,解压后都只有3个文件,只有个mysqld_exporter有用,其余2个文本看看的。

tar zxf mysqld_exporter-0.15.1.linux-amd64.tar.gz  
mv mysqld_exporter-0.15.1.linux-amd64/mysqld_exporter /usr/local/bin/

三、配置MySQL权限

在MySQL中创建一个专门用于监控的用户,并赋予必要的权限。登录到MySQL服务器,执行以下SQL命令:

CREATE USER 'mysql_monitor'@'%' IDENTIFIED BY 'your_password';  
GRANT REPLICATION CLIENT, PROCESS, SELECT ON *.* TO 'mysql_monitor'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;  
FLUSH PRIVILEGES;

注意:出于安全考虑,不要在生产环境中使用'%'作为主机名,而应指定具体的IP地址或主机名

四、配置mysqld_exporter

  1. 创建配置文件
    mysqld_exporter的目录中创建一个名为my.cnf的文件(或.my.cnf,具体取决于你的操作系统和配置习惯)。这个文件用于配置mysqld_exporter如何连接到MySQL数据库。

  2. 编辑my.cnf文件
    my.cnf文件中添加以下内容(请根据实际情况修改用户名、密码、主机和端口):

[client]  
user=mysql_monitor  
password=your_password  
host=127.0.0.1  
port=3306

请根据你的实际情况修改上述配置。这个文件是windows和linux环境通用的格式,没有来去。

 五、启动mysqld_exporter

Linux

可以使用以下命令启动mysqld_exporter,并通过--web.listen-address--config.my-cnf参数指定监听地址和配置文件路径:

nohup /usr/local/bin/mysqld_exporter --web.listen-address=:9104 --config.my-cnf=/path/to/.my.cnf &

请将/path/to/.my.cnf替换为你的配置文件实际路径。

也可以去vi /etc/systemd/system/mysqld_exporter.service注册成一个服务:

[Unit]  
Description=mysqld_exporter  
After=network.target  [Service]  
#注意my.cnf前面的.取决于你创建的时候有没有这个.
ExecStart=/usr/local/bin/mysqld_exporter --config.my-cnf=/path/to/your/.my.cnf  
Restart=always  [Install]  
WantedBy=multi-user.target

然后我们就又可以进入习惯的服务操作啦

sudo systemctl start mysqld_exporter
sudo systemctl enable mysqld_exporter  
sudo systemctl status mysqld_exporter

 Windows

使用命令行工具启动mysqld_exporter。如果您使用的是二进制文件,则可能需要指定配置文件的路径,例如:

./mysqld_exporter --config.my-cnf=/path/to/your/.my.cnf

验证

你可以通过访问http://<mysqld_exporter_host>:9104/metrics来验证mysqld_exporter是否正在运行并暴露指标。 

记得先开9104的防火墙哈

#防火墙打开和重载
firewall-cmd --add-port=9104/tcp --permanent
firewall-cmd --reload

六、配置Prometheus

最后,你需要在Prometheus的配置文件(如prometheus.yml)中添加一个作业(job),以便Prometheus能够抓取mysqld_exporter暴露的指标。例如:

scrape_configs:  - job_name: 'mysql'  static_configs:  - targets: ['localhost:9104']

重启Prometheus

 七、添加Grafana仪表

添加仪表昨日提过了,可以去官网模板 https://grafana.com/grafana/dashboards查看适合自己的模板,都非常不错。里面甚至有各大云平台的Mysql的监控仪表盘。具体怎么导入上一篇介绍过了。

好了,本期先这样,下期我们试试监控服务器本身。

 

 


http://www.ppmy.cn/devtools/96078.html

相关文章

【JavaEE】锁策略和CAS

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【Java】登神长阶 史诗般的Java成神之路 &#x1f4b0;一.常见的的锁策略 锁策略&#xff08;Locking Strategy&#xff09;是指在多线程环境中&#xff0c;为了控制对共享资源的访问&#xff0c;确保…

MySQL基础练习题48-连续出现的数字

目录 题目 准备数据 分析数据 题目 找出所有至少连续出现三次的数字。 准备数据 ## 创建库 create database db; use db;## 创建表 Create table If Not Exists Logs (id int, num int)## 向表中插入数据 Truncate table Logs insert into Logs (id, num) values (1, 1) i…

LeetCode 第三十一天 2024.8.17

1. &#xff1a;打家劫舍 题目链接: 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 应用条件&#xff1a;动态规划 难点&#xff1a; # 确定dp数组&#xff08;dp table&#xff09;以及下标的含义&#xff1a;dp[i]表示在i这房子能投的最高金额 # 确定递推公式: dp…

音视频开发

通过多线程分别获取高分辨率(1920 * 1080)和低分辨率(1280 * 720) 初始化VI模块 初始化HIGH VENC模块 初始化LOW VENC模块 初始化RGA模块 绑定 VI和HIGH VENC 绑定 VI和RGA 创建线程 HIGH VENC处理 RGA处理 LOW VENC处理 销毁 QP原理的讲解 QP参数调节&#xff0c;指的是量化…

DotPlot 的宽高自动设置 | 线性拟合

1. 线性模型计算width和height 输入是基因集合 scRNA.markers <- FindAllMarkers(scRNA, only.pos TRUE, min.pct 0.25, logfc.threshold 0.25) #scRNAmisc[["markers"]]scRNA.markers #scRNA.markers %>% group_by(cluster) %>% top_n(n 2, wt avg_…

xss复现

目录 反射型 Ma Spaghet! Jefff Ugandan Knuckles onfocus Ricardo Milos Ah Thats Hawt location Ligma Mafia 构造函数 dom破坏 Ok, Boomer 反射型 Ma Spaghet! <!-- Challenge --> <h2 id"spaghet"></h2> <script>spaghe…

npm install pnpm -g 报错的解决方法

npm install pnpm -g 报错的解决方法 npm error code ETIMEDOUT npm error errno ETIMEDOUT npm error network request to https://registry.npmjs.org/pnpm failed, reason: npm error network This is a problem related to network connectivity. npm error network In mo…

oracle UNPIVOT的使用

Oracle UNPIVOT是一种用于将列转换为行的SQL操作&#xff0c;它允许用户将多个列的数据转换为多行的形式&#xff0c;以便进行更灵活的数据分析和报表生成。以下是关于Oracle UNPIVOT使用的详细解释&#xff1a; 一、基本语法 Oracle UNPIVOT的基本语法如下&#xff1a; SEL…