当前位置: 首页 > news >正文

Prometheus-监控Mysql进阶用法(1)(安装配置)

阿丹:

        在开发和生产环境中有可能会出现慢mysql等问题,那么这里就需要我们优秀的程序员来进行监控和解决,那么如何借助云原生的监控系统来完成这个操作呢?

       环境描述:

       使用一台空白的阿里云服务器2核4G。

服务器基本安装配置-docker容器化

关闭防火墙

systemctl stop firewalld

安装流程按照我之前写的文章来进行,我这里直接附上文章链接

阿丹的服务配置文章专题

安装docker

配置Linux服务器华为云耀云服务器之docker安装,以及环境变量安装 java (虚拟机一样适用)_华为云安装docker-CSDN博客

安装Mysql5:7 

配置Linux服务器华为云耀云服务器之docker中Mysql5.7、redis安装 (虚拟机一样适用)_云耀云服务器开放3306-CSDN博客

 安装普罗米修斯并监控mysql

Prometheus安装挂载数据卷

Prometheus技术文档--基本安装-docker安装并挂载数据卷-《十分钟搭建》_一单成的博客-CSDN博客

 访问ip+9090出现以下页面完成安装

Grafana安装挂载数据卷

Grafana技术文档--基本安装-docker安装并挂载数据卷-《十分钟搭建》-附带监控服务器_一单成的博客-CSDN博客

 访问ip+3000,出现页面完成Grafana安装

 在这一步的时候使用Grafana,在上面搜索框直接搜索Data sources将普罗米修斯设置为数据源,因为上面链接中有这里就不过多的说了。

docker中拉取mysql的探针

docker pull prom/mysqld-exporter

运行探针

首先创建一个专门用来监控的用户并授权

进入docker的mysql容器

docker exec -it 容器的id bash

 登录root用户

mysql -u root -p

输入密码后执行下面的指令 

CREATE USER 'mysql_monitor'@'%' IDENTIFIED BY 'adn666' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysql_monitor'@'%';
FLUSH PRIVILEGES;
EXIT

 这段SQL语句用于在MySQL数据库中创建一个名为'mysql_monitor'的用户,并给予该用户一些权限。让我逐行解释一下:

  1. CREATE USER 'mysql_monitor'@'%' IDENTIFIED BY 'adn666' WITH MAX_USER_CONNECTIONS 3;

    • 这行代码创建一个名为'mysql_monitor'的用户,并且定义了用户的身份验证方式(密码)为'adn666'。
    • 'localhost'指定了该用户只能从本地主机连接到MySQL服务器。
    • WITH MAX_USER_CONNECTIONS 3限制了该用户可以同时建立的最大连接数为3个。
  2. GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysql_monitor'@'localhost';

    • 这行代码将一些权限授予'mysql_monitor'用户。
    • PROCESS权限允许该用户查看当前正在运行的MySQL进程。
    • REPLICATION CLIENT权限允许该用户连接到MySQL复制服务器以获取复制相关的信息。
    • SELECT权限允许该用户在所有的数据库和表上执行SELECT查询语句。
  3. FLUSH PRIVILEGES;

    • 这行代码用于刷新MySQL权限表,以使新的用户和权限设置生效。
  4. EXIT

    • 这行代码用于退出MySQL命令行终端。

这些语句的目的是创建一个具有特定权限的MySQL用户,并确保这些权限生效。你可以根据自己的需求修改用户名、密码和授权的权限。

使用我们创建好的用户来启动探针

docker直接运行探针(出现问题)

GitHub - percona/mysqld_exporter: Exporter for MySQL server metrics

 下面的这个就是官网提供的但是阿丹运行报错

docker network create my-mysql-network
docker pull prom/mysqld-exporterdocker run -d \-p 9104:9104 \--network my-mysql-network  \-e DATA_SOURCE_NAME="user:password@(hostname:3306)/" \prom/mysqld-exporter

 根据实践总是出现有这个.my.cnf的配置文件找不到。在这里留个坑希望有大神可以解答一下。

使用从官网上下拉代码

 wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz

解压

tar xf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local/

移动

ln -sv /usr/local/mysqld_exporter-0.12.1.linux-amd64/ /usr/local/prometheus_mysqld

编写配置文件,根据刚才我们新建的用户来完成配置

#编辑配置文件
vim /usr/local/prometheus_mysqld/.my.cnf #配置文件中内容
[client]
user=mysql_monitor #刚才新建的用户
password=adn666 #密码
port=3306 #端口号,如果不写ip地址(host)的话默认就是本机

配置systemd启动mysqld_exporter

vim /lib/systemd/system/mysqld_exporter.service

 下面为配置文件

[Unit]
Description=Mysqld_exporter
After=network.target
[Service]
ExecStart=/usr/local/prometheus_mysqld/mysqld_exporter --config.my-cnf=/usr/local/prometheus_mysqld/.my.cnf
[Install]
WantedBy=multi-user.target

 加入并启动,系统

systemctl daemon-reload
systemctl start mysqld_exporter
systemctl enable mysqld_exporter

 检查是否正常运行

ss -lnpt|grep 9104

 出现如下项目没有问题

使用ip地址+9104出现以下页面

 确认监控指标正常

curl http://localhost:9104/metrics|grep mysql_up

 那么我们下面就是在我们普罗米修斯中配置这个任务

在普罗米修斯中配置文件

修改这个配置 

  - job_name: 'mysql_db'static_configs:- targets: ['mysqlIP:9104']labels:group: mysql_db

 修改配置之后重启普罗米修斯的docker容器

访问ip+9090//targets查看

出现如上页面就是可以了! 

开始配置Grafana的主题-使用导入json的形式

阿丹:

        我这里准备了一个别人整理好的,我这里就直接拿过来使用了。

这个json文件我放在本文章的资源中了。直接拿取就可以,然后我们就使用上就可以了跟着我的步骤来。

注意:

        有两个方式来发现,一种是图表的形式来使用的,另外一种是使用配置预警规则来警告的。这里我们使用是监控图表的方式。(第二种方式阿丹后期会更新的)

我们可以直接在上面搜索这里直接搜索import

 直接将本文章中的json文件拖入就可以了,(前提是在安装的时候已经将数据来源设置为了我们安装好的普罗米修斯)

这里就是配置好了出现的面板

其中我们要使用到的就是这里!! 

相关文章:

Prometheus-监控Mysql进阶用法(1)(安装配置)

阿丹: 在开发和生产环境中有可能会出现慢mysql等问题,那么这里就需要我们优秀的程序员来进行监控和解决,那么如何借助云原生的监控系统来完成这个操作呢? 环境描述: 使用一台空白的阿里云服务器2核4G。 服务器基本安装…...

网络安全(黑客技术)自学内容

前言 一、什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防…...

linux centos7 安装mongodb7.0.1 及 mongosh2.0.1

下载数据库并解压 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-7.0.1.tgz tar -zxf mongodb-linux-x86_64-rhel70-7.0.1.tgz #移动到/usr/local/mongo目录 mv mongodb-linux-x86_64-rhel70-7.0.1 /usr/local/mongodbmongosh 命令行下载 #下载命令行…...

c++ | makefile | 编译 | 链接库

简单记一下 看着人家总结的挺好的 点这...

n个骰子掷出m点的概率,C++实现

一.在骰子游戏中,我们会有猜点数的问题。我们该如何用算法来描述呢? 加入我们当前只有一个骰子,我们该如何算概率呢? 我们现在开始推导一下吧: 首先是一个骰子的情况,我们可以简单的知道n个骰子一共可以掷出…...

【JUC系列-08】深入理解CyclicBarrier底层原理和基本使用

JUC系列整体栏目 内容链接地址【一】深入理解JMM内存模型的底层实现原理https://zhenghuisheng.blog.csdn.net/article/details/132400429【二】深入理解CAS底层原理和基本使用https://blog.csdn.net/zhenghuishengq/article/details/132478786【三】熟练掌握Atomic原子系列基本…...

企业专线成本高?贝锐蒲公英轻松实现财务系统远程访问

在办公及信息系统领域,许多企业纷纷采用金蝶等财务管理软件来提升运营效率。以某食品制造企业为例,该企业总部位于广州,并拥有湖北仙桃工厂、广州从化工厂和湖南平江工厂三大生产基地。为提高管理效率,该企业在广州总部局域网内部…...

自学——网络安全——黑客技术

想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客!!! 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队…...

k8s部署gin-vue-admin框架、gitlab-ci、jenkins pipeline 、CICD

测试环境使用的jenkins 正式环境使用的gitlab-ci 测试环境 创建yaml文件 apiVersion: v1 kind: ConfigMap metadata:name: dtk-go-tiktok-admin-configlabels:app.kubernetes.io/name: dtk-go-tiktok-adminapp.kubernetes.io/business: infrastructureapp.kubernetes.io/run…...

【SpringBoot项目】SpringBoot+MyBatis+MySQL电脑商城

在b站听了袁老师的开发课,做了一点笔记。 01-项目环境搭建_哔哩哔哩_bilibili 基于springboot框架的电脑商城项目(一)_springboot商城项目_失重外太空.的博客-CSDN博客 项目环境搭建 1.项目分析 1.项目功能:登录、注册、热销…...

互联网医院|互联网医院系统引领医疗科技新风潮

互联网的迅速发展已经改变了人们的生活方式,而医疗领域也不例外。近年来,互联网医院应运而生,为患者和医生提供了更便捷、高效的医疗服务。本文将深入探讨互联网医院的系统特点、功能以及未来的发展方向,为您展现医疗行业的新时代…...

Mock安装及应用

1、安装 npm install mockjs 2、Mock.Random属性 该属性是一个工具类,用于生成各种随机数据。它提供的方法如下: Basic: boolean,natural,integer,float,character,string,range,date,time,datetime,now; Image: image,dataImage; Color: color; Text: p…...

一起来看看UI设计流程详解吧!通俗易懂

UI设计2023 通俗易懂的UI设计流程详解 首先,大家要明确一下范围:一般分为新产品的从0-1和已有产品上新的模块或功能的从0-1,这两个方向的环节和产出物会有比较大的区别。其实在UI设计师介入之前,我们是需要去了解一些大的方向和…...

TikTok营销成功秘籍:ROI指标的黄金法则

在当今数字营销领域,TikTok已经崭露头角,成为了品牌和营销者们争相追逐的热门平台。 然而,要在TikTok上取得成功,不仅需要创意和内容,还需要精确的ROI(投资回报率)指标来衡量和优化你的营销策略…...

17.适配器模式(Adapter)

意图:将一个类的接口转换为Client希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类在一起工作。 UML图 Target:定义Client使用的与特定领域相关的接口。 Client:与符合Target接口的对象协同工作。 Adaptee&#xf…...

leetcode做题笔记154. 寻找旋转排序数组中的最小值 II

已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums [0,1,4,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,1,4]若旋转 7 次&#xff0…...

什么是推挽电路?

推挽电路原理: 可以简单理解为推和拉; 此电路总共用到两个元器件,对应图中的Q1----NPN三极管,Q2----PNP三极管,两个电阻R1和R2起到限流的作用;两个三极管的中间对应信号的输出。 下面就举例说明是如何工作的…...

208.Flink(三):窗口的使用,处理函数的使用

目录 一、窗口 1.窗口的概念 2.窗口的分类 (1)按照驱动类型分 (2)按照窗口分配数据的规则分类 3.窗口api概览 (1)按键分区(Keyed)和非按键分区(Non-Keyed) *1)按键分区窗口(Keyed Windows) *2)非按键分区(Non-Keyed Windows) (2)代码中窗口API的调…...

时序预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现POA-CNN-BiLSTM鹈鹕算…...

【知识点】增量学习、在线学习、离线学习的区别

参考链接:https://www.6aiq.com/article/1613258706447?p1&m0 离线学习 常见的学习方式,一次性将所有数据参与进训练。 离线学习完成了目标函数的优化将不会在改变了离线学习需要一次提供整个训练集时间和空间成本效率低发生数据变更或模型漂移需…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

7.4.分块查找

一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

Python如何给视频添加音频和字幕

在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...