0

0

使用 Prometheus MySQL Exporter 监控 MySQL 和 MariaDB Droplet

舞姬之光

舞姬之光

发布时间:2025-01-09 10:30:32

|

804人浏览过

|

来源于digitalocean.com

转载

有效监控 MySQL 和 MariaDB 数据库对于保持最佳性能、识别潜在瓶颈以及确保整体系统可靠性至关重要。 Prometheus MySQL Exporter 是一款强大的工具,可提供对数据库指标的详细洞察,这对于主动管理和故障排除至关重要。

在本教程中,您将学习如何设置 Prometheus MySQL 导出器使用手动监控 MySQL 和 MariaDB 数据库 配置和基于脚本的自动化。这些方法提供 灵活选择最佳部署策略和运营

截屏2025-01-09 10.03.57.png

方法一-手动配置

我们继续本节的手动配置方法。

添加 Prometheus 系统用户和组

在此步骤中,您将配置目标 Droplet。让我们创建一个名为“prometheus”的系统用户和组来管理导出器服务。

sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus

下载并安装 Prometheus MySQL Exporter

在此步骤中,您将下载最新版本的 Prometheus 来自 GitHub 的 MySQL Exporter,提取下载的文件,并将 二进制文件到 /usr/local/bin/目录。

curl -s https://api.github.com/repos/prometheus/mysqld_exporter/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
tar xvf mysqld_exporter*.tar.gz
sudo mv mysqld_exporter-*.linux-amd64/mysqld_exporter /usr/local/bin/
sudo chmod  x /usr/local/bin/mysqld_exporter

创建Prometheus Exporter 数据库用户

以 root 身份登录 MySQL,并为导出器创建具有必要权限的专用用户。

mysql -u root -p

如果需要,请输入 root 密码,您将请参阅 MySQL/MariaDB 提示符。然后执行以下命令(将下面命令中的giveapassword替换为mysqld_exporter数据库用户的新密码)。

创建一个名为mysqld_exporter的新MySQL用户,密码为本地的giveapassword

CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'giveapassword';

授予 mysqld_exporter 用户查看进程列表、客户端复制状态和查询所有数据

GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqld_exporter'@'localhost';

重新加载授权表以应用对用户所做的更改权限。

FLUSH PRIVILEGES;

退出 MySQL 命令行

EXIT

配置数据库凭证

创建配置文件来存储MySQL 导出器

sudo vi /etc/.mysqld_exporter.cnf

将以下用户凭据添加到file:

[client]user=mysqld_exporterpassword=giveapassword

设置配置的所有权权限file:

sudo chown root:prometheus /etc/.mysqld_exporter.cnf

创建 systemd 单元文件

创建 systemd 服务单元用于管理 MySQL Exporter 的文件service:

sudo vi /etc/systemd/system/mysql_exporter.service

将以下数据添加到file:

[Unit]Description=Prometheus MySQL ExporterAfter=network.targetUser=prometheusGroup=prometheus[Service]Type=simpleRestart=alwaysExecStart=/usr/local/bin/mysqld_exporter --config.my-cnf /etc/.mysqld_exporter.cnf --collect.global_status --collect.info_schema.innodb_metrics --collect.auto_increment.columns --collect.info_schema.processlist --collect.binlog_size --collect.info_schema.tablestats --collect.global_variables --collect.info_schema.query_response_time --collect.info_schema.userstats --collect.info_schema.tables --collect.perf_schema.tablelocks --collect.perf_schema.file_events --collect.perf_schema.eventswaits --collect.perf_schema.indexiowaits --collect.perf_schema.tableiowaits --collect.slave_status --web.listen-address=0.0.0.0:9104[Install]WantedBy=multi-user.target

重新加载 systemd 并启动 MySQL Exporter 服务

重新加载 systemd配置并启动 MySQL Exporter服务:

sudo systemctl daemon-reload
sudo systemctl enable mysql_exporter
sudo systemctl start mysql_exporter

正在配置Prometheus Droplet

让我们首先备份 prometheus.yml 文件:

cp /etc/prometheus/prometheus.yml /etc/prometheus/prometheus.yml-$(date  '%d%b%Y-%H:%M')

现在登录到您的 Prometheus 服务器并添加要抓取的 MySQL Exporter 端点。

将 IP 地址和端口替换为您的 MySQL Exporter 端点(9104 是 Prometheus MySQLd 的默认端口出口商)。

vi /etc/prometheus/prometheus.yml
scrape_configs:
  - job_name: server1_db
    static_configs:
      - targets: ['10.10.1.10:9104']
        labels:
          alias: db1

  - job_name: server2_db
    static_configs:
      - targets: ['10.10.1.11:9104']
        labels:
          alias: db2

方法2-使用脚本进行配置

您还可以通过运行两个脚本来实现这一目标 - 一个用于目标 Droplet,另一个用于 Prometheus Droplet。

让我们从配置目标 Droplet 开始。

第 1 步:通过 SSH 连接到目标 Droplet。

第 2 步:下载目标配置脚本使用以下命令:

wget https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_MySQL_MariaDB_Target_Config.sh

第 3 步:下载脚本后,确保它已包含可执行权限由running:

chmod  x DO_MySQL_MariaDB_Target_Config.sh

第 4 步:执行脚本running:

./DO_MySQL_MariaDB_Target_Config.sh

第 5 步:输入 mysql_exporter 用户的新密码,然后输入MySQL 根目录密码:

MySQL-MariaDB-2

CodeBuddy
CodeBuddy

腾讯云AI代码助手

下载

配置完成。

配置 Prometheus Droplet(脚本方法)

第 1 步:通过 SSH 登录 Prometheus Droplet .

第 2 步:使用以下命令下载 Prometheus 配置脚本命令:

wget https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_MySQL_MariaDB_Prometheus_Config.sh

这个 bash脚本自动更新Prometheus配置文件添加 新的服务器端点。首先备份当前的 带有时间戳文件名的 prometheus.yml 文件。

然后脚本提示用户指定要添加的服务器数量并验证此输入。

对于每个服务器,它请求一个主机名和IP 地址,确保 每个 IP 地址在配置文件中都是唯一的。有效服务器 配置附加到 prometheus.yml 文件中。更新后 配置完成后,脚本会重启 Prometheus 服务并检查 其状态以确认更改已应用。

最后,它在退出之前等待用户输入。

第 3 步:下载脚本后,通过以下方式确保其具有可执行权限running:

chmod  x DO_MySQL_MariaDB_Prometheus_Config.sh

第 4 步:执行脚本running:

./DO_MySQL_MariaDB_Prometheus_Config.sh

第 5 步:输入要添加到监控的 Droplet 数量。

第6步:输入主机名和IP地址。

MySQL-MariaDB-4

第 7 步:配置完成。

第 8 步:添加后,通过访问 URLprometheushostname:9090/ 检查目标是否已更新目标。

配置 Grafana

步骤1:在浏览器上访问 Grafana-IP:3000 登录 Grafana 仪表板。

步骤 2:转到配置 > 数据源。

grafana1

步骤3:点击添加数据源。

grafana2

第 4 步:搜索并选择 Prometheus。

grafana3

第 5 步:输入 Prometheus 名称和 URL (Prometheus主机名:9090)并单击“保存并测试”。如果看到“数据源正在运行”,则说明您已成功添加数据源。完成后,转到“创建”>“导入”。

grafana4

第 6 步:您可以手动配置仪表板或 通过上传 JSON 文件导入仪表板。 JSON 模板 MySQL和MariaDB监控可以在以下链接找到:

https://solutions-files.ams3.digitaloceanspaces.com/MySQL-MariaDB-Monitoring/DO_Grafana-Mysql-MariaDB_Monitoring.json

第7步:填写田野和导入。

grafana5

第 8 步:Grafana 仪表板已准备就绪。选择 托管并检查指标是否可见。您可以修改和编辑 根据需要使用仪表板。

grafana6

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

668

2023.06.20

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

247

2023.06.21

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

281

2023.07.18

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

516

2023.07.19

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

256

2023.07.25

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

387

2023.08.08

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

533

2023.08.11

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

602

2023.08.14

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

1

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 812人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号