Kubernetes(K8s)安装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

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中,可以查看监控数据、配置报警规则等。
经验分享 程序员 微信小程序 职场和发展