随着信创工作的推进,越来越多的服务器开始采用龙芯3A5000处理器。作为重要的监控工具,Prometheus系统需要在该架构服务器上可靠运行。但由于目前node_exporter官方尚未提供longarch64架构的原生版本,因此我们只能进行手动编译适配和部署,以满足业务需求。
编译好的node_exporter下载地址:https://pan.quark.cn/s/e09bc874ff4b
为何要到龙芯机器编译
node_exporter底层语言采用Golang,理论如果不涉及cgo,理论上可以通过交叉编译在x86架构环境中完成编译。然而在实际编译过程中,需要先安装prometheus工具链:promu,通过promu去编译node_exporter。promu也需要longarch64架构。具体编译过程暂未细看,最终选择直接在龙芯架构的机器上开展编译工作,这样可以有效避免因编译环境与运行环境不一致可能带来的潜在兼容性问题。这种方式不仅能够确保最终生成的二进制文件与目标运行环境完美适配,同时也简化了编译环境的搭建和调试工作
准备Golang环境
下载地址:龙芯上的Golang
注意:
- 这里是到龙芯开源社区下载Golang安装包。因为从官网下载的go各个版本,在公司龙芯3A 5000+UOS/麒麟V10的系统上,一直没法使用,报错:
段错误(核心已转储)
。 - 截止2025-02-27 ,最新版本为node_exporter :1.9.0,promu:0.17.0。虽然go 1.24.0已发布,建议下载go 1.23.*版本环境。使用1.24.0版本 promu 可能会有warn
配置环境变量:
解压:
tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz
编辑<font style="color:rgb(51, 51, 51);background-color:rgb(250, 252, 253);">/etc/profile</font>
文件,在最后添加
export PATH=$PATH:/usr/local/go/bin
生效:source /etc/profile
下载 node_exporter源码
地址:https://github.com/prometheus/node_exporter
本文直接下载1.9.0源码zip包
由于编译需要安装promu工具链,所以还需要下载promu源码
下载promu源码
地址:https://github.com/prometheus/promu/releases
编译
编译promu
make build
编译node_exporter
进入node_exporter目录
make build
验证:
查看文件信息
file node_exporter
运行node_exporter
./node_exporter
总结
本文记录了在龙芯3A5000架构服务器上手动编译node_exporter的过程,因官方未提供longarch64版本,需在龙芯机器上直接编译以确保兼容性和稳定性。配置Golang环境时使用龙芯社区提供的版本,避免官网版本的兼容性问题。编译前需安装promu工具链,并使用特定版本的promu以避免警告。最终通过编译验证,确保node_exporter可靠运行。
121
评论区