首页 > 其他分享 >prometheus学习笔记之集群外服务发现

prometheus学习笔记之集群外服务发现

时间:2024-09-05 14:36:32浏览次数:12  
标签:__ kubernetes token 笔记 prometheus meta 集群 pod

一、部署二进制prometheus

略,参考之前文档或自行百度

二、创建prometheus获取api-server的token

1.获取token

kubectl get sa -n monitoring monitor  #上一篇给prometheus创建的sa
kubectl get sa -n monitoring monitor -o yaml #每个sa默认会创建一个secret
kubectl get secrets -n monitoring monitor-token-585gg  -o   jsonpath='{.data.token}' #从secret获取token

2.验证

token=$(kubectl get secrets -n monitoring monitor-token-585gg  -o  jsonpath='{.data.token}' | base64 -d ) #token需要解密
curl --cacert /etc/kubernetes/pki/ca.crt -H "Authorization: Bearer ${token}" https://192.168.10.89:6443/api/v1/nodes/k8s-node1/proxy/metrics/cadvisor|head #替换你的api-server地址和其中的node名称
value labeled by kernel version, OS version, docker version, cadvisor version & cadvisor revision.
# TYPE cadvisor_version_info gauge
cadvisor_version_info{cadvisorRevision="",cadvisorVersion="",dockerVersion="",kernelVersion="3.10.0-1160.108.1.el7.x86_64",osVersion="CentOS Linux 7 (Core)"} 1
# HELP container_blkio_device_usage_total Blkio Device bytes usage
# TYPE container_blkio_device_usage_total counter
container_blkio_device_usage_total{container="",device="/dev/vda",id="/",image="",major="253",minor="0",name="",namespace="",operation="Async",pod=""} 3.12744192e+09 1725501954356
............
3.将token保存为文件
kubectl get secrets -n monitoring monitor-token-585gg  -o   jsonpath='{.data.token}' | base64 -d > k8s-cluster.token #保存token到文件
scp -P 15678 k8s-cluster.token 192.168.10.91:/usr/local/prometheus/ #拷贝到prometheus服务器
三、创建prometheus抓取job

1.抓取api-server

  - job_name: 'kubernetes-apiservers-monitor'
    metrics_path: /metrics
    scheme: https
    tls_config:
      insecure_skip_verify: true #因为我们的证书是自建的,所以需要跳过验证
    bearer_token_file: /usr/local/prometheus/k8s-cluster.token #我们生成的token的路径
    kubernetes_sd_configs:
    - role: endpoints
      api_server: https://192.168.10.89:6443  #k8s集群的api-servier地址
      tls_config:
        insecure_skip_verify: true
      bearer_token_file: /usr/local/prometheus/k8s-cluster.token
    relabel_configs:
    - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name,__meta_kubernetes_endpoint_port_name]
      action: keep
      regex: default;kubernetes;https
    - target_label: __address__
      replacement: 192.168.10.89:6443

效果如下

2.抓取node

  - job_name: 'kubernetes-node-monitor'
    metrics_path: /metrics
    scheme: http #注意此处的协议为http
    tls_config:
      insecure_skip_verify: true
    bearer_token_file: /usr/local/prometheus/k8s-cluster.token
    kubernetes_sd_configs:
    - role: node
      api_server: https://192.168.10.89:6443
      tls_config:
        insecure_skip_verify: true
      bearer_token_file: /usr/local/prometheus/k8s-cluster.token
    relabel_configs:
     - source_labels: [__address__]
       regex: '(.*):10250'
       replacement: '${1}:9100'
       target_label: __address__
       action: replace
     - source_labels: [__meta_kubernetes_node_label_failure_domain_beta_kubernetes_io_region]
       regex: '(.*)'
       replacement: 'NODE'
       action: replace
       target_label: Type
     - action: labelmap
       regex: __meta_kubernetes_node_label_(.+)

效果如下

3.抓取pod 

因为当前k8s为新搭建集群,没有应用,所以在prometheus配置中我删除了 prometheus_io_scrape相关配置,所以所有的pod都会被抓取

  - job_name: 'kubernetes-pod-monitor'
    tls_config:
      insecure_skip_verify: true
    bearer_token_file: /usr/local/prometheus/k8s-cluster.token
    kubernetes_sd_configs:
    - role: pod
      api_server: https://192.168.10.89:6443
      tls_config:
        insecure_skip_verify: true
      bearer_token_file: /usr/local/prometheus/k8s-cluster.token
    relabel_configs:
    - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] #如果和我一样新集群没有服务配置了prometheus注解可以删除此配置
      action: keep 
      regex: true 
    - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
      action: replace
      target_label: __metrics_path__
      regex: (.+)
    - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
      action: replace
      regex: ([^:]+)(?::\d+)?;(\d+)
      replacement: $1:$2
      target_label: __address__
    - action: labelmap
      regex: __meta_kubernetes_pod_label_(.+)
    - source_labels: [__meta_kubernetes_namespace]
      action: replace
      target_label: kubernetes_namespace
    - source_labels: [__meta_kubernetes_pod_name]
      action: replace
      target_label: kubernetes_pod_name

效果如下

因为所有的pod都会被抓取,有些并没有/metrics端口,所以会报错

其他抓取配置与集群内部署方式相同,主要为证书及token相关配置,此处不在赘述

 

 

标签:__,kubernetes,token,笔记,prometheus,meta,集群,pod
From: https://www.cnblogs.com/panwenbin-logs/p/18398380

相关文章

  • 读书笔记(11)《围城》
    序言钱钟书先生最经典的作品,也是仅有的一部长篇小说,堪称中国现代文学史上风格独特的讽刺经典,被誉为“新儒林外史”,自上世纪八十年代以来一直横贯常销、畅销小说之首。小说塑造了抗战初期以方鸿渐为主的一类知识分子群像,记叙了他们所面临的教育、婚姻和事业困境。虽然有具体的历史......
  • 代码整洁之道--读书笔记(1)U2
    代码整洁之道简介:本书是编程大师“Bob大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。本......
  • 部署K8S集群(一):环境准备
    环境介绍:以下操作使用三台基于Hyper-v的OpenEuler虚拟机IP主机名系统版本172.17.48.27masteropeneuler-22.03LTSSP3172.17.48.28worker01openeuler-22.03LTSSP3172.17.48.29worker02openeuler-22.03LTSSP3虚拟机准备操作:以下操作需要在全部三......
  • 部署K8S集群(二):主节点初始化
    主节点:以下操作只在master进行安装kubeletkubeadmkubectlyuminstall-ykubeletkubeadmkubectl安装containerd下载地址:https://github.com/containerd/containerd/releases找到标签为Latest的包,根据系统类型下载对应的包#解压tarCxzvf/usr/localcontainerd-1......
  • IP学习笔记——threeday
    通过路由器时,Vlan被拆Vlan标签后,出路由器时加的Vlan标签的VlanID一样,但是已经不是同一个标签了。access:主机与交换机之间配置命令:portlink-typeaccessportdefaultdot1qterminationvid10作用是进入路由器接口时,去除Vlan10的标签,出去时,加上一个Vlan10的标签......
  • 软件测试学习笔记丨Pytest+Allure测试计算器
    本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/31954项目要求3.1项目简介计算器是近代人发明的可以进行数字运算的机器。计算器通过对加法、减法、乘法、除法等功能的运算,将正确的结果展示在屏幕上。可帮助人们更方便的实现数字运算。一般情况下计算器除显示计算结果......
  • Prometheus通过node_exporter监控Node节点,Node节点的详细指标解读
    ✨✨欢迎大家来到景天科技苑✨✨......
  • SeleniumBase 利用数据驱动 方式运行-使用笔记(五)
    自动化福音(爬虫、办公、测试等)SeleniumBase使用笔记(五)SeleniumBase利用数据驱动方式运行有同学问我,如何对SeleniumBase使用数据驱动见评论区,于是有了这个文章。目录SeleniumBase继承方式SeleniumBase夹具方式继承方式这种方式的使用,前提是你的代码使用的继承B......
  • 2024/9/4黑马头条跟学笔记(二)
    app端文章列表学习内容需求分析上方分类频道切换布局,无图,单图,三张图文章数据库表导入文章数据库结构分析配置-文章一对一,拆表,冷热数据分离满足范式表的拆分-垂直分表优势查文章信息不会连带查询文章内容将longtext字段拆除去,高频查询提高性能拆分规则不......
  • 【Python学习笔记】 第2章 Python如何运行程序
    Python解释器简介我们在Python的官网下载并安装Python后,它会生成一些组件,包括解释器和一套支持库。Python的代码必须在解释器中运行。程序运行程序员的视角一个Python程序仅是一个包含Python语句的文本文件。例:创建script0.py文件,并写上:print("Hello,world!")print(2**1......