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

打印 上一主题 下一主题

主题 1031|帖子 1031|积分 3093

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、概述


        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列表点进去查看


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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户云卷云舒

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表