云原生系列之使用 prometheus监控MySQL实战
文章目录
- 前言
- 一. 实验环境
- 二. 安装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,我总结知识的地方,喜欢的话请三连,有问题请私信😘
一. 实验环境
本次的实验环境见下表:
操作系统 | 服务器IP | hostname |
---|---|---|
centos7.6 | 192.168.1.41 | mufengrow41 |
centos7.6 | 192.168.1.42 | mufenggrow42 |
如何查看相应的参数:
- 查看操作系统:
[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源
- 配置网络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.repoyum clean all # 清除系统所有的yum缓存
yum makecache # 生成yum缓存
yum update
这里安装的过程中,若没有wget命令,需要提前安装:
root@mufenggrow42 ~]# yum install wget -y
- 下载官网提供的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安装
-
- 使用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 ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Active: active (running) since 三 2022-09-28 15:21:42 CST; 5s agoDocs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlProcess: 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: 27Memory: 304.8MCGroup: /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}{评论,你的意见是我进步的财富!}评论,你的意见是我进步的财富!
相关文章:

云原生系列之使用 prometheus监控MySQL实战
文章目录前言一. 实验环境二. 安装MySQL5.72.1 配置yum源2.2 安装MySQL之前的环境检查2.3 开始使用yum安装2.4 启动MySQL并测试三. 安装MySQL_exporter3.1 MySQL_exporter的介绍3.2 mysql_exporter的安装3.3 设置MySQL账户,用于数据收集3.4 启动mysql_exporter3.5 配…...

电脑分盘怎么分?分盘详细教程来了,图文教学
电脑作为小伙伴日常生活使用的工具,很多事情都需要使用电脑来进行处理。虽然小伙伴使用电脑比较多,但是还是有不少的小伙伴不知道电脑分盘怎么分?其实电脑分盘很简单,下面小编就以图文教学的方式,详细的向小伙伴介绍电…...

Element UI框架学习篇(四)
Element UI框架学习篇(四) 1 准备工作 1.0 创建Emp表并插入相应数据的sql语句 /*MySQL数据库*/SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ---------------------------- -- Table structure for emp -- ---------------------------- DROP TABLE IF EXISTS emp; CRE…...

Revit快速材质切换:同一墙面赋予不同材质的方法
一、Revit中对同一墙面赋予不同材质的方法 方法1:零件法 重点:通过工作平面面板上的设置工作平面命令选取正确的面取消勾选通过原始分类的材质,如图1所示 方法2:拆分构造层绘制一道墙体,选择创建的墙体,单击…...

【Linux operation 56】Linux 系统验证端口连通性
linux 系统验证端口连通性 1、前提 Linux系统有时候需要测试某个端口的连通性,然而ping命令只能测试某个IP通不通,不能测试某端口的连通性。 因为ping命令是基于ICMP协议,是计算机网络中的网络层的协议,但是想要测试某个的连通…...

@Valid注解配合属性校验注解完成参数校验并且优化异常处理
Valid注解配合属性校验注解完成参数校验并且优化参数校验异常处理1 Valid注解配合属性校验注解完成参数校验2 优化参数校验异常处理1 Valid注解配合属性校验注解完成参数校验 向数据库商品分类表中新增商品分类字段,并校验传入的参数 不使用注解的传统方法…...

每天一道大厂SQL题【Day08】
每天一道大厂SQL题【Day08】 大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题,以每日1题…...
朗润国际期货:2023/2/10今日期市热点及未来焦点
2023/2/10今日期市热点及未来焦点 1月份人 民币贷款增加4.9万亿元 创历史新高 中国央行: 1月份人民币贷款增加4.9万亿元,同比多增9227亿元。分部门看,住户贷款增加2572亿元,其中,短期贷款增加341亿元,中长期贷款增加…...

TLV73312PQDRVRQ1稳压器TPS622314TDRYRQ1应用原理图
一、TLV73312PQDRVRQ1低压差稳压器 1.2V 300MATLV733 300mA 低压差稳压器是有 300mA 拉电流能力的超小型、低静态电流 LDO,具有良好的线路和负载瞬态性能。这些器件具有 1% 的典型精度。TLV733 系列设计具有先进的无电容器结构,确保无需输入或输出电容器…...

课程回顾|以智能之力,加速媒体生产全自动进程
本文内容整理自「智能媒体生产」系列课程第二讲:视频AI与智能生产制作,由阿里云智能视频云高级技术专家分享视频AI原理,AI辅助媒体生产,音视频智能化能力和底层原理,以及如何利用阿里云现有资源使用音视频AI能力。课程…...
C库函数文件操作(fopen、fread、fwrite、fclose)
C库函数 C文件操作用库函数实现,包含在stdio.h中,系统自动打开和关闭三个标准文件: 标准输入-键盘(stdin)标准输出-显示器(stdout)标准出错输出-显示器(stderr) 文件打…...

【Java|golang】1798. 你能构造出连续值的最大数目
给你一个长度为 n 的整数数组 coins ,它代表你拥有的 n 个硬币。第 i 个硬币的值为 coins[i] 。如果你从这些硬币中选出一部分硬币,它们的和为 x ,那么称,你可以 构造 出 x 。 请返回从 0 开始(包括 0 )&a…...

VB 消息、消息队列、事件
windows是图像化界面,多任务消息windows系统将消息(大的结构)发给其他应用程序Windows消息包含了所有的外部输入或者计算机内部信息,应用程序的消息队列先进先出,Windows消息的循环--每个应用程序里有自己的消息循环外…...
Linux实用指令记录
du Linux du(英文全拼:disk usage)命令用于显示目录或文件的大小。du 会显示指定的目录或文件所占用的磁盘空间。用例:当前路径/home/hzf/Voice/wespeaker-master$ du -h -d 1 371G ./examples 52K ./tools 280K ./run…...

Jetpack Compose中的绘制流程和自定义布局
Jetpack Compose中绘制流程的三个阶段 与大多数其他界面工具包一样,Compose 会通过几个不同的“阶段”来渲染帧。如果我们观察一下 Android View 系统,就会发现它有 3 个主要阶段:测量、布局和绘制。Compose 和它非常相似,但开头…...
笔试题-2023-芯动-数字IC设计【纯净题目版】
回到首页:2023 数字IC设计秋招复盘——数十家公司笔试题、面试实录 推荐内容:数字IC设计学习比较实用的资料推荐 题目背景 笔试时间:2022.07.23应聘岗位:数字IC设计笔试时长:120min笔试平台:nowcoder牛客网题目类型:单选题(10道)、不定项选择(5道)、填空(5道)、问…...

高压放大器在孔道灌浆非线性超声测试中的应用
实验名称:高压放大器在孔道灌浆非线性超声测试中的应用研究方向:无损检测测试目的:超声波作为频率高于20kHz的声波被广泛应用于各类结构的无损检测中,以超声波作为探伤波的无损检测法称为超声波无损检测法,简称超声波法…...
vue3响应式原理
通过Proxy(代理): 拦截对data任意属性的进行操作, 包括属性值的增删改查 通过 Reflect(反射): 动态对被代理对象的相应属性进行特定的操作 通过采用两者结合使用的方式实现响应式 Proxy 对象用于创建一个对象的代理,从而实现基本操作的拦截和自定义(如…...

c/c++开发,无可避免的宏定义使用案例
一、c/c宏定义的来源 宏定义,就是用一个标识符来表示一个字符串,如果在后面的代码中出现了该标识符,那么就全部替换成指定的字符串。通常c/c宏定义这几处出处: 1)最常见的就是来自于开发者编码过程中采用宏定义命令“#…...

SaaS的阴暗面:网络攻击武器化、平民化
你不一定懂编程,甚至都看不懂几行代码,但依然能成为杀伤力十足的黑客,这就是现阶段不少网络攻击的特点:不需要掌握娴熟的技术或代码,仅仅利用成熟的武器化工具,就能通过简单的“一键操作”,对目…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7
在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤: 第一步: 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为: // 改为 v…...
数据库正常,但后端收不到数据原因及解决
从代码和日志来看,后端SQL查询确实返回了数据,但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离,并且ai辅助开发的时候,很容易出现前后端变量名不一致情况,还不报错,只是单…...