1、安装Prometheus Operator
官方文档:https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/getting-started.md
Prometheus Operator是一种Kubernetes原生的应用程序,用于管理Prometheus实例和相关的监控组件。它可以通过自定义资源定义(CRD)来管理Prometheus实例和相关的监控组件,大大简化了Prometheus的部署和管理过程。
要安装Prometheus Operator,可以使用Helm chart:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus-operator prometheus-community/kube-prometheus-stack
2、配置Prometheus实例
安装完Prometheus Operator后,可以使用Prometheus自定义资源定义(CRD)来创建Prometheus实例。
以下是一个基本的Prometheus实例配置示例:
apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
name: my-prometheus
spec:
replicas: 1
version: v2.27.1
serviceAccountName: prometheus
securityContext:
fsGroup: 2000
serviceMonitorSelector:
matchLabels:
app: my-app
ruleSelector:
matchLabels:
app: my-app
retention: 1d
在上面的示例中,我们定义了一个名为“my-prometheus”的Prometheus实例,它使用了1个副本,版本为v2.27.1。我们还为Prometheus实例指定了一个服务帐户,指定了一个serviceMonitorSelector和ruleSelector,以便Prometheus可以监视我们的应用程序,并设置了一个数据保留期限为1天。
要创建Prometheus实例,请使用kubectl apply命令:
kubectl apply -f prometheus.yaml
3、添加监控目标
要监视Kubernetes集群中的资源,需要将它们添加到Prometheus实例中作为监控目标。可以使用Prometheus
Operator中的ServiceMonitor来定义监控目标。
以下是一个示例ServiceMonitor配置,用于监控名为“my-app”的Kubernetes服务:
apiVersion: monitoring.coreos.com/v1
kind:ServiceMonitor
metadata:
name: my-app-monitor
spec:
selector:
matchLabels:
app: my-app
endpoints:
- port: metrics
在上面的示例中,我们定义了一个名为“my-app-monitor”的ServiceMonitor,它选择标签为“app:my-app”的Kubernetes服务作为监控目标,并定义了一个名为“metrics”的端口。
要创建ServiceMonitor,请使用kubectl apply命令:
kubectl apply -f service-monitor.yaml
4、访问Prometheus UI
安装完Prometheus Operator和Prometheus实例后,可以通过访问Prometheus UI来查看监控数据。可以通过Port Forwarding的方式将Prometheus UI端口映射到本地计算机上:
kubectl port-forward service/my-prometheus-operator-prometheus 9090
然后,可以通过浏览器访问http://localhost:9090/来访问Prometheus UI。在Prometheus
UI中,可以查看监控数据、配置报警规则等。