首先从GitHub上拉取node_exporter源码
go get github.com/prometheus/node_exporter
在拉取过程中一般会出错,主要是由于golang官网被墙导致golang的有些工具库拉取不下来
如果不知道GitHub的工具库地址是什么,可以通过 https://pkg.go.dev/ 网站来找
golang.org/x 工具库的拉取不下来可以直接去GitHub上拉取相关源码
https://github.com/golang 下面都是x目录
例如拉取golang.org/x/net工具库:
$mkdir -p $GOPATH/src/golang.org/x/
$cd $GOPATH/src/golang.org/x/
$git clone https://github.com/golang/net.git
一般如上工具库拉取完整后, 再执行 go get的node_exporter成功获取
go get github.com/prometheus/node_exporter
cd ${GOPATH-$HOME/go}/src/github.com/prometheus/node_exporter
make
执行make命令进行编译(前提环境上要有make命令,没有则下载)
我编译的时候遇到如下问题:
拉取不到 github.com/alecthomas/units库
更换go的GOPROXY环境变量
网上找了个能用的代理地址:https://goproxy.cn
执行命令:
go env -w GOPROXY=https://goproxy.cn
后再执行make,成功
(可能遇到的两个坑,一个是操作系统如果是RHEL/CentOS: 需要 安装 glibc-static
package.
一个是内存要大于2G,不然经常报 out of memory 内存不足)