海外云服务器Linux下Prometheus监控MySQL实战
在海外云服务器的Linux系统中,数据库是业务运行的核心支撑。通过Prometheus监控MySQL数据库,能实时捕捉QPS(每秒查询数)、连接数、慢查询等关键指标,为故障预警和性能优化提供数据依据。以下从环境搭建到可视化展示,详细拆解实战步骤。

环境准备:基础组件先行
启动监控前需确保海外云服务器已部署以下组件:Linux操作系统(推荐CentOS 7/8或Ubuntu 20.04)、MySQL数据库(5.7及以上版本)、Prometheus(2.30+)以及MySQL指标收集器mysqld_exporter(0.14+)。其中,mysqld_exporter负责从MySQL提取运行数据,是连接MySQL与Prometheus的关键桥梁。
安装配置mysqld_exporter:数据采集的起点
首先下载并部署mysqld_exporter。在海外云服务器的终端执行命令:`wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz`,下载完成后解压到`/opt/mysqld_exporter`目录。为提升安全性,建议创建专用用户运行服务:`useradd -r -s /sbin/nologin mysqld_exporter`,并调整目录权限:`chown -R mysqld_exporter:mysqld_exporter /opt/mysqld_exporter`。
接着配置MySQL访问权限。登录MySQL控制台,执行`CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'your_password';`创建专用用户,再授予必要权限:`GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';`。此用户仅用于指标采集,权限需严格限制。
最后配置并启动服务。编辑`/etc/systemd/system/mysqld_exporter.service`文件,指定启动参数:
[Unit]
Description=MySQL Exporter for Prometheus
[Service]
User=mysqld_exporter
ExecStart=/opt/mysqld_exporter/mysqld_exporter --config.my-cnf=/etc/my.cnf --web.listen-address=:9104
执行`systemctl daemon-reload`和`systemctl enable --now mysqld_exporter`完成服务启动,验证访问`http://服务器IP:9104/metrics`可看到MySQL指标数据。
Prometheus配置:让监控“看见”数据
修改Prometheus主配置文件(通常位于`/etc/prometheus/prometheus.yml`),在`scrape_configs`部分添加MySQL监控任务:
scrape_configs:
- job_name: "mysql"
static_configs:
- targets: ["localhost:9104"]
保存后执行`systemctl reload prometheus`重载配置,登录Prometheus Web界面(默认端口9090),在`Status > Targets`中检查MySQL目标状态是否为`UP`,若显示正常则说明数据采集成功。
Grafana可视化:让数据“说话”
通过包管理工具安装Grafana(如`apt install grafana`或`yum install grafana`),启动服务并设置开机自启:`systemctl enable --now grafana-server`。访问`http://服务器IP:3000`登录Grafana(初始账号密码均为admin),首次登录需修改密码。
在`Configuration > Data Sources`中添加Prometheus数据源,填写Prometheus地址(如`http://localhost:9090`)并测试连接。随后导入MySQL监控模板,推荐使用Grafana社区的11074号模板(在`Create > Import`中输入模板ID自动加载)。该模板包含连接数、查询延迟、InnoDB状态等核心图表,导入后稍等片刻即可看到实时监控视图。
避坑指南:细节决定成败
实际操作中需注意三点:一是权限问题,若mysqld_exporter无法连接MySQL,检查`my.cnf`配置文件是否正确指向MySQL套接字或IP端口;二是网络连通性,确保海外云服务器防火墙开放了9104(mysqld_exporter)、9090(Prometheus)、3000(Grafana)端口;三是配置文件语法,YAML格式对缩进敏感,建议使用`yamllint`工具校验配置。
通过以上步骤,你已在海外云服务器的Linux环境中搭建起完整的MySQL监控体系。从指标采集到可视化展示,每个环节的细节把控都将直接影响监控系统的稳定性。定期检查组件运行状态,及时更新Exporter和可视化模板,能让你的数据库监控始终保持高效可用。