④ 数据库可视化监控体系

对应第 09 ~ 10 讲 · node_exporter / mysqld_exporter · Prometheus + Grafana

采集层:部署在被监控机器上的两个 exporter(09 ~ 10 讲) 存储层:Prometheus(09 讲) 展示层:Grafana(10 讲) 为什么必须监控?(09 讲) 部署速查(09 ~ 10 讲) :9100 :9104 读取时序数据渲染报表 node_exporter · 采集机器指标 CPU、内存、磁盘、网络 —— 相当于把 top / dstat 自动化 mysqld_exporter · 采集 MySQL 指标 SQL 性能、连接数、binlog 等(DATA_SOURCE_NAME 配连接) 监控目标:CPU · 内存 · 磁盘 IO · 网络 · 慢查询 · QPS · TPS —— 数据库不能裸奔 Prometheus 监控数据采集与存储系统 内置时序数据库 · 监控数据落磁盘存储 抓取配置 prometheus.yml job Host → node_exporter:9100 · job MySQL → mysqld_exporter:9104 --storage.tsdb.retention=30d 保留 30 天 · 端口 9090 反例:数据库裸奔 CPU 打满 / IO 到极限毫无感知 → 某天突然宕机措手不及 正解:上线前搭建可视化监控 公司里通常 DBA 团队负责 · 但开发也必须懂这套体系 Grafana 可视化报表系统 端口 3000 · 默认账号 admin/admin 配置流程 Add Data Source 指向 Prometheus → 导入 percona 仪表盘 JSON 机器 CPU / 磁盘 / 内存报表 + MySQL 监控仪表盘 9090 · Prometheus 3000 · Grafana 9100 · node_exporter 9104 · mysqld_exporter 数据保留 30d Grafana admin/admin 图例 采集组件 存储系统 展示系统 风险警示 速查项

三层监控架构一句话

  • • 采集层:node_exporter 采机器 + mysqld_exporter 采 MySQL
  • • 存储层:Prometheus 拉取并落到内置时序数据库
  • • 展示层:Grafana 导入仪表盘 JSON 渲染报表
  • • 这套组合同样适用于 Java 系统与各类中间件

两个 exporter 的分工

  • • node_exporter:CPU / 内存 / 磁盘 / 网络(机器维度)
  • • mysqld_exporter:SQL 性能 / 连接数 / binlog(库维度)
  • • mysqld_exporter 通过 DATA_SOURCE_NAME 配置连接串
  • • 启动时用 --collect.* 开关选择采集项

监控什么信号

  • • 机器:CPU 负载、内存使用率、磁盘 IO、网卡流量
  • • 数据库:慢查询数量、QPS、TPS、连接数
  • • 报警场景:CPU 打满、IO 极限、连接暴增
  • • 结合上一页的压测结果设定合理的警戒线