Hello! 欢迎来到小浪云!


使用 Prometheus MySQL Exporter 监控 MySQL 和 MariaDB Droplet


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

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

使用 Prometheus MySQL Exporter 监控 MySQL 和 MariaDB Droplet

方法一-手动配置

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

添加 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 根目录密码:

使用 Prometheus MySQL Exporter 监控 MySQL 和 MariaDB Droplet

配置完成。

配置 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地址。

使用 Prometheus MySQL Exporter 监控 MySQL 和 MariaDB Droplet

第 7 步:配置完成。

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

配置 grafana

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

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

使用 Prometheus MySQL Exporter 监控 MySQL 和 MariaDB Droplet

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

使用 Prometheus MySQL Exporter 监控 MySQL 和 MariaDB Droplet

第 4 步:搜索并选择 Prometheus。

使用 Prometheus MySQL Exporter 监控 MySQL 和 MariaDB Droplet

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

使用 Prometheus MySQL Exporter 监控 MySQL 和 MariaDB Droplet

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

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

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

使用 Prometheus MySQL Exporter 监控 MySQL 和 MariaDB Droplet

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

使用 Prometheus MySQL Exporter 监控 MySQL 和 MariaDB Droplet

相关阅读