从零搭建企业级监控平台Prometheus Week 2一、MySQL 监控实战1. 安装 MySQL完成 MySQL 数据库基础部署保证服务正常运行为后续指标采集提供数据源。2. 安装并配置 MySQL Exporter作用连接 MySQL读取性能指标并转换成 Prometheus 可识别格式。配置在 exporter 目录创建.my.cnf写入数据库连接信息用户名、密码、地址。启动 mysqld_exporter指定配置文件暴露指标端口。验证访问http://localhost:9104/metrics能看到 MySQL 指标。3. 配置 Prometheus 抓取 MySQL 指标在 Prometheus 的targets中添加 MySQL Exporter 地址默认 :9104让 Prometheus 定时拉取指标。4. Grafana 可视化导入 MySQL 官方监控面板选择 Prometheus 数据源即可查看连接数、慢查询、内存、QPS 等监控图表。二、Redis 监控实战1. 部署 Redis部署 Redis 服务确保正常监听默认端口 6379。2. 部署 Redis Exporter启动命令示例./redis_exporter--redis.addrredis://localhost:6379默认端口 9121访问http://localhost:9121/metrics可获取 Redis 指标。3. 配置 Prometheus 抓取 Redis 指标在 Prometheus 配置中添加 Redis Exporter 目标使用jobredis做区分。4. Grafana 常用监控面板Redis 连接数redis_connected_clients{jobredis}内存使用MBredis_memory_used_bytes{jobredis} / 1024 / 1024缓存命中率rate(redis_keyspace_hits_total{jobredis}[5m]) / (rate(redis_keyspace_hits_total{jobredis}[5m]) rate(redis_keyspace_misses_total{jobredis}[5m])) * 100每秒命令处理数rate(redis_commands_processed_total{jobredis}[5m]三、Blackbox 协议监控1. 核心架构blackbox-targets.json在 Prometheus 中定义探测目标IP、端口、URL。blackbox.yml在 Blackbox Exporter 中定义探测方式ICMP、TCP、HTTP。2. 探测层级ICMP网络层Ping 连通性 ↓ TCP传输层端口连通性 ↓ HTTP应用层接口/页面可用性从上到下逐层检查方便快速定位故障层级。四、Docker Compose 服务编排使用docker-compose.yml一键启动、停止、重启整个监控栈PrometheusGrafana各类 ExporterAlertmanager实现环境统一、部署简单、便于迁移和维护。五、Recording Rule 性能优化1. 问题大盘图表多、查询复杂时Prometheus 实时计算压力大Grafana 加载慢。2. 解决方案Recording Rule提前把高频、复杂查询计算好生成新指标Grafana 直接读预计算结果。配置示例groups:-name:cpu_usagerules:-record:job:cpu_usage:avg_rate_5mexpr:avg(rate(windows_cpu_time_total{mode!idle}[5m])) by (job)之后面板直接用job:cpu_usage:avg_rate_5m加载速度大幅提升。六、PromQL 高级函数1. irate()取时间窗口内最后两个点计算瞬时速率。适合需要灵敏、实时的指标如瞬时流量、QPS。2. quantile_over_time()计算分位数如 P99比平均值更能反映真实性能。示例quantile_over_time(0.99, probe_duration_seconds[5m])适合延迟、耗时等 Gauge 类型指标。本周总结本周完成企业级监控平台核心功能落地MySQL、Redis 服务监控与可视化Blackbox 实现网络 / 端口 / HTTP 可用性探测Docker Compose 统一编排整个监控栈Recording Rule 优化 Prometheus 查询性能掌握常用高级 PromQL 函数与面板写法下一步可继续完善告警规则、Alertmanager 告警发送、告警分级与自愈脚本完成从 “看监控” 到 “主动告警 运维自动化”。