栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

在KubeSphere集群中采用prometheus-operator为集群内应用添加自动发现监控

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在KubeSphere集群中采用prometheus-operator为集群内应用添加自动发现监控

prometheus-operator
CRDs:

  • Prometheus:定义了所需的 Prometheus 部署
  • alertmanager定义了所需的 alertmanager 部署
  • ThanosRuler定义了所需的 Thanos Ruler 部署
  • ServiceMonitor以声明方式指定应如何监控 Kubernetes 服务组。Operator 根据 API 服务器中对象的当前状态自动生成 Prometheus 抓取配置
  • Podmonitor以声明方式指定应如何监视 Pod 组。Operator 根据 API 服务器中对象的当前状态自动生成 Prometheus 抓取配置
  • Probe以声明方式指定应如何监视入口组或静态目标组。Operator 根据定义自动生成 Prometheus 抓取配置
  • PrometheusRule定义了一组所需的 Prometheus 警报和/或记录规则。Operator 生成一个规则文件,可供 Prometheus 实例使用
  • alertmanagerConfig以声明方式指定 alertmanager 配置的子部分,允许将警报路由到自定义接收器,并设置禁止规则

https://github.com/prometheus-operator/prometheus-operator/blob/master/documentation/api.md#podmetricsendpoint

监控配置

Configuration | Prometheushttps://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config

Kubernetes内应用监控配置

1. 应用添加相应metric

(涉及开发内容不做过多讲解,我司项目为java开发,采用micrometer git地址:https://github.com/micrometer-metrics/micrometer)

2. 主要采用podmonitor配置自动发现(https://github.com/prometheus-operator/prometheus-operator/blob/master/documentation/api.md#podmetricsendpoint)

apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  labels:
    mill-app: appmonitor
  name: appmonitor
spec:
  namespaceSelector:
    any: true
  podMetricsEndpoints:
  - interval: 10s
    relabelings:
    - action: replace
      regex: (.+)
      sourceLabels:
      - __meta_kubernetes_pod_annotation_prometheus_io_path
      targetLabel: __metrics_path__
    - action: replace
      regex: ([^:]+)(?::d+)?;(d+)
      replacement: $1:$2
      sourceLabels:
      - __address__
      - __meta_kubernetes_pod_annotation_prometheus_io_port
      targetLabel: __address__
    scheme: http
  selector:
    matchLabels:
      mill-monitor: app
# 关键配置需要发现的标签

3. 配置应用deployment 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mill-base
  labels:
    app: ywwl-base
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mill-base
  template:
    metadata:
      annotations:
# 配置参数控制路径与端口
        prometheus.io/path: /metrics/prometheus
        prometheus.io/port: "8080"
      labels:
        app: mill-base
        #配置对应标记
        mill-monitor: app
    spec:
      containers:
        - name: mill-base
          image: localhub.xxx.com/xxx/xxx:latest
          ports:
            - containerPort: 8080

4. 打开prometheus界面发现相应配置实现

5. 如需配置全namespace监听,需要配置相应RBAC权限

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/356481.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号