【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 天前
基于 Arthas 的多集群在线诊断系统设计与实现
kubernetes
Patrick_Wilson8 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
SRETalk8 天前
Zabbix、Prometheus、Grafana、Nightingale,四个监控如何选型?
zabbix·grafana·prometheus·nightingale
探索云原生8 天前
K8s 1.36 这个 GA 特性,把 initContainer 拉模型的 hack 干掉了
ai·云原生·kubernetes
Java之美9 天前
一次k8s升级引发的DevicePlugin注册失败
云原生·kubernetes
虚无境15 天前
如何编写一个SpringBoot项目告警推送的Starter
java·prometheus·webhook
java_cj16 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
qq_4523962316 天前
第十三篇:《K8s 安全基础:RBAC、ServiceAccount、Pod Security》
java·安全·kubernetes
睡不醒男孩03082316 天前
云原生运维实战:高并发架构下的云原生可观测性、韧性降级与自动化干预体系
数据库·kubernetes·高并发·prometheus·devops·sre·缓存调优