【K8S黑盒监控实践:Probe配置、Prometheus验证与Grafana可视化】

提示:本文原创作品,良心制作,干货为主,简洁清晰,一看就会

文章目录

    • 前言
    • [1.1 实验环境](#1.1 实验环境)
    • [1.2 流程概述](#1.2 流程概述)
    • [1.3 查看基本情况](#1.3 查看基本情况)
    • [1.4 创建probe](#1.4 创建probe)
    • [1.5 查看prometheus](#1.5 查看prometheus)
    • [1.6 grafana添加dashboard](#1.6 grafana添加dashboard)

前言

在运维工作中,实时监测Web服务与接口的可用性、响应性能,是保障业务稳定运行的关键。Prometheus结合Blackbox Exporter是业界常用的外网探测方案,能够高效采集服务状态码、访问耗时等核心指标。本文基于现有监控环境,完整演示HTTP探测监控的搭建流程。整套实操步骤完整清晰,可直观实现服务在线状态与访问时延的常态化监控,也为同类服务监控部署提供实践参考

1.1 实验环境

我的实验环境:

主机名 ip 作用
K8s-master1 192.168.13.136 k8s控制节点
K8s-master2 192.168.13.137 k8s控制节点
K8s-master3 192.168.13.138 k8s控制节点
k8s-node1 192.168.13.139 k8s工作节点
k8s-node2 192.168.13.140 k8s工作节点
NFS 192.168.13.141 NFS服务端,提供存储

当前,我的高可用 Kubernetes 集群已部署完毕,Prometheus Operator 也已完成安装配置。接下来,我将开始实操,对集群内运行的黑盒程序进行监控配置

1.2 流程概述

黑盒监控是一种 从外部视角主动探测系统可用性 的监控方式。它不关心服务内部状态(如CPU、内存),只模拟真实用户访问,通过发送HTTP请求、Ping、TCP连接等检查目标"能否正常响应"。典型工具如 Blackbox Exporter ,可探测网站状态码、响应时间、SSL证书有效期等,黑盒监控能快速发现服务不可达、接口超时、证书过期等面向用户的实际问题,是保障服务SLA的重要手段

黑盒监控的后续步骤概述如下:

  1. 检查现有资源状态 :确认 monitoring 命名空间下的 Blackbox Exporter Pod 正常运行,Service 已正确暴露 9115(指标)和 19115(探测)端口,且 ServiceMonitor 已关联并确保 Prometheus 能抓取 Exporter 自身指标
  2. 创建 Probe 资源:定义探测目标(如外部网站)、执行频率、探测模块(如 HTTP 2xx)及 Blackbox Exporter 的访问地址,Prometheus Operator 会自动生成相应配置
  3. 验证与可视化:Prometheus 开始生成 监控指标,通过 Grafana 导入仪表盘

1.3 查看基本情况

yaml 复制代码
## 运行 Blackbox Exporter 容器进程
root@k8s-master1:~# kubectl get pod -n monitoring | grep black
blackbox-exporter-7d7666779f-dzcwz     3/3     Running   33 (5h19m ago)   14d

## 为 Blackbox Exporter 提供固定的集群内访问入口
root@k8s-master1:~# kubectl get svc -n monitoring | grep black
blackbox-exporter       ClusterIP   10.108.97.138    <none>        9115/TCP,19115/TCP              14d

## 告诉 Prometheus 去抓取该 Service 的 /metrics 端点,监控 Blackbox Exporter 自身的运行状态
root@k8s-master1:~# kubectl get servicemonitor -n monitoring | grep black
blackbox-exporter          14d

1.4 创建probe

probe:定义具体的黑盒探测任务(目标网站、探测间隔、模块),让 prometheus 通过 blackbox exporter 对外部目标进行主动探测

yaml 复制代码
root@k8s-master1:~/kube-prometheus/manifests# vim blackbox-probe.yaml
apiVersion: monitoring.coreos.com/v1
kind: Probe
metadata:
  name: blackbox
  namespace: monitoring
spec:
  interval: 30s
  jobName: blackbox
  module: http_2xx
  prober:
    # 指定Blackbox Exporter的k8s svc地址和端口
    url: blackbox-exporter.monitoring.svc:19115
    scheme: http
    path: /probe
  targets:
    staticConfig:
      # 填写要检测的url,每个字符串就是一个探测目标
      static:
      - https://www.dgwegfgwe.com
      - https://www.jd.com
root@k8s-master1:~/kube-prometheus/manifests# kubectl apply -f blackbox-probe.yaml

1.5 查看prometheus

登录Prometheus页面,我们可以看到配置的url已经被监控

尝试检测probe_http_status_codeHTTP 探测返回的响应状态码

其中https://www.dgwegfgwe.com 响应码为0;https://www.jd.com响应码为200

尝试检测probe_http_duration_secondsHTTP 探测总耗时

1.6 grafana添加dashboard

grafana dashboard官网:https://grafana.com/grafana/dashboards/

登录grafana,添加blackbox适合的dashboard

我选择的dashboard:https://grafana.com/grafana/dashboards/13659-blackbox-exporter-http-prober/

至此,Prometheus Operator 监控 K8S blackbox完毕!


注:

文中若有疏漏,欢迎大家指正赐教。

本文为100%原创,转载请务必标注原创作者,尊重劳动成果。

求赞、求关注、求评论!你的支持是我更新的最大动力,评论区等你~

相关推荐
赵文宇(温玉)1 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
张洛闻Eren1 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
lbb 小魔仙1 天前
OpenClaw + cpolar 实战:远程 NAS、分享小游戏、RDP,再配置公网 AI 入口
数据库·人工智能·redis·oracle·prometheus
Thneonl2 天前
你的 Pod 为什么 Pending:调度器两阶段
后端·kubernetes
不吃香菜kkk、2 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
zhoupenghui1682 天前
Golang pprof 工具详解:监控、压测与调优实战指南
prometheus·pprof
ysu_03143 天前
【2026】K8s GPU调度空占怎么解?Kueue与Volcano Gang配置
云原生·kubernetes·gpu算力·volcano·ai基础设施·kueue·gang scheduling
哈__3 天前
KES-Operator重塑Kubernetes环境下的KES数据库集群管理
数据库·kubernetes·operator·kes
九皇叔叔3 天前
K8S 资源菜单
docker·容器·kubernetes·k8s
安易算力3 天前
PUE优化工程实践:从1.5到1.2的制冷架构与气流组织改造路径
网络·python·容器·架构·kubernetes