• 性能监测工具-node-export


    1.前言

    无论是做性能测试或是运维等都会用到对服务的监测,最基本的监测是就是对服务器的基本指标监测,比如:cpu、内存、I/O、网络等。这些其实一般系统自带的都有工具,很方便,比如常见的linux系统自带的top工具,windows自带的"poerfmon性能监视器”,但有个特点就是这些工具都只能查看实时数据,无法把数据汇总起来即无法查看历史数据,对回溯问题不是很友好。这也就有了后来专业的监测工具。除了zabbix外,目前比较流行的就是peometheus等组合起来的一套专业工具。今天不做其他介绍,只做客户端的安装时踩的坑及如何处理。

    2.安装环境

    操作系统:CentOS7

    3.前提条件

    • 网络正常,能正常下载。
    • 防火墙已关闭或是已添加对外访问开放的端口

    4.操作步骤

    4.1. 方法一:使用docker安装

    这里需要注意的是docker安装时,docker访问下载库等设置都是正常的。使用此方法是最简单的,使用一行命令就可以完成。这里使用默认常用的端口9100,下载最新的镜像。

    docker run -d -p 9100:9100 --name node-exporter prom/node-exporter:latest
    
    • 1

    4.2. 方法二:直接下载node-export安装包

    4.2.1. 下载解压执行

    node-export下载地址:https://prometheus.io/download/#node_exporter
    在这里插入图片描述
    也可以使用wget命令直接下载到服务器上解压执行即可:

    cd /home #进入到home目录里
    
    wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz    #下载node_export
    
    tar -zxf node_exporter-1.4.0.linux-amd64.tar.gz  #解压到当前目录下
    
    cd node_exporter-1.4.0.linux-amd64  #进入目录
    
    ./node_export && #后台启动node_export
    
    curl http://127.0.0.1:9100/meterics  #查看是否访问,也可以换成安装服务器的ip地址进行访问
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    4.2.2. 配置服务

    可以把node_exporter注册成服务,配置开机启动。

    vim /etc/systemd/system/node_exporter.service   #创建服务文件node_exporter.service
    
    • 1

    添加如下内容:

    Description=Node Exporter
    Wants=network.target
    After=network.target
    
    [Service]
    ExecStart=/home/node_exporter-1.4.0.linux-amd64/node_exporter #node_export可执行文件的地址,即解压安装的执行目录
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    配置开机自启动

    systemctl daemon-reload && systemctl start node_exporter &&systemctl enable node_exporter
    
    • 1

    5.集成到prometheus里

    打开编辑prometheus的配置文件prometheus.yml,在对应的位置添加以下内容:

      - job_name: "node exporter"
        metrics_path: '/metrics'
        scheme: 'http'
        static_configs:
          - targets: ["192.168.40.29:9100"]
    
    • 1
    • 2
    • 3
    • 4
    • 5

    可以在prometheus里的targets查看是否正常

    6.遇到的问题及解决方法

    6.1.docker拉取镜像超时失败

    在这里插入图片描述
    [root@localhost ~]# docker run -d -p 9100:9100 --name node-exporter prom/node-exporter:latest
    Unable to find image ‘prom/node-exporter:latest’ locally
    Trying to pull repository docker.io/prom/node-exporter …
    sha256:4dc469c325388dee18dd0a9e53ea30194abed43abc6330d4ffd6d451727ba3e6: Pulling from docker.io/prom/node-exporter
    50783e0dfb64: Pull complete
    daafb1bca260: Pull complete
    0d36f17aa02f: Downloading 1.33 MB/10.21 MB
    /usr/bin/docker-current: error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/d3/d3e443c987ef405e1be101647873d86b5729c9c47bb1dd1ab59ccb24bc9e322c/data?verify=1668154413-inZiTiKsWuh0rnAfOMzOIS0NSdY%3D: read tcp 192.168.20.240:11850->104.18.121.25:443: read: connection timed out.
    See ‘/usr/bin/docker-current run --help’.

    尝试过的解决办法:

    • 1)修改docker配置文件,在OPTTIONS项中添加“–registry-mirror=http://f2d6cb40.m.daocloud.io”
    [root@iam node_exporter-1.4.0.linux-amd64]# vim /etc/sysconfig/docker
    
    # /etc/sysconfig/docker
    
    # Modify these options if you want to change the way the docker daemon runs
    OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --registry-mirror=http://f2d6cb40.m.daocloud.io'
    if [ -z "${DOCKER_CERT_PATH}" ]; then
        DOCKER_CERT_PATH=/etc/docker
    fi
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 2)在“/etc/docker/daemon.json”添加docker配置
      vim /etc/docker/daemon.json
      
      • 1
      添加如下内容:
      {
       "registry-mirrors": ["https://registry.docker-cn.com","https://nrbewqda.mirror.aliyuncs.com","https://dmmxhzvq.mirror.aliyuncs.com"]
      }
      
      • 1
      • 2
      • 3
      systemctl restart docker #配置完成后重启docker
      
      • 1

    注:尝试了以上两种方法,还是没有拉取成功。以前是可以不知道这次怎么就解决不了。由于使用比较急就换了第二种安装方式正常启动。

    6.2. 配置完成后在本机访问没有问题,其他机器访问不了

    原因:因防火墙给隔离了。关闭防火墙或是添加防火墙端口即可
    关闭防火墙:

    systemctl stop firewall #关闭防火墙
    
    • 1

    如果安装使用的是iptables:
    则可以添加对应端口9100即可

    vim /etc/sysconfig/iptables
    
    • 1

    添加下面内容:

    -A INPUT -p tcp -m state --state NEW -m multiport --dports 9100 -j ACCEPT
    
    • 1

    具体防火墙配置规则请关注后期的文章,改天再整理出一遍详情加实例的说明来,在此就不多说。

    如果您觉得此文对您有帮忙就顺手点个,给予我继续写作下去的精神支持;
    如果您对此文有疑问需要讨论或是解答的问题,请留言,我们一起探讨学习;

  • 相关阅读:
    React中如何在事件处理的时候传参(详解)
    Spring Cloud Gateway 概述与基本配置(上)
    信息学奥赛一本通 1333:【例2-2】Blah数集 | OpenJudge NOI 3.4 2729:Blah数集
    力扣(LeetCode)算法_C++——两个列表的最小索引总和
    产品推荐 - 基于FPGA XC7K325T+DSP TMS320C6678的双目交汇视觉图像处理平台
    对可再生能源和微电网集成研究的新控制技术和保护算法进行基线和测试及静态、时域和频率分析研究(Matlab代码实现)
    C语言实现AES加密算法的示例代码
    Two-stage RO: part 1
    PyTorch 新库 TorchMultimodal 使用说明:将多模态通用模型 FLAVA 扩展到 100 亿参数
    STM32——红外遥控器实验
  • 原文地址:https://blog.csdn.net/sunnygirltest/article/details/127812998