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

乾坤圈新媒体矩阵管家
乾坤圈新媒体矩阵管家

新媒体账号、门店矩阵智能管理系统

下载

配置完成。

配置 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

相关专题

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

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

665

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中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

515

2023.07.19

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

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

255

2023.07.25

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

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

386

2023.08.08

sqlserver和mysql区别
sqlserver和mysql区别

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

531

2023.08.11

mysql忘记密码
mysql忘记密码

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

600

2023.08.14

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

6

2026.01.23

热门下载

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

精品课程

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

共48课时 | 1.9万人学习

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

共3课时 | 0.3万人学习

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

共1课时 | 805人学习

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

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