Prometheus-Opeartor使用

1,745次阅读
没有评论

Prometheus Operator 功能如下:

  • 创建 / 销毁:在 Kubernetes namespace 中更加容易地启动一个 Prometheues 实例,一个特定应用程序或者团队可以更容易使用 Operator。
  • 便捷配置:通过 Kubernetes CRD 资源配置 Prometheus 的基本信息,比如版本、(分布式)存储、副本集、高可用等。
  • 通过标签标记目标服务:基于常见的 Kubernetes label 查询自动生成监控目标配置;不需要学习 Prometheus 特定的配置语言。

它使用如下的 Kubernetes CRD 资源对 Prometheus 进行配置:

  • Prometheus
  • Alertmanager
  • ThanosRuler
  • ServiceMonitor
  • PodMonitor
  • Probe
  • PrometheusRule
  • AlertmanagerConfig

ServiceMonitor

ServiceMonitor 自定义资源 (CRD) 能够声明如何监控一组动态服务的定义。它使用标签选择定义一组需要被监控的服务。这样就允许组织引入如何暴露 metrics 的规定,只要符合这些规定新服务就会被发现列入监控,而不需要重新配置系统。
一个 Service 可以公开一个或多个服务端口,通常情况下,这些端口由指向一个 Pod 的多个 Endpoints 支持。这也反映在各自的 Endpoints 对象中。
ServiceMonitorSpec 的 endpoints 部分用于配置需要收集 metrics 的 Endpoints 的端口和其他参数。在一些用例中会直接监控不在服务 endpoints 中的 pods 的端口。

例子

service.yaml
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    prometheus-service-monitor: "true"
  labels:   # servicemonitor 读取用
    app: heplify-server
    prometheus-service-monitor: "true"
  name: heplify-service
  namespace: devops
spec:
  ports:
  - name: heplify-monitor
    port: 9096
    protocol: TCP
    targetPort: 9096
  selector:
    app: heplify-server
  type: ClusterIP

servicemonitor.yml
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    app.kubernetes.io/instance: heplify-server
  name: heplify-service
  namespace: devops
spec:
  endpoints:
  - port: heplify-monitor
  namespaceSelector:
    matchNames:
    - devops
  selector:
    matchLabels:
      app: heplify-server
      prometheus-service-monitor: "true"
  targetLabels:
  - cluster

为什么配置的 ServiceMonitor 或 PodMonitor 未生效?

排查步骤:

  • 确认 Target 是否已经被发现, 找到目标 Prometheus 实例,然后在左侧导航栏单击服务发现,然后单击 Targets 页签,检查相应的 Target 是否已经被发现。
  • 查看集群 CRD 中是否存在相应的 ServiceMonitor 资源。确认 Label Selector 是否能选择到期望的 Pod 或者 Service 以上面那个例子为例。执行以下命令,观察返回结果,若无返回结果,则需要调整 Label Selector 或 Namespace Selector,即可筛选出期望的 Pod 或者 Service。
  • kubectl get service -l k8s-app=dev-yoyogodemo-kind-kind -n klns-administration

参考文档:

正文完
 0
评论(没有评论)
验证码