Node Exporter 简介

概述


prom-node-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-export由Prometheus官方提供、维护,属于监控指标收集类UNIX内核操作系统的必备的exporter。

功能


node-exporter用于采集类UNIX内核的硬件以及系统指标

Windows系统使用 WMI-exporter

如果是采集NVIDIA的GPU指标,可以使用 prometheus-dcgm

根据不同的类UNIX操作系统,node-exporter采集指标的支持也是不一样的,如:

  • diskstats 支持 Darwin, Linux

  • cpu 支持 Darwin, Dragonfly, FreeBSD, Linux, Solaris等,

GitHub地址:node_exporter

--collectors.enabled 指定node_exporter收集的功能模块

--no-collector 指定不需要的模块

监控节点


Prometheus使用exporter工具来暴露主机和应用程序上的指标,目前有很多可用于各种目的的exporter。现在我们将专注于一个特定的exporter:Node Exporter。

它是用Go语言编写的,提供了一个可用于收集各种主机指标数据(包括CPU、内存和磁盘)的库。它还有一个textfile收集器,允许你导出静态指标,我们很快就会看到这对发送有关节点的信息很有帮助,此外它还可以从批处理作业导出指标。

我们有时会使用术语 节点 来指代主机。 首先选择其中一台Linux 主机,然后下载并安装 Node Exporter 。我们将选择一个 Docker 守护进程主机

配置Node Exporter


可以通过参数来对node_exporter进行配置,使用--help查看完整的参数列表。

你将看到可用参数的列表。默认情况下, node_exporter 在端口 9100 上运行,并在路径 /metrics 上暴 露指标。你可以通过--web.listen-address --web.telemetry-path 参数来设置端口和路径,如下所示:

这会将 node_exporter 绑定到端口 9600 并在路径 /node-metrics 上暴露指标。 这些参数还可以控制启用哪些收集器,许多收集器默认都是启用的 。它们的状态要么是启用要么是禁用,你可以通过使用no- 前缀来修改状态。例如, 暴露/proc/net/arp统计信息的arp收集器默认是 启用的,由参数--collector.arp控制。因此,要禁用此收集器,需要运行如下命令:

配置textfile收集器


我们还想配置一个特定的收集器,即textfile收集器,本章后面将使用它。textfile收集器非常有用,因为它允许我们暴露自定义指标。这些自定义指标可能是批处理或cron作业等无法抓取的,可能是没有exporter的源,甚至可能是为主机提供上下文的静态指标。
收集器通过扫描指定目录中的文件,提取所有格式为 Prometheus 指标的字符串,然后暴露它们以便抓取。
现在让我们设置收集器,首先创建一个目录来保存指标定义文件。

现在在这个目录中创建一个新的指标。刚创建的目录中,指标在以.prom结尾的文件内定义,并且使用Prometheus特定文本格式

启用systemd收集器


这里我们再启用另一个systemd收集器,它记录systemd[1]中的服务和系统状态。这个收集器收集了很多指标,但我们并不想收集systemd管理的所有内容,而只想收集某些关键服务。为了保持简洁,我们可以将特定服务列入白名单,只收集以下服务的指标:
  • docker.service
  • ssh.service
  • rsyslog.service

 它们是Docker守护进程、SSH守护进程和RSyslog守护进程。使用--collector.systemd.unit-whitelist参数进行配置,它会匹配systemd的正则表达式。

运行Node Exporter


最后,可以在其中一个Docker节点上启动node_exporter,如下所示:

                                       启动 Node Exporter 启用textfile收集器和systemd收集器

我们已经为textfile 收集器指定了目录以查找指标,然后启用了 systemd 收集器,并使用正则表达式 白名单过滤待监控的服务。
现在 Node Exporter 正在其中一个 Docker 节点上运行,让我们将其添加到其他节点。总共有 3 个节点,现在使用相同的策略来配置其他两个节点。每个节点的名称和IP 地址是:
  • Docker1138.197.26.39
  • Docker2138.197.30.147
  • Docker3138.197.30.163
现在让我们看看如何抓取刚刚导出的时间序列数据。

抓取Node Exporter


回到Prometheus服务器,让我们配置一个新作业来抓取Node Exporter导出的数据。查看当前prometheus.yml文件和抓取配置中的scrape_configs部分。
                                                                                                                           当前 Prometheus 抓取配置

要获取新数据,需要为配置添加另一个作业。我们打算给新作业起名为 node,并将继续使用static_configs来添加单个目标,而不是使用服务发现。现在让我们添加新作业。
                                                                                                                                                  添加新作业
可以看到我们添加了名为 node 的新作业。它包含一个 static_configs 块,通过 IP 地址加端口 9100 的方式添加了三个Docker 主机的列表。 Prometheus 假设 Node Exporter 具有默认路径 /metrics ,并且抓取的目
标形式如下:

如果现在使用SIGHUP或重新启动Prometheus服务器,那么我们的配置将被重新加载,并且服务器也会开始抓取。我们很快就会看到时间序列数据开始流入Prometheus服务器。

过滤收集器


Node Exporter可以返回很多指标,也许 你并不想把它们全部收集上来除了通过本地配置来控制Node Exporter在本地运行哪些收集器之外,Prometheus还提供了一种方式来限制收集器从服务器端实际抓取的数据,尤其是在你无法控制正抓取的主机的配置时,这种方式非常有帮助。
Prometheus 通过添加特定收集器列表来实现作业配置
                                                                                                                                                                             过滤收集器

  - job_name: 'BJ Linux Server'
    basic_auth:
      username: prometheus
      password: 123456
    static_configs:
    - targets: ['192.168.179.99:9100','192.168.179.100:9100']
      labels:
        idc: tongniu
        project: www
    params:
      collect[]:
        - cpu

 这里,我们将被抓取的指标限制在上面的收集器列表中,使用params块中的collect[]列表指定,然后将它们作为URL参数传递给抓取请求。你可以使用Node Exporter实例上的curl命令来对此进行测试。

    - job_name: 'kubernetes-node-exporter'
      kubernetes_sd_configs:
      - role: node
      relabel_configs:
      - source_labels: [__address__]
        regex: '(.*):10250'
        replacement: '${1}:9100'
        target_label: __address__
        action: replace
      - action: labelmap
        regex: __meta_kubernetes_node_label_(.+)
      params:
        collect[]:
        - cpu

                                                                                                                                                                                                                    测试收集参数

这将返回 Node Exporter 基本指标, 例如我们在Prometheus服务器上看到的Go指标,以及CPU收集器生成的指标,所有其他指标都将被忽略。 就目前而言,我们会收集Prometheus 服务器上的所有内容。
  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要安装 Prometheus Node Exporter,可以按照以下步骤进行操作: 1. 首先,从 Prometheus 的官方网站下载 Node Exporter 的二进制文件。选择适合您系统的版本,比如Linux的amd64版本。下载地址:https://prometheus.io/download/#node_exporter 2. 解压文件到一个目录中,比如 `/opt/node_exporter`: ``` tar -xvf node_exporter-1.2.1.linux-amd64.tar.gz -C /opt/node_exporter/ ``` 3. 进入目录,并查看文件是否正确解压: ``` cd /opt/node_exporter/ ls -l ``` 4. 创建一个用户以运行 Node Exporter: ``` sudo useradd --no-create-home --shell /bin/false node_exporter ``` 5. 更改文件权限,使得该用户可以访问 Node Exporter: ``` sudo chown node_exporter:node_exporter /opt/node_exporter ``` 6. 启动 Node Exporter: ``` sudo -u node_exporter /opt/node_exporter/node_exporter ``` 7. 可以通过浏览器访问 `http://your-server-ip:9100/metrics` 来检查 Node Exporter 是否正在运行。如果一切正常,您应该能够看到一个包含各种指标的文本输出。 8. 将 Node Exporter 添加到 Prometheus 的配置文件中。打开 Prometheus 的配置文件(通常是 `/etc/prometheus/prometheus.yml`),并添加以下行: ``` - job_name: 'node_exporter' scrape_interval: 5s static_configs: - targets: ['your-server-ip:9100'] ``` 9. 重新启动 Prometheus 服务,使配置生效: ``` sudo systemctl restart prometheus ``` 现在,您已经成功安装了 Prometheus Node Exporter,并将其添加到 Prometheus 的监控配置中,可以使用 Prometheus 监控服务器的各种指标了。 ### 回答2: 要安装 PrometheusNode Exporter,可以按照以下步骤进行操作: 1. 首先,确保已经安装了 Node.js 运行环境。如果未安装,请先安装 Node.js。 2. 在要安装 Node Exporter 的服务器上创建一个新的目录,比如 /opt/node_exporter。 3. 切换到该目录,并使用以下命令从 Github 下载 Node Exporter 的安装包: ``` $ git clone https://github.com/prometheus/node_exporter.git ``` 4. 进入下载的目录: ``` $ cd node_exporter ``` 5. 安装 Node Exporter 的依赖包。在该目录下运行以下命令: ``` $ npm install ``` 6. 安装完成后,可以通过以下命令启动 Node Exporter: ``` $ node index.js ``` Node Exporter 将会在默认端口 9100 上运行。 7. 在浏览器中输入服务器的 IP 地址和端口号,例如 http://服务器IP地址:9100。这将显示 Node Exporter 的实时指标。 8. 如果需要将 Node Exporter 添加到 Prometheus 的监控配置中,可以按照 Prometheus 配置文件的格式将 Node Exporter 的 IP 地址和端口添加到 Prometheus 的配置文件中。例如: ``` scrape_configs: - job_name: 'node_exporter' static_configs: - targets: ['Node_Exporter的IP地址:9100'] ``` 以上就是安装 PrometheusNode Exporter 的步骤。安装完成后,您将能够使用 Prometheus 监控服务器上的各种系统指标。 ### 回答3: 要安装 PrometheusNode Exporter,可以按照以下步骤进行操作: 1. 首先,确保您的操作系统上已经安装了 Prometheus。可以从 Prometheus 官方网站下载适用于您的操作系统的最新版本。 2. 在 Prometheus 的安装目录中,找到 `prometheus.yml` 配置文件,并编辑它。 3. 在 `prometheus.yml` 文件中,添加以下内容来配置 Node Exporter 的监控目标: ```yaml scrape_configs: - job_name: 'node_exporter' static_configs: - targets: ['localhost:9100'] ``` 这个配置指定了 Node Exporter 的默认地址和端口(localhost 的 9100 端口)作为监控目标。 4. 保存并关闭 `prometheus.yml` 文件。 5. 下载 Node Exporter 软件包。您可以从 Prometheus 官方网站上找到适用于您的操作系统的最新版本。 6. 将下载的 Node Exporter 软件包解压到您选择的目录中。 7. 在解压后的目录中,找到 Node Exporter 的可执行文件。 8. 在命令行界面中,使用管理员权限运行 Node Exporter。 9. 确保 Node Exporter 正在运行,并且没有出现任何错误。 10. 打开浏览器,输入 `localhost:9100/metrics` 地址来访问 Node Exporter 的指标页面。如果一切都设置正确,您将能够看到 Node Exporter 提供的监控指标。 11. 最后,在 Prometheus 的界面中,定期从 Node Exporter 获取指标数据,以便进行监控和可视化。 请注意,上述步骤仅为一种安装 Node Exporter 的方法,具体步骤可能会因您的操作系统和环境而有所不同。建议您查阅官方文档和指南,以确保正确安装和配置 Node Exporter
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值