跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Prometheus 进阶实战:MySQL、Nginx 与 Memcached 监控部署

Prometheus 进阶实战涵盖 MySQL、Nginx 及 Memcached 的监控部署方案。通过配置对应的 Exporter 组件,结合 systemd 服务管理实现自动化采集。重点解析了 mysqld_exporter 权限设置、nginx-vts-exporter 模块编译安装以及 memcached_exporter 的基础对接流程。配合 Prometheus 抓取配置与 Grafana 模板导入,完成可视化监控面板搭建。

不知所云发布于 2025/1/20更新于 2026/7/2735 浏览
Prometheus 进阶实战:MySQL、Nginx 与 Memcached 监控部署

在前文中我们介绍了 Prometheus 的基础知识,并演示了如何监控一台 Linux 服务器。这次我们来聊聊如何将 Prometheus 应用到几个常见的业务组件上,实现更细粒度的监控。

监控 MySQL 服务器

Prometheus 通过 Exporter 收集远程数据,对于 MySQL,我们需要用到 mysqld_exporter。

1. 部署架构与安装

首先下载并解压 exporter 二进制文件:

$ wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gz
$ tar xzvf mysqld_exporter-0.10.0.linux-amd64.tar.gz
$ mv mysqld_exporter-0.10.0.linux-amd64 /usr/local/prometheus/mysqld_exporter

2. 创建监控用户

Exporter 需要连接数据库获取指标,因此要创建一个专用账号并授权:

mysql> GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'mysqld_exporter'@'localhost' IDENTIFIED BY '000000';
mysql> GRANT SELECT ON performance_schema.* TO 'mysqld_exporter'@'localhost';
mysql> FLUSH PRIVILEGES;

3. 配置文件与服务启动

默认情况下,exporter 会读取 ~/.my.cnf。为了方便管理,我们将其放在安装目录下:

$ vim /usr/local/prometheus/mysqld_exporter/.my.cnf
[client]
user=mysqld_exporter
password=000000

接着配置 Systemd 服务,确保进程随系统启动并自动重启:

[Unit]
Description=mysql_exporter
After=network.target

[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/prometheus/mysqld_exporter/mysqld_exporter -config.my-cnf="/usr/local/prometheus/mysqld_exporter/.my.cnf"
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动并验证状态:

$ systemctl start mysql_exporter
$ systemctl status mysql_exporter

4. Prometheus 配置与 Grafana 展示

修改 prometheus.yml,添加抓取目标。Exporter 默认监听 9104 端口:

- job_name: mysql
  static_configs:
    - targets: ['192.168.2.210:9104']
  labels:
    instance: db1

重启 Prometheus 后,即可在 Grafana 中导入模板。官方虽未提供现成图表,但 Percona 开源的模板非常实用。克隆仓库后,可以批量导入到 /var/lib/grafana/dashboards,并在 grafana.ini 中启用 JSON 目录扫描功能。

重启 Grafana 服务后,选择 MySQL Overview 模板,就能看到详细的数据库运行状态了。

监控 Nginx 服务器

由于官方没有直接可用的 Nginx Exporter,且 nginx-vts-exporter 依赖 Nginx 的 nginx-module-vts 模块,所以需要先重新编译 Nginx。

1. 编译安装 Nginx

下载源码和模块:

$ cd /root
$ wget 'http://nginx.org/download/nginx-1.9.2.tar.gz'
$ git clone git://github.com/vozlt/nginx-module-vts.git

安装依赖并编译:

$ apt-get install libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl make build-essential
$ tar xzvf nginx-1.9.2.tar.gz
$ cd nginx-1.9.2
$ ./configure --add-module=/root/nginx-module-vts
$ make && make install

2. 修改 Nginx 配置

在 http 块中添加状态区域,并在 server 块中暴露状态接口:

http {
    vhost_traffic_status_zone;

    server {
        location /status {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }
    }
}

访问 http://IP/status 确认模块生效,同时支持 JSON 格式输出。

3. 部署 Exporter

下载并解压 exporter:

$ wget -O nginx-vts-exporter-0.5.zip https://github.com/hnlq715/nginx-vts-exporter/archive/v0.5.zip
$ unzip nginx-vts-exporter-0.5.zip
$ mv nginx-vts-exporter-0.5 /usr/local/prometheus/nginx-vts-exporter
$ chmod +x /usr/local/prometheus/nginx-vts-exporter/bin/nginx-vts-exporter

配置 Systemd 服务,注意 scrape_uri 指向刚才配置的 JSON 状态接口:

[Unit]
Description=nginx_exporter
After=network.target

[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/prometheus/nginx-vts-exporter/bin/nginx-vts-exporter -nginx.scrape_uri=http://localhost/status/format/json
Restart=on-failure

[Install]
WantedBy=multi-user.target

4. 接入 Prometheus

修改 prometheus.yml,添加 nginx 任务(默认端口 9913):

- job_name: nginx
  static_configs:
    - targets: ['192.168.2.210:9913']
  labels:
    instance: web1

重启 Prometheus 后,导入 Nginx Stats 模板即可查看流量和性能数据。如果 Grafana 无数据,建议先检查 Prometheus 界面是否能查询到指标,排查网络或权限问题。

监控 Memcached 服务器

Memcached 的监控相对简单,直接使用官方提供的 memcached_exporter 即可。

1. 安装与配置

$ wget https://github.com/prometheus/memcached_exporter/releases/download/v0.3.0/memcached_exporter-0.3.0.linux-amd64.tar.gz
$ tar xzvf memcached_exporter-0.3.0.linux-amd64.tar.gz
$ mv memcached_exporter-0.3.0.linux-amd64 /usr/local/prometheus/memcached_exporter

编写 Systemd 服务文件,指定本地地址:

[Unit]
Description=memcached_exporter
After=network.target

[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/prometheus/memcached_exporter/memcached_exporter --memcached.address=127.0.0.1:11211
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动服务并验证状态无误后,在 prometheus.yml 中添加目标(默认端口 9150):

- job_name: memcached
  static_configs:
    - targets: ['192.168.2.210:9150']
  labels:
    instance: db2

重启 Prometheus,导入官方提供的 Memcached 模板,即可完成可视化监控。

以上涵盖了几个最常用的中间件监控方案。如果需要更完善的解决方案,可以参考 Percona Monitoring and Management (PMM) 工具。关于第三方 Exporter 的更多资源,可查阅 Prometheus 官方文档。

目录

  1. 监控 MySQL 服务器
  2. 1. 部署架构与安装
  3. 2. 创建监控用户
  4. 3. 配置文件与服务启动
  5. 4. Prometheus 配置与 Grafana 展示
  6. 监控 Nginx 服务器
  7. 1. 编译安装 Nginx
  8. 2. 修改 Nginx 配置
  9. 3. 部署 Exporter
  10. 4. 接入 Prometheus
  11. 监控 Memcached 服务器
  12. 1. 安装与配置
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 基于 Python 与 AI 的智能害虫识别系统实战
  • Markdown 笔记图片失效解决方案:Gitee+PicGo 图床搭建指南
  • 小白转行 Python 数据分析的职业规划与学习路径
  • 英伟达 Feynman 芯片架构与 NemoClaw 开源智能体平台技术解析
  • GitCode 克隆代码认证失败,需改用个人访问令牌或 SSH
  • 从人类到 AI:意群阅读原理与英语学习技巧
  • Android Studio 环境搭建:SDK、JDK 与 Gradle 配置实录
  • 单片机开发中C语言为何仍是主流?对比C++生态与效率瓶颈
  • Z-Image Turbo 本地部署与使用指南
  • MiniMax 海螺 AI:图片与文本生成高质量视频实战
  • 华为昇腾 CANN:全场景 AI 计算基础软件平台解析
  • Web Streams 的隐性开销与 JavaScript 流处理新方案
  • 用现代C++封装SocketCAN:更安全的嵌入式CAN通信
  • 宇树 G1 机器人建图教程:FAST-LIO 环境配置与 RViz 启动
  • DeepSeek-R1-Distill-Qwen-1.5B 本地部署实战:vLLM+Open WebUI 低显存方案
  • 深入理解二叉树、B 树、B+ 树与 MySQL 索引原理
  • MySQL 核心机制与性能优化实战总结
  • 本地部署 LLaMA-Factory 全指南
  • Java 编译错误:源发行版 17 需要目标发行版 17
  • 夸克网盘精选资源汇总:电子书、软件与学习素材

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online