【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%原创,转载请务必标注原创作者,尊重劳动成果。

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

相关推荐
暖核6 小时前
从零理解 Kubernetes Pod:命名空间、生命周期、Pause 容器详解
云原生·容器·kubernetes
学编程的小程7 小时前
服务器日志太分散不好查?我用Promtail+Loki+Grafana把采集、查询和分析串起来了
服务器·python·grafana
Orchestrator_me9 小时前
k8s网络与应用
网络·python·kubernetes
.冰块.9 小时前
VMware+Ubuntu24.04 kubeadm 部署 K8s 1.30.2 三节点集群
运维·云原生·容器·kubernetes·k8s·容器编排
川石课堂软件测试9 小时前
JMeter异步接口测试实战
数据库·python·jmeter·mysql·kubernetes·测试用例·prometheus
fengkai454510 小时前
2、Kubernetes 介绍+安装+卸载
运维·容器·kubernetes
小马同学-10 小时前
K8s 节点管理:查看、维护与集群删除操作
容器·kubernetes
ggaofeng1 天前
k8s中的dns
云原生·容器·kubernetes
我不会起名字3222 天前
K8s Ingress 返回 502 但后端日志正常:4 类上游断连与排查链
kubernetes·k8s·ingress·502·keepalive
我不会起名字3222 天前
Pod 一直 Pending:调度器 5 类失败原因与 kubectl describe 的正确读法
云原生·kubernetes·调度·排查