如何在Linux上配置高可用的数据库集群监控

来源:AI大模型作者:台湾程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《如何在Linux上配置高可用的数据库集群监控》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在Linux上配置高可用的数据库集群监控》有用,将其分享出去将是对创作者最好的鼓励。

在Linux环境下搭建高可用的数据库集群监控系统,能够有效实时掌握数据库运行状态,提前发现性能瓶颈和故障隐患,保障业务数据服务的稳定性。本文以MySQL数据库集群为例,采用Prometheus+Grafana+Alertmanager的开源组合,详细讲解完整的配置流程。

如何在Linux上配置高可用的数据库集群监控

环境准备

首先需要准备至少3台Linux服务器,推荐CentOS 7或以上版本,配置如下:

  • 服务器1:192.168.0.10,部署Prometheus主节点、Grafana、Alertmanager主节点
  • 服务器2:192.168.0.11,部署Prometheus从节点、Alertmanager从节点、MySQL Exporter
  • 服务器3:192.168.0.12,部署MySQL数据库主节点、MySQL Exporter
  • 额外准备一台服务器部署MySQL从节点,IP为192.168.0.13,同时部署MySQL Exporter

所有服务器关闭防火墙或者开放对应端口,确保节点之间网络互通,同时安装好基础的wget、vim等工具。

部署MySQL Exporter采集数据库指标

MySQL Exporter用于采集MySQL数据库的运行指标,需要部署在每一台MySQL节点服务器上。

安装MySQL Exporter

在192.168.0.12和192.168.0.13服务器上执行以下操作:

# 下载MySQL Exporter安装包
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.0/mysqld_exporter-0.15.0.linux-amd64.tar.gz
# 解压安装包
tar -zxvf mysqld_exporter-0.15.0.linux-amd64.tar.gz -C /usr/local/
# 重命名目录
mv /usr/local/mysqld_exporter-0.15.0.linux-amd64 /usr/local/mysqld_exporter

配置MySQL Exporter

首先需要在MySQL中创建用于采集指标的用户,登录MySQL执行以下SQL:

# 创建监控用户
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'Exporter@123';
# 授予查询权限
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
# 刷新权限
FLUSH PRIVILEGES;

然后在MySQL Exporter目录下创建配置文件,内容如下:

# 创建配置文件
vim /usr/local/mysqld_exporter/.my.cnf
# 配置文件内容
[client]
user=exporter
password=Exporter@123
host=localhost
port=3306

启动MySQL Exporter

创建systemd服务文件,方便管理服务:

vim /etc/systemd/system/mysqld_exporter.service

服务文件内容如下:

[Unit]
Description=MySQL Exporter
After=network.target

[Service]
User=root
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf --web.listen-address=:9104
Restart=always

[Install]
WantedBy=multi-user.target

启动服务并设置开机自启:

# 重载服务配置
systemctl daemon-reload
# 启动服务
systemctl start mysqld_exporter
# 设置开机自启
systemctl enable mysqld_exporter
# 检查服务状态
systemctl status mysqld_exporter

服务启动后,可以通过curl http://localhost:9104/metrics命令验证指标是否正常输出。

部署高可用Prometheus集群

Prometheus作为监控核心,需要部署主从两个节点实现高可用,避免单点故障。

部署Prometheus主节点

在192.168.0.10服务器上执行以下操作:

# 下载Prometheus安装包
wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz
# 解压安装包
tar -zxvf prometheus-2.45.0.linux-amd64.tar.gz -C /usr/local/
# 重命名目录
mv /usr/local/prometheus-2.45.0.linux-amd64 /usr/local/prometheus

修改Prometheus配置文件/usr/local/prometheus/prometheus.yml,添加MySQL Exporter的采集任务:

global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: "mysql"
    static_configs:
      - targets: ["192.168.0.12:9104", "192.168.0.13:9104"]
  - job_name: "prometheus"
    static_configs:
      - targets: ["192.168.0.10:9090", "192.168.0.11:9090"]

创建Prometheus的systemd服务文件:

[Unit]
Description=Prometheus
After=network.target

[Service]
User=root
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/usr/local/prometheus/data --web.listen-address=:9090
Restart=always

[Install]
WantedBy=multi-user.target

启动主节点Prometheus服务:

systemctl daemon-reload
systemctl start prometheus
systemctl enable prometheus
systemctl status prometheus

部署Prometheus从节点

在192.168.0.11服务器上执行相同的安装步骤,配置文件和主节点保持一致,启动后从节点会自动同步主节点的采集配置,同时可以配置主从之间的数据同步,保证监控数据的一致性。

部署Grafana实现可视化展示

Grafana用于展示Prometheus采集的数据库指标,支持丰富的图表类型,方便直观查看集群状态。

在192.168.0.10服务器上安装Grafana:

# 添加Grafana yum源
cat > /etc/yum.repos.d/grafana.repo << EOF
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF

# 安装Grafana
yum install grafana -y
# 启动Grafana服务
systemctl start grafana-server
systemctl enable grafana-server
systemctl status grafana-server

服务启动后访问http://192.168.0.10:3000,默认账号密码为admin/admin,首次登录需要修改密码。登录后添加Prometheus数据源,填写Prometheus主节点的地址http://192.168.0.10:9090,保存后在官方模板库导入MySQL监控模板,即可看到数据库集群的各项指标图表。

部署Alertmanager实现告警通知

Alertmanager用于处理Prometheus触发的告警,支持邮件、钉钉等多种通知方式,同样需要部署主从两个节点实现高可用。

在192.168.0.10和192.168.0.11服务器上安装Alertmanager:

# 下载Alertmanager安装包
wget https://github.com/prometheus/alertmanager/releases/download/v0.25.0/alertmanager-0.25.0.linux-amd64.tar.gz
# 解压安装包
tar -zxvf alertmanager-0.25.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/alertmanager-0.25.0.linux-amd64 /usr/local/alertmanager

修改Alertmanager配置文件/usr/local/alertmanager/alertmanager.yml,配置邮件告警示例:

global:
  smtp_smarthost: 'smtp.ipipp.com:465'
  smtp_from: 'alert@ipipp.com'
  smtp_auth_username: 'alert@ipipp.com'
  smtp_auth_password: '邮箱授权码'
  smtp_require_tls: false

route:
  group_by: ['alertname']
  group_wait: 10s
  group_interval: 10s
  repeat_interval: 1h
  receiver: 'email'

receivers:
  - name: 'email'
    email_configs:
      - to: 'admin@ipipp.com'
        subject: '数据库集群告警通知'
        body: '{{ range .Alerts }}{{ .Annotations.summary }}{{ end }}'

创建Alertmanager的systemd服务文件并启动服务,之后在Prometheus配置文件中添加Alertmanager的地址,配置告警规则,当数据库出现连接数过高、查询延迟过高等异常时,会自动触发告警通知运维人员。

高可用验证

完成所有组件部署后,可以手动停止Prometheus主节点或者Alertmanager主节点,验证从节点是否能够正常接管服务,同时模拟MySQL数据库故障,检查告警是否能够正常触发,确保整个监控系统的高可用特性生效。

Linux数据库集群监控高可用PrometheusMySQL修改时间:2026-06-24 18:21:37

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。