简介
安装Prometheus Operator:可以通过Helm安装Prometheus Operator,它可以自动创建和管理Prometheus实例。
安装Node Exporter:Node Exporter是一个用于收集主机指标的代理程序,可以在每个节点上安装。
配置ServiceMonitor:ServiceMonitor是Prometheus Operator中的一种资源类型,用于自动发现应用程序并为其生成指标。
部署应用程序:在Kubernetes中部署应用程序,并通过Service对象将其暴露在集群内部。
配置Prometheus:在Prometheus中配置用于收集指标的目标,包括Node Exporter和应用程序的ServiceMonitor。
部署Grafana:Grafana是一个用于可视化指标的工具,可以通过Helm在集群中部署。
配置Grafana:在Grafana中配置Prometheus数据源,并创建仪表板来可视化收集的指标。
1、安装Prometheus Operator
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
安装Exporter
使用Helm安装Node Exporter:
执行该命令后,将会在k8s集群中创建一个名为node-exporter的Release,包含了Node Exporter的Deployment、Service等资源。Node Exporter会默认采集节点的CPU、内存、磁盘、网络等指标数据,并将其暴露给Prometheus进行采集。
helm install node-exporter prometheus-community/prometheus-node-exporter
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中,可以查看监控数据、配置报警规则等。