概述
本文档描述了使用 Prometheus Operator 的 Probe 资源监控外部服务的配置方法。该配置通过静态目标地址直接监控多个服务端点,无需创建额外的 Service 和 Endpoints 资源。
前提条件
- Kubernetes 集群
- Prometheus Operator v0.42 或更高版本
monitoring
命名空间已存在
配置示例
apiVersion: monitoring.coreos.com/v1
kind: Probe
metadata:name: ck-node-exporter-probenamespace: monitoring
spec:jobName: 'ck_node_exporter'interval: 10stargets:staticConfig:static:- 192.168.1.100:9100 # 示例节点1- 192.168.1.101:9100 # 示例节点2- 192.168.1.102:9100 # 示例节点3prober:url: 192.168.1.100:9100path: /metricsscheme: http
---
apiVersion: monitoring.coreos.com/v1
kind: Probe
metadata:name: ck-clickhouse-probenamespace: monitoring
spec:jobName: 'ck_clickhouse'interval: 10stargets:staticConfig:static:- 192.168.2.100:9363 # 示例数据库节点1- 192.168.2.101:9363 # 示例数据库节点2- 192.168.2.102:9363 # 示例数据库节点3prober:url: 192.168.2.100:9363path: /metricsscheme: http
---
apiVersion: monitoring.coreos.com/v1
kind: Probe
metadata:name: ck-zookeeper-probenamespace: monitoring
spec:jobName: 'ck_zookeeper'interval: 10stargets:staticConfig:static:- 192.168.3.100:7070 # 示例协调服务节点1- 192.168.3.101:7070 # 示例协调服务节点2- 192.168.3.102:7070 # 示例协调服务节点3prober:url: 192.168.3.100:7070path: /metricsscheme: http
部署步骤
-
保存配置文件
将上述配置保存为probes-config.yaml
文件 -
应用配置
kubectl apply -f probes-config.yaml
-
验证部署
kubectl get probes -n monitoring
-
检查 Prometheus 目标
访问 Prometheus Web UI,确认所有目标状态为 "UP"
配置说明
- jobName: 监控任务名称,均以 "ck_" 前缀标识
- interval: 抓取间隔设置为 10 秒
- targets: 使用静态 IP 地址配置监控目标
- prober: 配置探针参数,指定 metrics 端点路径为
/metrics
- scheme: 使用 HTTP 协议进行监控数据抓取
注意事项
- 网络连通性: 确保 Prometheus 能够访问所有配置的目标地址和端口
- 防火墙规则: 检查网络策略是否允许监控流量
- 资源版本: 确认 Prometheus Operator 版本兼容性
- 监控目标: 确保所有被监控服务已正确暴露 metrics 端点
故障排除
-
如果目标显示为 "DOWN",检查:
- 网络连通性
- 目标服务是否正常运行
- 防火墙和网络策略配置
-
使用以下命令查看详细状态:
kubectl describe probe <probe-name> -n monitoring
此配置提供了一种简洁高效的方式来监控外部服务,避免了传统方式中需要创建多层级资源的复杂性。