前言
环境:centos7.9 grafana 8.3
node_exporter和pushgateway的介绍
采集客户端数据通常由2中做法,一种是在目标主机上安装node_exporter
,Prometheus Server
会周期性的去目标主机上pull拉取数据;另外一种是在目标主机上编写采集脚本,将数据推送给pushgateway
,pushgateway
将数据推送给Prometheus Server
。
node_exporter
和DB_exporter
即可满足大部分中小型企业的,其他种类的数据可以使用pushgateway
来采集>
Prometheus安装node_exporter
#下载地址
wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz
#安装
tar -xcvf node_exporter-1.4.0.linux-amd64.tar.gz -C /usr/local/
cd /usr/local/
[root@master node_exporter-1.4.0.linux-amd64.tar.gz]# ll
total 16540
-rw-r--r--. 1 3434 3434 11357 May 15 2022 LICENSE
-rwxr-xr-x. 1 3434 3434 16900416 May 15 2022 node_exporter
-rw-r--r--. 1 3434 3434 463 May 15 2022 NOTICE
#查看node_exporter命令帮助可知exporter启动的是9100端口
[root@master node_exporter-1.4.0.linux-amd64]# ./node_exporter --help
#启动node_exporter
[root@master node_exporter-1.4.0.linux-amd64]# nohup ./node_exporter &
#端口正常启动
[root@master node_exporter-1.4.0.linux-amd64]# lsof -i:9100
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node_expo 2018921 root 3u IPv6 9287314 0t0 TCP *:bacula-dir (LISTEN)
node_expo 2018921 root 5u IPv6 10152011 0t0 TCP master:bacula-dir->192.168.118.129:37372 (ESTABLISHED)
[root@master node_exporter-1.4.0.linux-amd64]#
查看node_exporter 是否正常采集到了数据
#如下所示,node_exporter已经采集到了很多key-value类型的数据,这些数据就可以在Prometheus server抓取到了
[root@master node_exporter-1.4.0.linux-amd64]# curl 192.168.118.132:9101/metrics | head
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 64761 100 64761 0 0 5339k 0 --:--:-- --:--:-- --:--:-- 5749k
# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 1.9831e-05
go_gc_duration_seconds{quantile="0.25"} 3.8726e-05
go_gc_duration_seconds{quantile="0.5"} 5.731e-05
go_gc_duration_seconds{quantile="0.75"} 9.1344e-05
go_gc_duration_seconds{quantile="1"} 0.006523735
go_gc_duration_seconds_sum 0.558260018
go_gc_duration_seconds_count 1573
# HELP go_goroutines Number of goroutines that currently exist.
[root@master node_exporter-1.4.0.linux-amd64]#
prometheus server 抓取exporter数据
如上所示,我们在目标主机上安装了node_exporter
,node_exporter
已经采集了很多key-value类型的数据,这是就需要Prometheus server
周期性的去pull拉取目标主机上的node_exporter
采集到的数据了;
#进入Prometheus server服务器,进入安装目录
cd /usr/local/prometheus-2.5.0.linux-amd64
vim prometheus.yml #编辑Prometheus的配置文件
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['192.168.118.129:9101']
- job_name: 'node1' #添加一个job,名字自定义
static_configs:
- targets: ['192.168.118.132:9101'] #设置目标主机的node_exporter的ip+端口
#重启prometheus
nohup ./prometheus &
查看Prometheus server是否抓取到数据
打开prometheus
的web页面,http://192.168.118.129:9090/
,输入下面的查询,有数据则说明Prometheus server已经pull 拉取到了目标主机的node_exporter采集的数据:
node_load1{instance="192.168.118.132:9101",job="node1"}