【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 小时前
【Prometheus Operator监控K8S Nginx】
nginx·kubernetes·prometheus
宇明一不急2 小时前
k8s headless svc
云原生·容器·kubernetes
人生匆匆3 小时前
部署cadvisor+prometheus+grafana
grafana·prometheus
成为你的宁宁3 小时前
【K8S使用Helm部署MySQL一主多从并集成Prometheus监控】
mysql·kubernetes·prometheus
openFuyao4 小时前
openFuyao使能灵衢超节点::让容器业务丝滑释放节点能力
容器·kubernetes·ai原生·openfuyao·多样化算力·超节点·集群软件
无聊的老谢4 小时前
Spring Cloud Alibaba 应用的容器化部署与 K8s 编排
云原生·容器·kubernetes
liux35284 小时前
Namespace 多租户隔离:K8s 资源管理的基石
docker·容器·kubernetes
没有退路那我就不要散步17 小时前
kube-proxy优化
docker·容器·kubernetes
丑过三八线20 小时前
Kubernetes 常用命令速查手册
云原生·容器·kubernetes