Skip to Content
集群监控Prometheus监控方案监控中心添加告警目标

添加监控目标

一个监控目标可理解为Prometheus中的一个Target或Job. 原生Prometheus既支持静态配置监控目标,也支持动态服务发现。

由于K8S的Pod被设置非永久性的资源,为了正确地抓取到每个应用对应的Pod监控数据,Prometheus Operator引入了Service Monitor机制,通过监听Service后面的Endpoint(可认为是健康的Pod)来实现监控数据的采集。

因此,为了抓取一组Pod的监控数据,我们必须为这组Pod创建一个对应的Service,并暴露对应的Metrics端口。

! 这里需要强调的是,Service必须暴露Metrics端口,而非业务端口。如我们有一个应用,其应用端口为80,Metrics端口为9200,则供Prometheus抓取数据的Service端口必须是9200,如果设置为80,则不能抓取到任何监控数据。

操作说明

1. 部署应用

在下面这个例子中,我们部署了一个示例应用,该应用为一个web应用程序,其容器对外暴露了两个端口,一个是业务端口80,另一个是Metrics端口8080. 并且创建了一个Service,暴露的端口与容器端口一致。

apiVersion: apps/v1 kind: Deployment metadata: name: example-app spec: replicas: 2 selector: matchLabels: app: example-app template: metadata: labels: app: example-app spec: containers: - name: example-app image: uhub.an-link.com/uk8s_public/instrumented_app:latest ports: - name: metrics containerPort: 8080 - name: web containerPort: 80 --- kind: Service apiVersion: v1 metadata: name: example-app labels: app: example-app spec: selector: app: example-app ports: - name: metrics port: 8080 - name: web port: 80

2、添加监控目标

我们在UK8S的监控中心—>监控目标页面,直接选中该Service,端口名称选择“metrics”,抓取路径一般默认填写“/metrics”,如果监控指标的路径是自定义请咨询业务方。

  • 命名空间:kubernetes集群上部署server的namespace名称
  • 服务名称:kubenetes集群上要获取metric的service的名称
  • 端口名称:获取metric的service上的端口名称
  • 路径:获取metric的service访问路径

3、查看监控目标

添加完毕后,我们可以打开Prometheus 控制台,查看该监控目标是否已添加成功。