侧边栏壁纸
博主头像
爱运维 博主等级

行动起来,活在当下

  • 累计撰写 197 篇文章
  • 累计创建 143 个标签
  • 累计收到 21 条评论

目 录CONTENT

文章目录
K8S

k8s下prometheus监控自定义Pod应用的监控

Administrator
2020-01-26 / 0 评论 / 0 点赞 / 11 阅读 / 0 字
主要是采用prometues通过service的annotations动态endpoints采集采集后端pod数据
环境 :
  1. prometheus安装在K8S
  2. 应用暴露了一个/metrics接口来暴露应用内业务数据
说明:
  • 其实K8S 下prometheus自带了K8S动态采集信息
  • 如endpoints方式采集获取对应pods数据,如下
- job_name: 'kubernetes-service-endpoints'
  kubernetes_sd_configs:
  - role: endpoints
  relabel_configs:
  - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
    action: keep
    regex: true
  - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
    action: replace
    target_label: __scheme__
    regex: (https?)
  - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
    action: replace
    target_label: __metrics_path__
    regex: (.+)
  - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
    action: replace
    target_label: __address__
    regex: ([^:]+)(?::\d+)?;(\d+)
    replacement: $1:$2
  - action: labelmap
    regex: __meta_kubernetes_service_label_(.+)
  - source_labels: [__meta_kubernetes_namespace]
    action: replace
    target_label: kubernetes_namespace
  - source_labels: [__meta_kubernetes_service_name]
    action: replace
    target_label: kubernetes_name
  • 所以为了将pod的数据暴露K8S,我们只需要增加一个service(也可以用原来的)
apiVersion: v1
kind: Service
metadata:
  name: admin-prometheus-svc
  namespace: soe
  annotations:                      # 在metadata下增加annotations
    prometheus.io/scrape: 'true'    # 开启K8s动态监测后端pod数据
    prometheus.io/path: '/metrics'  #pod暴露的/metrics接口地址
    prometheus.io/port: '9163'      #pod暴露的采集数据端口
spec:
  ports:
  - port: 80
    targetPort: 17501
    name: worker
  - port: 9163
    targetPort: 9163
    name: prometheusport
  selector:
    app: admin
注意:
  1. prometheus.io/xxx : 后面的值一定要有引号,不然没效果
参考:
0

评论区