【Prometheus】k8s集群部署node-exporter
目录
一、概述
1.1 prometheus简介
1.2 prometheus架构图
1.3 Exporter介绍
1.4 监控指标
1.5 参数定义
1.6 默认启用的参数
1.7 prometheus如何收集k8s/服务的–三种方式收集
二、安装node-exporter组件
【Prometheus】概念和工作原理介绍-CSDN博客
【云原生】kubeadm快速搭建K8s集群Kubernetes1.19.0-CSDN博客
一、概述
1.1 prometheus简介
Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。
文档地址:
prometheus官网文档地址:Overview | Prometheus
prometheus中文文档地址:第1节:Prometheus 简介 - Prometheus 中文文档
1.2 prometheus架构图
从上图可发现,Prometheus整个生态圈组成主要包括prometheus server,Exporter,pushgateway,alertmanager,grafana,Web ui界面,Prometheus server由三个部分组成,Retrieval,Storage,PromQL。
1.3 Exporter介绍
Exporter是Prometheus的指标数据收集组件。它负责从目标Jobs收集数据,并把收集到的数据转换为Prometheus支持的时序数据格式。 和传统的指标数据收集组件不同的是,他只负责收集,并不向Server端发送数据,而是等待Prometheus Server 主动抓取,node-exporter 默认的抓取url地址:http://ip:9100/metrics 。
因为环境原因,网络不可达的场景,Prometheus可以使用Pushgateway这个组件推送node-exporter的指标数据到远端Prometheus,node-exporter用于采集node的运行指标,包括node的cpu、load、filesystem、meminfo、network等基础监控指标,类似于zabbix监控系统的的zabbix-agent。node-exporter由Prometheus官方提供、维护,属于监控指标收集类UNIX内核操作系统的必备的exporter。
GitHub地址:GitHub - prometheus/node_exporter: Exporter for machine metrics。
1.4 监控指标
- CPU
- 内存
- 硬盘
- 网络流量
- 文件描述符
- 系统负载
- 系统服务
1.5 参数定义
黑名单: 关闭某一项默认开启的采集项,使用--no-collector参数可指定不需要的模块,如果不指定,将使用默认配置。
白名单:关闭默认采集项而只开启某些采集,使用--collector.disable-defaults参数关闭默认采集项,使用--collector.<name>指定开启的采集项。
使用--collectors.enabled参数打开node_exporter默认的采集项。
部分参数默认关闭的原因是:
- 太重
- 太慢,超过Prometheus scrape_interval或scrape_timeout的长时间运行时间
- 太多资源开销,主机资源需求过大
1.6 默认启用的参数
| Name | Description | OS |
| arp | 从/proc/net/ARP中显示ARP统计信息 | Linux |
| bcache | 显示/sys/fs/bcache/中的bcache统计信息。 | Linux |
| bonding | 显示Linux绑定接口的已配置和活动从属设备的数量。 | LInux |
| boottime | 显示从kern.boottime sysctl派生的系统启动时间 | Darwin, Dragonfly, FreeBSD, NetBSD, OpenBSD, Solaris |
| conntrack | 显示连接统计信息(如果没有/proc/sys/net/netfilter/present,则不执行任何操作)。 | Linux |
| cpu | 显示CPU统计信息 | Darwin, Dragonfly, FreeBSD, Linux, Solaris |
| cpufreq | 显示CPU频率统计信息 | Linux, Solaris |
| diskstats | 显示磁盘I/O统计信息。 | Darwin, Linux, OpenBSD |
| edac | 显示错误检测和更正统计信息。 | Linux |
| entropy | 显示可用熵。 | Linux |
| exec | 显示执行统计信息。 | Dragonfly, FreeBSD |
| filefd | 显示/proc/sys/fs/file-nr中的文件描述符统计信息。 | Linux |
| filesystem | 显示文件系统统计信息,如使用的磁盘空间。 | Darwin, Dragonfly, FreeBSD, Linux, OpenBSD |
| hwmon | 暴露/sys/class/hwmon/中的硬件监控和传感器数据。 | Linux |
| infiniband | 显示特定于InfiniBand和Intel OmniPath配置的网络统计信息。 | Linux |
| ipvs | 显示/proc/net/ip_vs中的IPVS状态和/proc/net/ip_vs_stats中的统计信息。 | Linux |
| loadavg | 显示平均负载。 | Darwin, Dragonfly, FreeBSD, Linux, NetBSD, OpenBSD, Solaris |
| mdadm | 在/proc/mdstat中显示有关设备的统计信息(如果不存在/proc/mdtat,则不执行任何操作)。 | Linux |
| meminfo | 显示内存统计信息。 | Darwin, Dragonfly, FreeBSD, Linux, OpenBSD |
| netclass | 显示/sys/class/net中的网络接口信息/ | Linux |
| netdev | 显示网络接口统计信息,如传输的字节数。 | Darwin, Dragonfly, FreeBSD, Linux, OpenBSD |
| netstat | 从/proc/net/netstat中显示网络统计信息。这是与netstat-s相同的信息。 | Linux |
| nfs | 从/proc/net/rpc/NFS中显示NFS客户端统计信息。这是与nfsstat-c相同的信息。 | Linux |
| nfsd | 从/proc/net/rpc/nfsd中显示NFS内核服务器统计信息。这与nfsstat-s的信息相同。 | Linux |
| pressure | 显示/proc/pressure/中的压力失速统计信息。 | Linux (kernel 4.20+ and/or CONFIG_PSI) |
| rapl | 显示/sys/class/powercap中的各种统计信息。 | Linux |
| schedstat | 显示/proc/schedstat中的任务调度程序统计信息。 | Linux |
| sockstat | 显示/proc/net/sockstat中的各种统计信息。 | Linux |
| softnet | 显示/proc/net/softnet_stat中的统计信息 | Linux |
| stat | 显示/proc/stat中的各种统计信息。这包括启动时间、分叉和中断。 | Linux |
| textfile | 显示从本地磁盘读取的统计信息。必须设置--collector.textfile.directory标志。 | any |
| thermal_zone | 显示/sys/class/thermal中的热区和冷却设备统计信息。 | Linux |
| time | 显示当前系统时间。 | any |
| timex | 显示选定的adjtimex(2)系统调用统计信息 | Linux |
| udp_queues | 显示/proc/net/UDP和/proc/net/udp6中rx_queue和tx_queue的UDP总长度。 | Linux |
| uname | 显示uname系统调用提供的系统信息。 | Linux |
| vmstat | 显示/proc/vmstat中的统计信息。 | Linux |
| xfs | 显示XFS运行时统计信息。 | Linux (kernel 4.4+) |
| zfs | 显示ZFS性能统计信息。 | Linux, Solaris |
1.7 prometheus如何收集k8s/服务的–三种方式收集
- Exporters(指标暴露器):收集节点的信息、将数据格式化或转化为 promtheus 可识别的http这种转化方式/镜像拉取方式
- Instrumentation (应用内置的指标暴露器): 收集有内置指标暴露器的信息
- Pushgateway : 收集短周期的数据
二、安装node-exporter组件
机器规划:
| IP | 主机名 |
| 192.168.40.130 | k8s-master1 |
| 192.168.40.131 | k8s-node1 |
| 192.168.40.132 | k8s-node2 |
安装node-exporter组件,node-export.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:name: node-exporternamespace: monitor-salabels:name: node-exporter
spec:selector:matchLabels:name: node-exportertemplate:metadata:labels:name: node-exporterspec:hostPID: true # 使用主机的PIDhostIPC: true # 使用主机的IPChostNetwork: true # 使用主机的网络containers:- name: node-exporterimage: prom/node-exporter:v0.16.0ports:- containerPort: 9100resources:requests:cpu: 0.15securityContext:privileged: trueargs:- --path.procfs- /host/proc- --path.sysfs- /host/sys- --collector.filesystem.ignored-mount-points- '"^/(sys|proc|dev|host|etc)($|/)"'volumeMounts:- name: devmountPath: /host/dev- name: procmountPath: /host/proc- name: sysmountPath: /host/sys- name: rootfsmountPath: /rootfstolerations:- key: "node-role.kubernetes.io/master"operator: "Exists"effect: "NoSchedule"volumes:- name: prochostPath:path: /proc- name: devhostPath:path: /dev- name: syshostPath:path: /sys- name: rootfshostPath:path: /
在k8s集群的master1节点操作
kubectl create ns monitor-sa
kubectl apply -f node-export.yaml
kubectl get pods -n monitor-sa
查看创建的node-exporter
浏览器访问:
命令行查看服务器负载指标采集
参考文章:
Prometheus监控实战之node_exporter详解_node-exporter-CSDN博客
Prometheus监控实战之node_exporter详解_node-exporter-CSDN博客
相关文章:
【Prometheus】k8s集群部署node-exporter
目录 一、概述 1.1 prometheus简介 1.2 prometheus架构图 1.3 Exporter介绍 1.4 监控指标 1.5 参数定义 1.6 默认启用的参数 1.7 prometheus如何收集k8s/服务的–三种方式收集 二、安装node-exporter组件 【Prometheus】概念和工作原理介绍-CSDN博客 【云原生】ku…...
2024年k8s最新版本安装教程
k8s安装教程 1 k8s介绍2 环境搭建2.1 主机准备2.2 主机初始化2.2.1 安装wget2.2.2 更换yum源2.2.3 常用软件安装2.2.4 关闭防火墙2.2.5 关闭selinux2.2.6 关闭 swap2.2.7 同步时间2.2.8 修改Linux内核参数2.2.9 配置ipvs功能 2.3 容器安装2.3.1 设置软件yum源2.3.2 安装docker软…...
Gin 获取请求参数
POST 请求参数 Gin 获取Post请求URL参数有三种方式 func (c *Context) PostForm(key string) string func (c *Context) DefaultPostForm(key, defaultValue string) string func (c *Context) GetPostForm(key string) (string, bool)大多数情况下使用的是application/x-www…...
安卓 Kotlin 面试题 31-40
🔥 31、简述Kotlin 中的内联类,我们什么时候需要?🔥 有时,业务逻辑需要围绕某种类型创建包装器。 但是,由于额外的堆分配,它会引入运行时开销。 此外,如果包装的类型是原始类型&…...
【洛谷千题详解】P1613 跑路
目录 题目总览 题目描述 输入格式 输出格式 思路分析 AC代码 题目总览 题目描述 小 A 的工作不仅繁琐,更有苛刻的规定,要求小 A 每天早上在 6:00 之前到达公司,否则这个月工资清零。可是小 A 偏偏又有赖床的坏毛病。于是为了保住自己的…...
如何定义resultType和resultMap,它们之间的区别是什么?解释一下<parameterType>的作用和用法。
在MyBatis中,resultType和resultMap都用于将数据库查询结果映射到Java对象,但它们在使用方式和灵活性上有一些区别。 resultType resultType是一个简单的类型别名,它用于指定查询结果应该映射到的Java类型。当数据库表中的列名和Java对象的属…...
Docker:部署微服务集群
1. 部署微服务集群 实现思路: ① 查看课前资料提供的cloud-demo文件夹,里面已经编写好了docker-compose文件 ② 修改自己的cloud-demo项目,将数据库、nacos地址都命名为docker-compose中的服务名 ③ 使用maven打包工具,将项目…...
傅里叶变换pytorch使用
参考视频:1 傅里叶变换原理_哔哩哔哩_bilibili 傅里叶变换是干嘛的: 傅里叶得到低频、高频信息,针对低频、高频处理能够实现不同的目的。 傅里叶过程是可逆的,图像经过傅里叶变换、逆傅里叶变换后,能够恢复到原始图像…...
LeetCode104 二叉树的最大深度
题目 给定一个二叉树 root ,返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3示例 2: 输入:root [1,null,…...
使用Spring的AOP
使用Spring的AOP 一、AOP 的常用注解1.切面类Aspect2.Pointcut3.前置通知Before4.后置通知AfterReturning5.环绕通知Around6.异常通知AfterThrowing7.最终通知After8.切面顺序Order9.启用自动代理EnableAspectJAutoProxy 二、AOP注解方式开发三、AOP 全注解开发四、基于XML配置…...
爬虫之矛---JavaScript基石篇3<JavaScript构造函数的内部机制和应用(2)>
前言: 继续上一篇https://blog.csdn.net/m0_56758840/article/details/136592611 正文: 1.ES6中的类和构造函数的对应关系 A. 介绍ES6引入的类的概念和语法糖 类的概念: ES6引入了类(class)的概念,类是一种抽象的数据类型&…...
_note_05
1.说一说什么是函数重载? 函数签名相同除了 形参不同数据类型 函数签名相同除了 形参不同个数 2.void关键字的作用?返回值是void ,可以写return 吗? 函数无返回,使用void修饰; 可以只使用return使函数结束; 3.按要…...
将格蠹GDK8的cmake3.10升级为cmake3.15
#升级过程# 1、wget https://cmake.org/files/v3.15/cmake-3.15.0-rc1.tar.gz 2、tar -zxvf cmake-3.15.0-rc1.tar.gz 3 、cd cmake-3.15.0-rc1 4、./configure 5、sudo make install 6、reboot 7、查看cmake版本: geduergdk8:~$ cmake --version cmake ve…...
b树(一篇文章带你 理解 )
目录 一、引言 二、B树的基本定义 三、B树的性质与操作 1 查找操作 2 插入操作 3 删除操作 四、B树的应用场景 1 数据库索引 2 文件系统 3 网络路由表 五、哪些数据库系统不使用B树进行索引 1 列式数据库 2 图形数据库 3 内存数据库 4 NoSQL数据库 5 分布式数据…...
OD_2024_C卷_200分_7、5G网络建设【JAVA】【最小生成树】
package odjava;import java.util.Scanner;public class 七_5G网络建设 {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt(); // 基站数量(节点数)int m sc.nextInt(); // 基站对数量(边数&…...
面试题:分布式锁用了 Redis 的什么数据结构
在使用 Redis 实现分布式锁时,通常使用 Redis 的字符串(String)。Redis 的字符串是最基本的数据类型,一个键对应一个值,它能够存储任何形式的字符串,包括二进制数据。字符串类型的值最多可以是 512MB。 Re…...
【学习心得】websocket协议简介并与http协议对比
一、轮询和长轮询 在websocket协议出现之前,要想实现服务器和客户端的双向持久通信采取的是Ajax轮询。它的原理是每隔一段时间客户端就给服务器发送请求找服务器要数据。 让我们通过一个生活化的比喻来解释轮询和长轮询假设你正在与一位不怎么主动说话的老大爷&…...
基于Token的身份验证:安全与效率的结合
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
Electron程序如何在MacOS下获取相册访问权限
1.通过entitiment.plist,在electron-builder签名打包时,给app包打上签名。最后可以通过codesign命令进行验证。 TestPhotos.plist electron-builder配置文件中加上刚刚的plist文件。 通过codesign命令验证,若出现这个,则说明成…...
uniapp让输入框保持聚焦状态,不会失去焦点
使用场景:当输入框还有发送按钮的时候,点击发送希望软键盘不消失,还可以继续输入,或者避免因输入图片标签造成的屏闪问题 多次尝试后发现一个很实用的方法,适用input输入框和editor输入框 解决办法:把cli…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...

