乐趣区

关于prometheus:prometheusoperator配置自动发现应用监控

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…

监控配置
对于如何部署, 如何根底配置能够查看官网文档

Configuration | Prometheus

Kubernetes 内利用监控配置

  1. 利用增加相应 metric

(波及开发内容不做过多解说, 我司我的项目为 java 开发, 采纳 micrometer git 地址:https://github.com/micrometer…)

  1. 次要采纳 podmonitor 配置主动发现(https://github.com/prometheus…)

    apiVersion: monitoring.coreos.com/v1
    kind: PodMonitor
    metadata:
      labels:
     mill-app: appmonitor
      name: appmonitor
    spec:
    ## 配置全局 namespace 监听
    ## 留神: 如需配置全 namespace 监听, 须要配置相应 RBAC 权限
      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
    # 要害配置须要发现的标签
  2. 配置利用 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:
    # 配置参数管制门路与端口(对应配置文件中的 replace)
         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
  3. 实现配置关上 prometheus 界面查看信息
退出移动版