云原生系列之使用 prometheus监控MySQL实战

news2025/5/26 10:54:29

在这里插入图片描述

文章目录

  • 前言
  • 一. 实验环境
  • 二. 安装MySQL5.7
    • 2.1 配置yum源
    • 2.2 安装MySQL之前的环境检查
    • 2.3 开始使用yum安装
    • 2.4 启动MySQL并测试
  • 三. 安装MySQL_exporter
    • 3.1 MySQL_exporter的介绍
    • 3.2 mysql_exporter的安装
    • 3.3 设置MySQL账户,用于数据收集
    • 3.4 启动mysql_exporter
    • 3.5 配置服务端拉取数据
    • 3.6 到网页端查看监控情况
  • 四. MySQL中常见的监控指标:
  • 写在最后

前言

大家好,又见面了,我是沐风晓月,本文是专栏【云原生实战】专栏的第3篇文章,主要讲解prometheus监控远程主机实战。

专栏地址:【云原生实战】 , 此专栏是沐风晓月对云原生项目的汇总,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。

如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。

🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘

一. 实验环境

本次的实验环境见下表:

操作系统服务器IPhostname
centos7.6192.168.1.41mufengrow41
centos7.6192.168.1.42mufenggrow42

如何查看相应的参数:

  • 查看操作系统:
[root@mufenggrow ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
  • 查看hostname
## 修改hostname
[root@mufenggrow ~]# hostnamectl set-hostname mufenggrow41
[root@mufenggrow ~]# bash
# 查看hostname
[root@mufenggrow41 ~]# hostname
mufenggrow41
  • 查看ip
[root@mufenggrow41 ~]# ifconfig |grep inet |awk 'NR==1{print $2}'
192.168.1.41

本文中的master服务器,也就是prometheus已经安装好,如果你还未安装,可以参考上一篇文章:prometheus安装及使用入门

二. 安装MySQL5.7

2.1 配置yum源

  1. 配置网络yum源

想要安装MySQL5.7, 需要配置网络源和 MySQL官网提供的rpm包

## 把系统再带的base源备份一份
[root@mufeng ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
# 从阿里云下载需要的网络源
[root@mufeng ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all # 清除系统所有的yum缓存 
yum makecache # 生成yum缓存 
yum update 

这里安装的过程中,若没有wget命令,需要提前安装:

root@mufenggrow42 ~]# yum install wget -y
  1. 下载官网提供的rpm包
[root@mufenggrow42 ~]# wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

2.2 安装MySQL之前的环境检查

centos7之后的操作系统中,不能直接安装MySQL,默认的是mariadb,所以安装前要先清空系统中是否有其他的MySQL包

[root@mufeng ~]# rpm -qa |grep mysql
[root@mufeng ~]# rpm -qa |grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64

[root@mufeng ~]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
[root@itlaoxin21 ~]# 

查找老版本的mysql相关的安装目录
[root@mufeng ~]# find / -name mysql
/etc/selinux/targeted/active/modules/100/mysql
/usr/lib64/mysql
## 查出来后删除
[root@mufeng ~]# rm -rf /etc/selinux/targeted/active/modules/100/mysql
[root@mufeng ~]# rm -rf /usr/lib64/mysql/

2.3 开始使用yum安装

    1. 使用rpm 命令配置MySQL源

刚才我们下载了官网提供的mysql的rpm包,如果你没有下载,可以使用命令下载下:

wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

然后使用rpm包进行安装:

[root@mufenggrow42 ~]# rpm -ivh mysql57-community-release-el7-9.noarch.rpm 
警告:mysql57-community-release-el7-9.noarch.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql57-community-release-el7-9  ################################# [100%]

安装完成后,会在/etc/yum.repo.d目录下,生成MySQL-community.repo文件:
在这里插入图片描述
2. 使用yum安装MySQL

[root@mufenggrow42 yum.repos.d]# yum install mysql-community-server -y

若安装过程中出现:
在这里插入图片描述
可以执行

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

之后再继续安装一下上面的yum install mysql-community-server -y

安装成功如图:

在这里插入图片描述

2.4 启动MySQL并测试

直接启动MySQL,并查看是否启动

启动mysql
root@mufeng yum.repos.d]# systemctl  start mysqld
查看启动状态
[root@mufeng yum.repos.d]# systemctl  status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 三 2022-09-28 15:21:42 CST; 5s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 28280 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 28223 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 28283 (mysqld)
    Tasks: 27
   Memory: 304.8M
   CGroup: /system.slice/mysqld.service
           └─28283 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid


设置MySQL的新密码:

先找到原来的密码:

[root@mufenggrow42 yum.repos.d]# grep "temporary password" /var/log/mysqld.log 
2023-02-10T04:56:06.576672Z 1 [Note] A temporary password is generated for root@localhost: GgOJ*pOsQ0_X
[root@mufenggrow42 yum.repos.d]# 

使用找到密码登录MySQL:
在这里插入图片描述

然后进行密码修改:

mysql> alter user 'root'@'localhost' identified by "Mufeng123!";
Query OK, 0 rows affected (0.00 sec)

三. 安装MySQL_exporter

3.1 MySQL_exporter的介绍

广义上讲所有可以向Prometheus提供监控样本数据的程序都可以被称为一个exporter。而exporter的一个实例称为target

prometheus 通过轮询的方式定期从这些target中获取样本数据。

MySQL数据库的exporter 主要监控Mysql数据库的稳定性、吞吐量、连接情况、缓冲池使用情况、查询性能等各项指标,是我们压测时常常需要监控的一些指标。

3.2 mysql_exporter的安装

先上传我们需要的包:
在这里插入图片描述
接下来进行解压:

[root@mufenggrow42 ~]# tar xf mysqld_exporter-0.14.0.linux-amd64.tar.gz 
[root@mufenggrow42 ~]# mv mysqld_exporter-0.14.0.linux-amd64 mysqld_exporter

[root@mufenggrow42 ~]# cd mysqld_exporter

可以看到mysqld_exporter解压后,有个可执行文件:

[root@mufenggrow42 mysqld_exporter]# ls
LICENSE  mysqld_exporter  NOTICE

3.3 设置MySQL账户,用于数据收集

在这里我们创建要给用户:mysql_monitor 从本地访问数据库,使用密码:MUFfeng123! 来访问数据库

[root@mufenggrow42 mysqld_exporter]# mysql -uroot -pMufeng123!
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.41 MySQL Community Server (GPL)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> grant select,replication client,process ON *.* to 'mysql_monitor'@'localhost' identified by 'MUfenggrow123!';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

我们在目录mysql_exporter目录中创建配置文件,把刚刚设置好的用户名和密码写入进去:

这个配置文件默认是没有的,需要手工创建:

[root@mufenggrow42 mysqld_exporter]# vim .my.cnf
[root@mufenggrow42 mysqld_exporter]# cat .my.cnf 
[client]
user=mysql_monitor
password=MUfeng123!

3.4 启动mysql_exporter

启动的时候要指定刚刚设置的配置文件:

[root@mufenggrow42 mysqld_exporter]# nohup ./mysqld_exporter --config.my-cnf=/root/mysqld_exporter/.my.cnf &
[8] 31412

查看是否启动成功:

[root@mufenggrow42 ~]# ss -antlp |grep 9104
LISTEN     0      128         :::9104                    :::*                   users:(("mysqld_exporter",pid=31412,fd=3))
[root@mufenggrow42 ~]# 

看到端口,说明启动成功,接下来,需要到server端配置文件中指定IP和端口

3.5 配置服务端拉取数据

前面两个我们在之前的文章中配置过了,下面我们只需要修改最后三行即可

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]

  - job_name: "node42"
    static_configs:
      - targets: ["192.168.1.42:9100"]

  - job_name: "mysql"
    static_configs:
      - targets: ["192.168.1.42:9104"]

修改方式如图:
在这里插入图片描述
修改配置文件之后需要重启:

[root@mufenggrow41 prometheus]# pkill prometheus
[root@mufenggrow41 prometheus]# ./prometheus &

3.6 到网页端查看监控情况

从下图可以看到,已经能够监控到MySQL了。
在这里插入图片描述
上图中的三个常见的单词:

Alerts:可以看到自定义的告警规则。

Graph:按查询条件进行数据查询,并生成指定图形。

Status:可以查看配置信息、规则、节点目标等,其中Targets表示本地和远端的监控,可以查看各节点运行情况

接下来我们通过控制面板查看:process_cpu_seconds_total,查看CPU指标
在这里插入图片描述

四. MySQL中常见的监控指标:

Google 提出系统监控的 Latency,Traffic,Saturation,Errors 作为黄金指标。而 MySQL 作为资源类服务系统出现,我们将之进行细化,从可用性、数据库连接、查询、流量、文件五大维度入手:
在这里插入图片描述

写在最后

以上就是使用prometheusmysql 服务器实战,欢迎点赞收藏哦。

原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力! \textcolor{green}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向! \textcolor{green}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/334931.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年信息系统项目管理师,需要哪些备考资料?

其实考前心态是相当重要的&#xff0c;你需要战胜的一直是你自己。你首先要明确自己考试必胜的决心&#xff0c;树立好的备考心态&#xff0c;学习只要用对了方法&#xff0c;考试通过的几率还是挺高的。备考心得&#xff1a;我自己备考了3个月的时间通过了&#xff0c;分享一套…

Linux多线程---生产者消费者模型和线程池

目录 生产者消费者模型 条件变量 接口 实现基于阻塞队列的cp模型 POSIX信号量 信号量的PV操作 接口&#xff1a; 初始化信号量&#xff1a; 销毁信号量 等待信号量 发布信号量 基于环形队列的生产者消费者模型 线程池 应用场景&#xff1a; 如何实现&#xff1f; …

DHCP中继及配置

为什么需要DHCP Relay&#xff1f;产生背景解决方案DHCP Relay工作原理DHCP Relay配置实现产生背景 随着网络规模的扩大&#xff0c;网络中就会出现用户处于不同网段的情况。 这个时候客户A和客户B要请求IP地址时&#xff0c;首先会发送DHCP Discover广播包&#xff0c;这个广…

一本关于ChatGPT的书《ChatGPT 革命:了解大型语言模型的力量》免费下载

下载地址&#xff1a;https://download.csdn.net/download/winniezhang/87431530 这本书有什么不同&#xff1a; 1、从书名&#xff0c;到大纲&#xff0c;到内容&#xff0c;基本都来自ChatGPT的自述&#xff0c;本人只是负责编辑。 2、整个成书过程只用了2小时不到。 3、…

【排序算法】堆排序(Heap Sort)

堆排序是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构&#xff0c;并同时满足堆积的性质&#xff1a;即子结点的键值或索引总是小于&#xff08;或者大于&#xff09;它的父节点。堆排序介绍学习堆排序之前&#xff0c;有必要了解堆&#xff01;若…

【HTML】HTML 表格 ② ( 表头单元格标签 | 表格标题标签 )

文章目录一、表头单元格标签二、表格标题标签一、表头单元格标签 表头单元格 可以在表格中 用作第一排 作为表格 的 表头 使用 , 表头单元格 中的 文本设置 可以与 普通单元格 中的文本设置 不同 ; 表头单元格 中的 文本 会 居中 , 并且 加粗 显示 ; 表头单元格 标签 如下 : &…

2023彻底解决Typora使用iPic微博图床失效问题

一、问题描述用Typora搭配iPic图床使用&#xff0c;最近csdn图片显示不出来用浏览器打开图片显示403&#xff0c;这里原因是微博图床出问题了导致的而使用iPic其他图床则需要一直付费&#xff0c;那有没有一劳永逸的解决所有问题呢&#xff1f;二、旧图恢复首先怎么找回旧图&am…

数字信号处理-第一章 离散时间信号与系统

1.1 离散时间信号——序列 1.1.1 序列 离散时间信号只在离散时间上给出函数值&#xff0c;是时间上不连续的序列。一 般 &#xff0c;离散时间的间隔是均匀的&#xff0c;以TTT表示&#xff0c;故用 x(nT)x(nT)x(nT)表示此离散时间信号在nTnTnT点上的值&#xff0c;nnn为整数…

省钱的年轻人,钱包被折扣店钻了空子

【潮汐商业评论/原创】过年期间&#xff0c;除了商场超市&#xff0c;小区附近的折扣店成了Amy经常光顾的对象。用Amy的话来说&#xff0c;“跟附近超市比价格&#xff0c;跟大卖场比距离&#xff0c;综合下来折扣店就是我随时购物的不二选择。”从Amy的话里&#xff0c;我们可…

LeetCode-101. 对称二叉树

目录题目分析递归法题目来源 101. 对称二叉树 题目分析 首先想清楚&#xff0c;判断对称二叉树要比较的是哪两个节点&#xff0c;要比较的可不是左右节点&#xff01; 对于二叉树是否对称&#xff0c;要比较的是根节点的左子树与右子树是不是相互翻转的&#xff0c;理解这一…

如何在 Mac 上将 PDF 转换为 Word [6 种免费方法]

我们出于各种原因使用 PDF。我们可以将它们用于学校作业&#xff0c;以打印出谱&#xff0c;或离线阅读文章。我们经常想弄清楚如何在 Mac 上将 Word 文档另存为 PDF。但是&#xff0c;如果我们需要对 PDF 进行更改怎么办&#xff1f; 对 PDF 进行更改通常无法在 PDF 本身上完…

Vue3通透教程【二】更高效的构建工具—Vite

文章目录&#x1f31f; 写在前面&#x1f31f; webpack&#x1f31f; Vite是什么&#xff1f;&#x1f31f; 使用Vite创建项目&#x1f31f; 写在最后&#x1f31f; 写在前面 专栏介绍&#xff1a; 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章&#xff0c;应粉丝要求开始更…

【成为架构师课程系列】架构师的核心能力地图

目录 架构师核心能力总结 #综合技术能力分层总结 #数据结构和算法知识图谱总结 #Java工程师【核心基础】知识图谱总结

全栈开发工程师面试题五-Eureka

1.服务的提供者和服务的消费者&#xff08;服务的调用关系&#xff09; 服务的提供者&#xff1a;在一次服务中被其他服务调用的服务(提供接口给其他服务) 服务的消费者&#xff1a;一次业务中调用其他服务的服务&#xff08;调用其它微服务提供的接口&#xff09; 服务的提供者…

Koa2-创建、中间件、连接数据库、处理请求、日志

文章目录安装配置koa2配置nodemon,热更新我们的项目中间件什么是中间件&#x1f47b;洋葱模型路由中间件连接数据库 - mysql后端允许跨域处理请求getpostputdelete后续会继续更新安装配置koa2 &#x1f47b;安装 koa2 npm i koa2 -s&#x1f47b;在package.json 配置,当然是在…

如何在QEMU社区提Bug

当在编译及使用QEMU的过程中发现问题又不能自行解决时&#xff0c;可以去QEMU官网提Bug。本文以笔者实际遇到的问题为例&#xff0c;讲解提交QEMU Bug的完整过程。 1. 访问QEMU主页 QEMU官网主页地址为&#xff1a;https://www.qemu.org/ 页面如下&#xff1a; 2. 跳转至CON…

RK3566 多Mipi屏的兼容

需求:项目需求需要同一个固件兼容两款不同IC的mipi屏。以便有一个IC停产之后使用不受影响。由于是同一个模组厂商,所以设计初就要求硬件接口一样或者兼容。 方法:一开始的想法很简单和网上以及同行提供的方法一样在uboot阶段去读屏的ID,然后再把对应屏ID放到cmdline里面去传…

Parasoft全面发布最广泛的MISRA规则覆盖

Parasoft通过其经过市场验证的自动化软件测试工具集成套件&#xff0c;帮助企业持续交付高质量的软件。Parasoft的技术支持嵌入式、企业和物联网市场&#xff0c;通过将静态代码分析和单元测试、Web UI和API测试等所有内容集成到交付管道中&#xff0c;再加上服务虚拟化和完整的…

Python 数据库开发实战 - Python与Redis交互篇- 综合案例 - 新闻管理系统 - 缓存新闻数据至redis

接下来这个章节将继续来完成 《新闻管理系统》 这个项目&#xff0c;上一章节我们完成了 “发表新闻” 这个功能&#xff0c;在发表新闻后&#xff0c;什么时候才会缓存该条新闻记录呢&#xff1f;并不是说在发表新闻成功之后就立刻被缓存&#xff0c;而是该新闻被管理员审批通…

基于Verilog HDL的状态机描述方法

⭐本专栏针对FPGA进行入门学习&#xff0c;从数电中常见的逻辑代数讲起&#xff0c;结合Verilog HDL语言学习与仿真&#xff0c;主要对组合逻辑电路与时序逻辑电路进行分析与设计&#xff0c;对状态机FSM进行剖析与建模。 &#x1f525;文章和代码已归档至【Github仓库&#xf…