运维别卷系列 - 云原生监控平台 之 02.prometheus exporter 实践

文章目录

    • @[toc]
    • exporter 简介
    • 常用的 exporter
    • node-exporter 实践
      • 创建 svc
      • 创建 daemonset
      • prometheus 配置服务发现

exporter 简介

随着 Prometheus 的流行,很多系统都已经自带了用于 Prometheus 监控的接口,例如 etcd、Kubernetes、CoreDNS 等,所以这些系统可以直接被 Prometheus 所监控。

但是,有很多应用目前还没有提供用于 Prometheus 监控的接口(一些出现的比 Prometheus 还要早的应用),针对这这类应用,Prometheus 提出了 Exporter 的解决方案。

Exporter 是需要独立部署的服务

Exporter 是 Prometheus 的指标数据收集组件。它负责从目标 Jobs 收集数据,并把收集到的数据转换为 Prometheus 支持的时序数据格式。和传统的指标数据收集组件不同的是,他只负责收集,并不向 Server 端发送数据,而是等待 Prometheus Server 主动抓取

常用的 exporter

EXPORTERS AND INTEGRATIONS

  • Elasticsearch exporter
  • MySQL server exporter
  • Kafka exporter
  • Gluster exporter
  • Ceph exporter
  • Node/system metrics exporter
  • Blackbox exporter
  • kube-state-metrics
  • cAdvisor

node-exporter 实践

  • node-exporter 用于采集类 *NIX 内核的硬件以及系统指标
  • windows exporter 用于采集 windows 系统指标
  • dcgm-exporter 用于采集 NVIDIA GPU 指标
  • 同 Prometheus,这里的 node-exporter 也是在 k8s 内部署的,部署的 node-exporter 版本是 v1.8.0

创建 svc

---
apiVersion: v1
kind: Service
metadata:
  annotations:
  labels:
    app: node-exporter
  name: node-exporter-svc
  namespace: monitor
spec:
  clusterIP: None
  ports:
  - name: http
    port: 9100
    protocol: TCP
  selector:
    app: node-exporter
  type: ClusterIP

创建 daemonset

要采集每个机器的指标,所以采用 daemonset 的方式来部署,保证有新增节点的时候,会自动启动 node-exporter

---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  annotations:
  labels:
    app: node-exporter
  name: node-exporter
  namespace: monitor
spec:
  selector:
    matchLabels:
      app: node-exporter
  template:
    metadata:
      labels:
        app: node-exporter
      annotations:
        prometheus.io/port: "9100"
        prometheus.io/scrape: "true"
        prometheus.io/type: "node_exporter"
    spec:
      hostNetwork: true
      hostPID: true
      hostIPC: true
      containers:
      - name: node-exporter
        image: prom/node-exporter:v1.8.0
        args:
        - "--path.rootfs=/rootfs"
        ports:
        - containerPort: 9100
          hostPort: 9100
          name: http
        volumeMounts:
        - mountPath: /rootfs
          name: root
      volumes:
      - hostPath:
          path: /
        name: root

prometheus 配置服务发现

因为之前的 prometheus 配置文件只简单的配置了 prometheus 自身的 target,现在要增加一个关于 kubernetes 的服务发现,这样,如果后面有新增节点,也会被加入到 promethus 内

kubernetes_sd_config

global:
  scrape_interval: 30s
  evaluation_interval: 30s
  scrape_timeout: 10s
  external_labels:
    prometheus: monitor/k8s
rule_files:
- /etc/prometheus/rules/*.yml
scrape_configs:
- job_name: prometheus
  metrics_path: '/metrics'
  static_configs:
  - targets: ['prometheus-svc.monitor.svc.cluster.local:9090']

- job_name: 'kubernetes-pods'
  kubernetes_sd_configs:
  - role: pod
  relabel_configs:
  - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
    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

使用 reload 来刷新 prometheus 配置,下面的 ip 和端口要换成自己环境的

curl -XPOST http://192.168.11.167:31090/-/reload

再次查看 prometheus 的页面,可以发现 target 里面增加了每个节点的 node-exporter 了

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/625888.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Springboot的校园疫情防控信息管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的校园疫情防控信息管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层…

保研机试之【文件描述符】

A选项: 一个文件描述符对应着系统级文件表中的一项 B选项 C选项 D选项 E选项 F选项 综上,我认为这道题选择B、C、E、F~

内网工具之LDP的使用

LDP 是微软自带的一款活动目录信息查询工具,在域控的 cmd 窗口执行 ldp 命令即可打开 LDP 工具。普通域成员主机默认是没有 LDP 工具的,可以自行上传ldp.exe 工具上去查询活动目录信息。不在域内的机器,也可以通过上传 ldp.exe 工具上去执行。…

接口测试基础

1、接口测试 接口:系统之间数据交互的通道。 硬件接口软件接口 接口测试:基于不同的输入参数,校验接口响应数据与预期数据是否一致。 接口地址 接口参数 2. 为什么要学接口测试? 提前介入测试、尽早发现问题 3、接口测试学什…

网上有哪些赚钱的方法能一天赚二三十?盘点7个靠谱的搞钱副业和赚钱软件

想在家里躺着就能把钱赚?这不再是遥不可及的梦想!随着互联网的飞速发展,网上赚钱的方式层出不穷,总有一款适合你。 今天,就让我们一起揭开这些神秘面纱,看看哪些网上赚钱秘诀能让你轻松实现月入过万&#x…

OpenAI GPT-4

本文翻译整理自:https://openai.com/index/gpt-4-research/ (March 14, 2023) 文章目录 一、关于 GPT-4二、能力视觉输入Visual inputs: chart reasoningSample 2 of 7 操纵性Steerability: Socratic tutorSample 1 of 3 三、局限性四、风险与缓解措施五、训练流程…

运维别卷系列 - 云原生监控平台 之 01.prometheus 入门和部署

文章目录 [toc]什么是 PrometheusPrometheus 架构及其一些生态系统组件Prometheus 的工作模式Prometheus 的适用场景Prometheus 的不适用场景Prometheus 词汇表 Prometheus 启动参数Prometheus 配置文件通用占位符定义配置文件示例解释服务发现 Prometheus 部署创建 namespace创…

Vue入门到关门之Vue3学习

一、常用API 注意:本文项目均使用脚手架为 Vite 1、setup函数 (1)介绍 如果在项目中使用配置项API,那么写起来就和vue2的写法是一样的;但是如果在项目中写的是组合式API,那么组件中所用到的&#xff1a…

深度学习入门到放弃系列 - 阿里云人工智能平台PAI部署开源大模型chatglm3

通过深度学习入门到放弃系列 - 魔搭社区完成开源大模型部署调用 ,大概掌握了开源模型的部署调用,但是魔搭社区有一个弊端,关闭实例后数据基本上就丢了,本地的电脑无法满足大模型的配置,就需要去租用一些高性价比的GPU机…

宝兰德成为中国信通院政企信创促进中心成员 共谱信创产业新篇章

近日,中国信通院云计算标准和开源推进委员会2024年第一次全体工作会议圆满结束。会上,宝兰德获得由中国信通院和EDCC政企信息技术应用创新促进中心授予的荣誉证书,成为政企信创促进中心成员单位。 关于政企信创促进中心 中国信通院政企信创促…

uniapp高性能图片裁剪插件,可添加水印

效果图&#xff1a; 插件地址&#xff1a;高性能图片裁剪&#xff0c;裁剪图片后自动添加水印 - DCloud 插件市场 示例&#xff1a; <template> <view><button click"select">选择图片</button><image mode"widthFix" :src&qu…

DOM重点核心(注册事件+DOM事件流)

目录 1.注册事件 注册时间概述 addEventListener() 删除事件 2.DOM事件流 DOM事件流理论 事件对象 事件对象的常见属性和方法 e.targe 和 this的区别 阻止默认行为 阻止冒泡 事件委托 禁止右键菜单和禁止选中文字 获得鼠标的坐标&#xff08;可视区、页面、浏览器…

RIP动态路由协议详解

目录 一&#xff1a;RIP协议的基本信息 二&#xff1a;RIP协议中的更新方式 三&#xff1a;RIP协议中的计时器 定时更新器&#xff08;UPDATE timer&#xff09; 无效定时器&#xff08;invalid Timer&#xff09; 垃圾收集定时器&#xff08;garbage collection timer&a…

怎样计算Excel一列数值中十位数为5的个数?

有一列数字&#xff0c;可能正数也可能是负数&#xff0c;有可能有小数&#xff0c;要怎么计算这列数字中十位数为5的数量有多少个&#xff1f; 一、按示例情况&#xff0c;数字均为整数 公式如下&#xff1a; SUM(--(MID(A1:A6,LEN(A1:A6)-1,1)"5")) 数组公式&a…

【JS面试题】原型原型链

一、面试真题展示&#xff1a; 1. 如何准确判断一个变量是不是数组&#xff1f; ① 使用instanceof进行判断&#xff1a;a instanceof Array ② 使用Array.isArray()进行判断&#xff1a;Array.isArray(a) 2. 手写一个简易的jQuery&#xff0c;考虑插件和扩展性&#xff1f; …

python的文件操作及函数式编程介绍

五、文件操作 1、读取键盘输入 input 获取标准输入&#xff0c;数据类型统一为字符串 #!/usr/bin/python # -*- coding: UTF-8 -*- str input("请输入&#xff1a;") print&#xff08;"你输入的内容是: ", str&#xff09; 这会产生如下的对应着输入的…

c++ 各版本特性介绍

c C是一种高级编程语言&#xff0c;以其强大的功能、灵活性和高效性而闻名。它是由Bjarne Stroustrup在20世纪80年代初期在贝尔实验室开发的&#xff0c;作为C语言的一个扩展。C不仅包含了C语言的所有特性&#xff0c;还引入了面向对象编程&#xff08;OOP&#xff09;的概念&…

TCP四次挥手——断开连接 滑动窗口-流量控制

四次挥手 在TCP的四次挥手中&#xff0c;其重要作用就是释放客户端和服务器的连接。 这里的一些参数非常重要&#xff0c;因为这些参数的作用是为了表达TCP四次挥手断开连接的过程。 其中的参数如下 1.FIN&#xff1a;FIN (Finish) 是TCP协议中的一个标志位&#xff0c;用于…

基于spingboot,vue线上辅导班系统

目录 项目介绍 图片展示 运行环境 获取方式 项目介绍 权限划分&#xff1a;用户&#xff0c;管理员 具有前后台展示&#xff0c;前台供用户使用&#xff1b;用户具有自己的后台&#xff0c;查看自己的老师课程等&#xff1b;管理员具有最大的权限后台。 用户&#xff1a…

76岁林子祥升级做爷爷,亲自为孙女取名

林子祥与前妻吴正元的儿子&#xff0c;现年39岁的林德信入行以来绯闻不少&#xff0c;自与圈外女友Candace拍拖后便修心养性&#xff0c;去年他已经低调与拍拖5年多Candace完婚&#xff0c;正式步入人生另一阶段。 昨日&#xff08;5月12日&#xff09;林德信借母亲节这个温馨日…