5.21 Kubernetes应用监控实战:ServiceMonitor和PodMonitor配置详解
·
5.21 Kubernetes应用监控实战:ServiceMonitor和PodMonitor配置详解
引言
ServiceMonitor和PodMonitor是Prometheus Operator提供的CRD,用于自动发现和监控Kubernetes中的应用。本文将详细介绍这两个资源的配置方法。
一、Prometheus Operator
1.1 Operator作用
- 管理Prometheus
- 自动服务发现
- CRD资源
- 简化配置
1.2 安装Operator
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/main/bundle.yaml
二、ServiceMonitor
2.1 ServiceMonitor定义
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: myapp
namespace: monitoring
spec:
selector:
matchLabels:
app: myapp
endpoints:
- port: metrics
interval: 30s
path: /metrics
2.2 Service配置
apiVersion: v1
kind: Service
metadata:
name: myapp
labels:
app: myapp
spec:
ports:
- name: metrics
port: 9090
targetPort: 8080
selector:
app: myapp
三、PodMonitor
3.1 PodMonitor定义
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: myapp
namespace: monitoring
spec:
selector:
matchLabels:
app: myapp
podMetricsEndpoints:
- port: metrics
interval: 30s
path: /metrics
3.2 Pod配置
apiVersion: v1
kind: Pod
metadata:
labels:
app: myapp
spec:
containers:
- name: app
ports:
- name: metrics
containerPort: 8080
四、实战案例
4.1 完整配置
# Service
apiVersion: v1
kind: Service
metadata:
name: myapp
labels:
app: myapp
spec:
ports:
- name: metrics
port: 9090
targetPort: 8080
selector:
app: myapp
---
# ServiceMonitor
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: myapp
spec:
selector:
matchLabels:
app: myapp
endpoints:
- port: metrics
interval: 30s
path: /metrics
五、最佳实践
5.1 配置建议
- 使用ServiceMonitor
- 合理设置抓取间隔
- 配置标签选择器
- 监控ServiceMonitor状态
总结
通过本文,你学会了:
- ✅ Prometheus Operator:作用、安装
- ✅ ServiceMonitor:定义、配置
- ✅ PodMonitor:定义、配置
- ✅ 实战案例:完整配置
下一步学习
- 5.22 生产级监控告警方案
- 5.23 告警规则设计最佳实践
思考题
- ServiceMonitor和PodMonitor的区别是什么?
- 如何配置应用监控?
- 如何验证监控配置?
提示:ServiceMonitor和PodMonitor简化了应用监控配置。下一节我们将学习告警方案。
更多推荐
所有评论(0)