”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在 Galera 集群节点上设置 MariaDB/MySQL Exporter 以进行 Prometheus 监控

如何在 Galera 集群节点上设置 MariaDB/MySQL Exporter 以进行 Prometheus 监控

发布于2024-11-08
浏览:941

How to Set Up MariaDB/MySQL Exporter on Galera Cluster Nodes for Prometheus Monitoring

社区开发者您好! ?

在这篇文章中,我将引导您完成在 Galera Cluster 节点上设置 MariaDB/MySQL Exporter 以使用 Prometheus 进行监控所采取的步骤。就我而言,我在具有三个节点的云服务器提供商上运行 MariaDB Galera Cluster,并使用 Prometheus Grafana 来监控我的设置。 Galera Cluster 设置和监控工具非常有用,但从 MariaDB 获取正确的指标并不简单,因此我决定记录我的解决方案。

要监控 MariaDB 和 Galera Cluster 指标,例如每秒查询数、连接数、复制状态等,您需要结合使用 MySQL Exporter 和 Prometheus。该导出器将公开特定于数据库的指标,包括 Galera 和 MariaDB 统计数据。

在 Galera 集群节点上设置 MariaDB/MySQL Exporter 的步骤:

先决条件

  • A MariaDB Galera Cluster 具有多个节点。
  • A Prometheus服务器已启动并正在运行。
  • Grafana 用于可视化指标(可选但推荐)。
  • 访问节点以安装导出器。

注意:您已经可以在云服务器提供商的市场上使用 Prometheus Grafana 的机器。赫兹纳,数字海洋

第 1 步:安装 MySQL/MariaDB 导出器

在每个 Galera 节点上,我们需要安装 MySQL Exporter,它收集指标并将其公开给 Prometheus。具体方法如下:

从官方来源下载并安装导出器

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

提取文件

tar xvfz mysqld_exporter-0.15.1.linux-amd64.tar.gz

将二进制文件移动到系统路径

sudo cp mysqld_exporter-0.15.1.linux-amd64/mysqld_exporter /usr/local/bin/

为导出器添加系统用户

sudo useradd -rs /bin/false mysqld_exporter

第 2 步:使用 MySQL/MariaDB 凭证配置导出器

导出器需要访问 MariaDB 指标。在导出器的主目录中创建 .my.cnf 文件来存储连接凭据:

sudo mkdir /etc/.mysqld_exporter
sudo nano /etc/.mysqld_exporter/.my.cnf

将以下内容添加到文件中:


[client]
user=exporter
password=yourpassword


确保用户具有访问必要指标的适当权限:

访问使用 mysql -u root 或 mariadb -u root

创建由“yourpassword”标识的用户“exporter”@“localhost”;
授予进程,复制客户端,选择 *.* TO 'exporter'@'localhost';
同花顺特权;

第 3 步:将导出器设置为服务

为了确保 MySQL Exporter 在启动时启动,让我们将其配置为 systemd 服务:

sudo nano /etc/systemd/system/mysqld_exporter.service

将以下内容添加到文件中:


[Unit]
Description=Prometheus MySQL Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=mysqld_exporter
Group=mysqld_exporter
ExecStart=/usr/local/bin/mysqld_exporter \
  --config.my-cnf=/etc/.mysqld_exporter/.my.cnf

[Install]
WantedBy=multi-user.target


保存文件并重新加载systemd:

sudo systemctl daemon-reload
sudo systemctl 启动 mysqld_exporter
sudo systemctl 启用 mysqld_exporter

第 4 步:将导出器目标添加到 Prometheus

接下来,更新您的 Prometheus 配置以从节点中获取指标。将以下内容添加到您的 prometheus.yml 文件中:

在此之前,您可以通过访问以下命令来检查 MySQL Exporter 是否正在运行:

curl http://:9104/metrics

要访问此文件,例如 prometheus.yml,请使用:
sudo nano /opt/containers/prometheus-grafana/prometheus/prometheus.yml

添加到 scrape_configs::


- job_name: 'mariadb-galera'
  static_configs:
    - targets: ['node1-ip:9104', 'node2-ip:9104', 'node3-ip:9104']


请回复您数据库节点的IP

然后,重新加载 Prometheus:

sudo systemctl 重新加载普罗米修斯

第 5 步:在 Grafana 中可视化

如果您使用 Grafana,您可以导入预构建的仪表板以进行 MySQL/MariaDB 监控。 MySQL/MariaDB 指标的一种流行仪表板 ID 是 7362.

导入:

  1. 打开 Grafana。
  2. 导航到仪表板 > 导入。
  3. 在“Grafana.com Dashboard”字段中输入7362,然后单击加载

您现在应该在 Grafana 仪表板中看到来自 MariaDB Galera Cluster 节点的详细指标!

结论

通过在每个 Galera Cluster 节点上设置 MariaDB Exporter,Prometheus 现在可以抓取和监控关键数据库指标。此设置可以更好地了解集群的运行状况和性能,从而更轻松地根据需要进行故障排除和优化。

如果您正在设置类似的内容或有任何建议,请随时在下面留下任何问题或评论。感谢您的阅读!

版本声明 本文转载于:https://dev.to/alighaemia/how-to-set-up-mariadbmysql-exporter-on-galera-cluster-nodes-for-prometheus-monitoring-4b3l?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何使用稳健的解决方案增强 PHP 中的 HTML 抓取
    如何使用稳健的解决方案增强 PHP 中的 HTML 抓取
    PHP 中强大的 HTML 抓取解决方案由于其挑剔和脆弱的性质,在 PHP 中使用正则表达式进行 HTML 抓取可能具有挑战性。要获得更强大、更可靠的方法,请考虑使用专门构建的 PHP 包。强烈推荐的一个选项是 PHP Simple HTML DOM Parser。该库擅长处理 HTML(包括无效标...
    编程 发布于2024-11-08
  • 如何检测 Go 标准输入 (Stdin) 中的数据可用性?
    如何检测 Go 标准输入 (Stdin) 中的数据可用性?
    使用 Go 检测标准输入 (Stdin) 中的数据可用性在 Go 中,可以使用以下技术检查标准输入流 (os.Stdin) 中的数据:验证其文件大小。它的工作原理如下:os.Stdin 可以像任何常规文件一样对待,允许我们检查其属性。为此,我们使用 os.Stdin.Stat() 检索 FileIn...
    编程 发布于2024-11-08
  • Wasp:Web 开发中 Django 的 JavaScript 答案
    Wasp:Web 开发中 Django 的 JavaScript 答案
    Wasp v Django: Building a full stack application just got a lot easier Hey, I’m Sam, a backend engineer with a lot of experience with Django....
    编程 发布于2024-11-08
  • 如何在没有键盘中断的情况下通过按键中断 While 循环?
    如何在没有键盘中断的情况下通过按键中断 While 循环?
    通过按键中断 While 循环在使用 while 循环读取串行数据并将其写入 CSV 文件的场景中,您可能希望为用户提供终止循环以停止数据收集的选项。本文探讨了在不显式使用键盘中断的情况下实现此类功能的技术。一种简单的方法是利用 try- except 块来处理 KeyboardInterrupt ...
    编程 发布于2024-11-08
  • 周 oot 训练营学习
    周 oot 训练营学习
    我决定迈出大胆的一步,参加由 LuxDevHQ 组织的我的第一个数据职业训练营。这是一个为期 5 周的训练营,旨在培养实践数据技能。该训练营旨在让人们接触至少 4 个专业领域的各种数据技能。 第一周以信息会议开始,我进行了项目定向,并​​向我介绍了该项目并了解了整个项目的期望。 在这第一周,我学到了...
    编程 发布于2024-11-08
  • 如何使用 Homebrew 和 jenv 在 Mac OS X 上管理多个 Java 版本?
    如何使用 Homebrew 和 jenv 在 Mac OS X 上管理多个 Java 版本?
    在 Mac OS X 上管理多个 Java 版本由于 Java 管理其安装的方式,在 Mac OS X 上安装多个 Java 版本可能是一项挑战。不过,有一个解决方案可以让您轻松安装和管理不同的 Java 版本:Homebrew。使用 Homebrew 和 jenvHomebrew 是一个包管理器,...
    编程 发布于2024-11-08
  • 如何创建 React 应用程序?安装与环境设置
    如何创建 React 应用程序?安装与环境设置
    在开始使用 React 构建应用程序之前,拥有正确的开发环境非常重要。以下是帮助您入门的分步指南: 步骤 1. 安装 Node.js 和 npm 设置 React 环境的第一步是安装 Node.js,因为它提供了在浏览器外部执行代码所需的 JavaScript 运行时。当您安装 Node.js 时,...
    编程 发布于2024-11-08
  • python 并发.futures
    python 并发.futures
    未来 Future 是一个容器,可以保存计算结果或计算期间发生的错误。创建 future 时,它​​以 PENDING 状态开始。该库不打算手动创建此对象,除非出于测试目的。 import concurrent.futures as futures f = futures.Futu...
    编程 发布于2024-11-08
  • 使用纯 Javascript 只需几行即可实现飞向购物车的动画。
    使用纯 Javascript 只需几行即可实现飞向购物车的动画。
    最近,我偶然发现了一个旧教程,展示了使用 jQuery 实现飞行到购物车的动画。我想通过使用纯 JavaScript 实现相同的效果来挑战自己。 我创建了一个包含产品和购物车图标的简单布局。样式并不重要,所以我们不会在这里讨论它。 诀窍是克隆产品图像,将其添加到产品元素之前。然后计算克隆图像和购物车...
    编程 发布于2024-11-08
  • Bokeh 是一个有趣的 Python 数据可视化数据工具
    Bokeh 是一个有趣的 Python 数据可视化数据工具
    数据可视化在解释大量信息方面发挥着关键作用。 Bokeh 等工具已成为构建交互式仪表板和报告的流行解决方案。每个工具都具有独特的优势,具体取决于您项目的复杂性和您首选的编程语言。在本文中,我们将深入研究每个工具,然后重点关注 Bokeh,包括实践示例和云中的部署。 以便... 什么是散景? Boke...
    编程 发布于2024-11-08
  • django-components v 模板现在与 Vue 或 React 相当
    django-components v 模板现在与 Vue 或 React 相当
    嘿,我是 Juro,我是 django-components 的维护者之一。在 v0.90-0.94 版本中,我们添加了一些功能,使模板中的组件使用更加灵活,类似于 JSX / Vue。 (此信息已经有点过时了(一个月前发布;最新的是 v0.101),因为我正忙着添加对 JS / CSS 变量、Ty...
    编程 发布于2024-11-08
  • 在 GitHub-echo 中实现 TOML 配置支持
    在 GitHub-echo 中实现 TOML 配置支持
    介绍 最近,我有机会通过添加对 TOML 配置文件的支持来增强 github-echo 命令行工具。此功能允许用户在 .github-echo-config.toml 文件中设置持久默认选项,从而减少每次使用该工具时手动输入重复配置的需要。在这篇文章中,我将向您介绍我在该功能上的经...
    编程 发布于2024-11-08
  • 如何使用 SimpleXML 和 DOMDocument 删除 XPath 节点?
    如何使用 SimpleXML 和 DOMDocument 删除 XPath 节点?
    SimpleXML:删除 XPath 节点在本文中,我们将探讨如何使用以下方法有效地从 XML 文档中删除父节点: SimpleXML 和 XPath。了解 SimpleXML限制提供的代码尝试使用 SimpleXML 在通过 XPath 找到父节点后删除它。然而,SimpleXML 的 unset...
    编程 发布于2024-11-08
  • 创建一个 React Hook 以任意角度旋转图像
    创建一个 React Hook 以任意角度旋转图像
    在Web开发中,您可能需要旋转图像,这在CSS中很容易做到。像这样的简单代码变换:rotate(90deg);。但是如果我们想用 JS 来做呢? TLDR 将图像绘制到浏览器环境中的画布上并旋转它。但在此之前,我们需要做一些数学运算来保持原始图像的长宽比。 核 假设我...
    编程 发布于2024-11-08
  • Lithe 中间件:它是如何工作的以及如何创建自己的中间件
    Lithe 中间件:它是如何工作的以及如何创建自己的中间件
    中间件提供了一种方便的机制来检查和过滤进入应用程序的 HTTP 请求。 例如,Lithe 包含检查用户是否经过身份验证的中间件。如果没有,中间件会将用户重定向到登录屏幕。如果用户通过身份验证,中间件将允许请求继续。 中间件如何在 Lithe 中工作 在 Lithe 中,中间件是能够访...
    编程 发布于2024-11-08

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3