02-prometheus监控-服务器节点监控node-exporter

一、概述

        prometheus,本身是一个【数据收集】和【数据处理】的工具,如果效果要监控一台服务器物理机,有两种方式,一种是在物理机上部署“node-export”来收集数据上报给prometheus,另一种是“自定义监控”;

        node-exporter,就是将服务器物理机的数据,收集好,不需要运维人员自己配置了,是一个比较简单的监控物理机的组件;

        本节,我们就来讲述node-exporter的使用方式,及prometheus如何来查询数据;

二、被监控节点安装node-exporter

1,准备一台被监控机器

10.0.0.41     prometheus-node41    1c1g20GB

2,上传安装包

给大家准备了安装包在百度云盘

链接:https://pan.baidu.com/s/1es-MFSjp4HNzercDiY-1Cg?pwd=ctk8 
提取码:ctk8

· 创建工作目录

[root@prometheus-node41 ~]# mkdir -pv /node-export/{soft,data,logs}

· 上传解压安装包

[root@prometheus-node41 soft]# rz -E
[root@prometheus-node41 soft]# tar xf node_exporter-1.6.1.linux-amd64.tar.gz 
[root@prometheus-node41 soft]# ll
total 10128
drwxr-xr-x 2 1001 1002       56 Jul 17  2023 node_exporter-1.6.1.linux-amd64
-rw-r--r-- 1 root root 10368103 Nov  8 01:42 node_exporter-1.6.1.linux-amd64.tar.gz

· 创建软连接

[root@prometheus-node41 soft]# ln -sv /node-export/soft/node_exporter-1.6.1.linux-amd64 /node-export/soft/node-exporter

3,配置systemctl启动node-exporter

· 编辑启动文件

[root@prometheus-node41 soft]# cat  /etc/systemd/system/node-exporter.service
[Unit]
Description=xinjizhiwa node-exporter
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target

[Service]
Restart=on-failure
ExecStart=/node-export/soft/node-exporter/node_exporter
ExecReload=/bin/kill -HUP \$MAINPID
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

· 重新加载systemd启动node-exporter

[root@prometheus-node41 soft]# systemctl daemon-reload 
[root@prometheus-node41 soft]# systemctl enable --now node-exporter.service 

· 检测是否启动成功

[root@prometheus-node41 soft]# netstat -tnulp

· 浏览器访问

10.0.0.41:9100

此时,被监控节点的node-exporter部署完毕

三、配置prometheus收集node-exporter采集的数据

1,编辑prometheus配置文件

[root@prometheus-server31 prometheus]# vim /prometheus/soft/prometheus/prometheus.yml 

  #抓取监控的间隔时间,多长时间获取一次数据(生产环境,建议15-30s);
  scrape_interval: 3s
  #多久读一次规则
  evaluation_interval: 15s

#先不解释,之后会讲
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

#先不讲,之后会讲
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

#被监控的配置
scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]
  #另起一个job名称,被监控的主体自定义名称
  - job_name: "node-exporter"
    static_configs:
      #被监控的数据抓取地址;
      - targets: ["10.0.0.41:9100"]

·【job】的配置释义

·【监控地址/目标】的配置释义

2,重新加载prometheus服务

curl -X POST http://10.0.0.31:9090/-/reload

3,刷新prometheus页面

此时,就会看到,新配置的被监控项主体的指标列表;

至此,prometheus收集node-exporter的数据就配置成功;

四、PromeQL语句

        我们现在已经将被监控的服务器的数据采集到了“prometheus”,那么如何操作这些数据呐?

        就涉及到了,prometheus操作数据的语句:【PromeQL

1,了解数据的结构

        想要操作数据,我们需要先知道,数据长什么样子?

· 查看数据

浏览器防备node-exporter,点击【Metrics】

· 数据的结构介绍

点击Metrics之后,就可以看到,node-exporter采集的数据;

数据包含结构:

1,数据类型【TYPE】

2,数据的key { 数据的value }

也就是说,数据是以key{value}的形式,展示的;

至于数据类型,以后再说,现在不着急;

2,PromeQL语句的简单实用

· 查看节点存活监控【up】

up #代表查看所有被监控节点是否存活

1表示存活;

0表示存活;

· 查看监控指标【key{value}】

本次学习,我们查cpu作为案例;

只需要写入“关键词”就会弹出与之相关的所有字段key

筛选我们想要的cpu相关数据;

key { value,value,value }

筛选10s内我们想要的cpu相关数据;

key { value,value,value }[10s]

3,PromeQL的相关函数

· sum求和

将查询出来的数据,求和计算;

sum(key{value})

· increase时间段总增长量

查看1分钟内,空闲率增长量

取时间段内的起始第一个值,和最后一个值的差值,就是increase的计算方式。

increase(node_cpu_seconds_total{instance="10.0.0.41:9100",mode="idle"}[1m])

· by函数分组统计

by函数,跟mysql里面的by分组时一个意思,使用起来也几乎一样。

案例:查询所有节点的cpu空闲率,安装监控节点分组;

sum(node_cpu_seconds_total{cpu="0",mode="idle"})by(instance)

· rate平均增量

案例:查询1分钟之内cpu的空闲值,增长量,按照每秒增长多少,求出这个值。

increase就是时间段内:【最后一个值】 - 【第一个值】

rate就是时间段内:(【最后一个值】 - 【第一个值】)/时间段

rate(node_cpu_seconds_total{cpu="0",mode="idle"}[1m])

· topk函数

就是把求出来的值的列表,取前几位的意思

由于本次学习,没有安装其他的监控机器,所以演示不完善,大家能明白这个意思就行了;

topk(2,rate(node_cpu_seconds_total{mode="idle"}[3m]))

· count函数-统计计数

案例:查询目前有多少个cpu监控模式(mode)

count(node_cpu_seconds_total{cpu="0"})

至此,基本函数,大家就有了初步的了解;

4,PromeQL案例

求cpu的空闲率

sum(【cpu总空闲时间】)/sum(【cpu所有使用时间】)

sum(node_cpu_seconds_total{mode="idle"})/sum(node_cpu_seconds_total)*100

至此,PromeQL的简单了解,就到这了,比较墨迹了,接下来我们先进入下一步学习,在从头回顾一下我们这个PromeQL的不懂的技术点。

五、grafana出图展示数据

1,机器准备

10.0.0.71-grafana   1c1g 20GB

2,安装grafana

本次学习,给大家准备了安装包在百度云盘

链接:https://pan.baidu.com/s/1sMJrz1afPqmaW_dypUXQmA?pwd=sotw 
提取码:sotw

· 上传软件包

[root@grafana71 soft]# rz -E
rz waiting to receive.
[root@grafana71 soft]# ll
total 85616
-rw-r--r-- 1 root root 87670697 Nov  8 01:42 grafana-enterprise-10.0.3-1.x86_64.rpm

· 安装grafana

[root@grafana71 soft]# yum -y localinstall grafana-enterprise-10.0.3-1.x86_64.rpm

· 启动grafana

[root@grafana71 soft]# systemctl enable --now grafana-server.service

· 检查3000端口是否监听

[root@grafana71 soft]# netstat -tnulp

3,浏览器访问grfana

10.0.0.71:3000

登录:

账号:admin

密码:admin

· 配置数据源

就是获取prometheus的数据

【home】-【adminstration】-【data sources】-【add  data-sources】-【prometheus】

NAME字段,自定义一个数据源名称

server URL ,就是我们prometheus的地址+端口

点击save&test

至此,数据源配置完毕;

· 新建仪表盘

【home】-【dashboards】-【new】-【new  folder】

创建一个新的folder

进入目录后,创建仪表盘

【create  dashboard】

选择数据源

【Add visualization】

选择刚刚添加的数据源

此时进入到,仪表盘的编辑页面;

· 创建一个数据展示图

1,测试代码

第一步,测试代码,就是计算一个cpu使用率的PromeQL代码;

测试没问题,就复制;

2,写入grafana图形

(1-sum(node_cpu_seconds_total{mode="idle"})/sum(node_cpu_seconds_total))*100

4,下载开源的仪表盘

#grafana官网查询dashboard模板id
https://grafana.com/grafana/dashboards

· 搜索找到想要的仪表盘

· 下载仪表盘

· 上传仪表盘json文件到grafana

【home】-【dashboard】-【new】-【import】

上传json文件

保存

· 回到自己的dashboard列表点进去查看

至此,我们的服务器节点监控,学习完毕。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SqlServer 默认值约束示例

创建表,创建时指定 money 字段默认值为0.00; create table t_24 ( account varchar(19) not null, id_card char(18) not null, name varchar(20) not null, money decimal(16,2) default 0.00 not null ); 录入2条记录,money字…

HTML极速入门

HTML基础 什么是HTML HTML(Hyper Text Markup Language),超文本标记语言. 超文本:比文本更强大.通过链接和交互式方式来组织和呈现信息的文本形式.不仅仅有文本,还可能包括图片,音频,或者自己经审阅过它的学者所加的评注,补充或脚注等. 标记语言:由标签构成的语言 HTML的标…

es6 相关面试题

1 var, let ,const 区别? 2 手写将对象进行合并 手写合并对象 3 普通函数和箭头函数区别? 4 find 和 filter的区别? 5 some和every区别?

ES核心概念(45-48)(56-62)(101-103)

ES集群 ES集群(Cluster)包含多个节点(服务器),整体提供服务 核心概念 索引Index:类似于mysql中的表 映射Mapping:数据的结构信息 文档:相当于表中的一条记录 分片: 将数据分成多片…

java 面试题总结

1锁粗化和锁消除&#xff0c;锁膨胀和锁升级的区别。 https://www.cnblogs.com/xuxinstyle/p/13387778.html .无锁 < 偏向锁 < 轻量级锁 < 重量级锁 &#xff0c;说的时候不要忘记说无锁状态 2.Map 的实现&#xff0c;线程安全的实现 1、ConcurrentHashMap在JDK 1.7…

第五套CCF信息学奥赛c++练习题 CSP-J认证初级组 中小学信奥赛入门组初赛考前模拟冲刺题(阅读程序题)

第五套中小学信息学奥赛CSP-J考前冲刺题 二、阅读程序题 (程序输入不超过数组或字符串定义的范围&#xff0c;判断题正确填√错误填X;除特殊说明外&#xff0c;判断题 1.5分&#xff0c;选择题3分&#xff0c;共计40分) 第一题 递归函数 1 #include<iostream> 2 usin…

主要用于工控主板、工业控制器、程序烧录下载器、仿真器、新能源充电桩等众多涉及RS232通讯的产品——D3232

一、应用领域 D3232芯片主要用于工控主板、工业控制器、程序烧录下载器、仿真器、新能源充电桩等众多涉及RS232通讯的产品。 二、基本特性 D3232芯片由两个线路驱动器、两个线路接收器和双电荷泵电路组成&#xff0c;具有HBM>15kV、CDM>2kV的ESD保护能力&#xff0c;并且…

NLP_文本张量表示方法_2(代码示例)

目标 了解什么是文本张量表示及其作用.文本张量表示的几种方法及其实现. 1 文本张量表示 将一段文本使用张量进行表示&#xff0c;其中一般将词汇为表示成向量&#xff0c;称作词向量&#xff0c;再由各个词向量按顺序组成矩阵形成文本表示. ["人生", "该&q…

【力扣 - 盛最多水的容器】

题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容…

【源码】imx6ull实现触摸屏单点实验-移植tslib和qt

一、本实验实验的器材&#xff1a; 1.正点原子imx6ull的阿尔法开发板v2.2 2.屏幕ALIENTEK 4.3 RGBLCD 二、实验已经移植好的文件&#xff1a; 仓库代码&#xff1a;https://gitee.com/wangyoujie11/atkboard_-linux_-driver.git 1.文件说明 arm-qt.tar.bz2&#xff1a;移植好的…

笔记本电脑里回收站删除的文件怎么找回来?这几招帮你恢复

在日常使用笔记本电脑的过程中&#xff0c;我们可能会因为不小心或者误操作&#xff0c;将一些重要的文件删除到回收站&#xff0c;甚至可能直接从回收站中清空。面对这种情况&#xff0c;很多人会感到惊慌失措&#xff0c;不知道如何是好。但其实&#xff0c;即使文件从回收站…

TQ15EG开发板教程:创建运行petalinux2019.1

工程网盘链接&#xff1a;https://pan.baidu.com/s/1vFRpzmbifXt7GypU9aKjeg 提取码&#xff1a;0ylh 首先需要使用与petalinux相同版本的vivado创建工程&#xff0c;与之前不同的是在创建硬件设计时需要勾选上添加bit文件&#xff0c;所以要在生成bit文件之后再创建硬件设计…

如何搭建Nacos集群

1.搭建Nacos集群 众所周知&#xff0c;在实际的工作中&#xff0c;Nacos的生成环境下一定要部署为集群状态 其中包含3个nacos节点&#xff0c;然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。 我们计划的集群结构&#xff1a; 我就直接在本机上开三个Nacos来搭…

Spring(22) Spring中的9种设计模式

目录 一、简单工厂模式&#xff08;Simple Factory&#xff09;二、工厂方法模式&#xff08;Factory Method&#xff09;三、单例模式&#xff08;Singleton&#xff09;四、适配器模式&#xff08;Adapter&#xff09;五、代理模式&#xff08;Proxy&#xff09;七、观察者模…

凌特杯,第二届,数字音频传输。simulink matlab

终于比赛进入了尾声&#xff0c;最为指导老师也是非常的激动。接下来进入了论文写作阶段和视频拍摄阶段。 第二届凌特杯规定的硬件是ADI的Pluto&#xff0c;成本在2k以内&#xff0c;能支持MATLAB&#xff0c;它能够流畅的实时播放接收到的音乐数据&#xff0c;并把数据保存成…

家居EDI:La-Z-Boy EDI 项目案例

家居行业市场规模庞大&#xff0c;总规模稳定增长。随着信息技术的发展以及全球化进程的加快&#xff0c;许多家居行业的老牌企业在全球范围内广泛扩展其供应链体系&#xff0c;产业链较长&#xff0c;从原材料生产供应、生产制造到销售运输&#xff0c;如何高效、准确地处理这…

CH582F核心板入门:RGB灯点亮与蓝牙上报功能实战

文章目录 一、前言二、硬件1.原理图2.实物图3.实物连接图 三、软件1.初始化2.显示部分3.输出部分&#xff08;打印和蓝牙上报&#xff09;4.结果4.1 打印结果4.2 蓝牙上报4.2.1 打开手机蓝牙调试助手&#xff0c;找到ble_test_XXXX4.2.2 点击CONNECT4.2.3 找到Unknown Service服…

STM32(15)USART编程

使用USART实现STM32与电脑之间的通信 中介&#xff1a;USB转TTL模块 闭合总开关&#xff0c;外部时钟才会传输到分频器 c8t6手册里面写了&#xff0c;usart最大支持4.5MHz&#xff0c;所以选10 重映射时记得开启AFIO的时钟

python网络爬虫教程笔记(1)

系列文章目录 文章目录 系列文章目录前言一、爬虫入门1.爬虫是什么&#xff1f;2.爬虫工作原理3.爬虫基本原理4.工作流程5.HTTP请求6.HTTP响应7.HTTP原理&#xff1a;证书传递、验证和数据加密、解密过程解析8.Urllib.request库的使用9.TCP3次握手&#xff0c;4次挥手过程 总结…