prometheus的编译并不难,核心是要将编译环境配置到符合要求的地步,否则就会出现各种错误,而且难以排查。 我们主要需要关心go、npm和nodejs的版本。 以下步骤亲测有效。
使用下面指令升级软件(非必要)
sudo apt update
sudo apt upgrade
升级过后我的系统环境信息如下
cat /proc/version
Linux version 5.15.0-101-generic (buildd@lcy02-amd64-031) (gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #111~20.04.1-Ubuntu SMP Mon Mar 11 15:44:43 UTC 2024
这一步主要是为了展现我的实验环境。
安装各种代码拉取和编译过程中的工具
sudo apt install git
sudo snap install go --classic
sudo apt install nodejs
sudo apt install npm
go version
go version go1.22.1 linux/amd64
node --version
v10.19.0
npm version
{ npm: ‘6.14.4’, ares: ‘1.15.0’, brotli: ‘1.0.7’, cldr: ‘36.1’, http_parser: ‘2.9.3’, icu: ‘66.1’, modules: ‘64’, napi: ‘5’, nghttp2: ‘1.40.0’, node: ‘10.19.0’, openssl: ‘1.1.1f’, tz: ‘2024a’, unicode: ‘13.0’, uv: ‘1.34.2’, v8: ‘6.8.275.32-node.55’, zlib: ‘1.2.11’ }
上述nodejs和npm的版本比较老,需要我们手动升级它们。
sudo npm install -g n
sudo n lts
sudo n prune
重启终端,执行下面指令
npm install -g npm@latest
node --version
v20.12.0
npm version
{ npm: ‘10.5.0’, node: ‘20.12.0’, acorn: ‘8.11.3’, ada: ‘2.7.6’, ares: ‘1.27.0’, base64: ‘0.5.2’, brotli: ‘1.1.0’, cjs_module_lexer: ‘1.2.2’, cldr: ‘44.1’, icu: ‘74.2’, llhttp: ‘8.1.1’, modules: ‘115’, napi: ‘9’, nghttp2: ‘1.60.0’, nghttp3: ‘0.7.0’, ngtcp2: ‘0.8.1’, openssl: ‘3.0.13+quic’, simdutf: ‘4.0.8’, tz: ‘2024a’, undici: ‘5.28.3’, unicode: ‘15.1’, uv: ‘1.46.0’, uvwasi: ‘0.0.20’, v8: ‘11.3.244.8-node.19’, zlib: ‘1.3.0.1-motley-40e35a7’ }
git clone https://github.com/prometheus/prometheus.git
cd prometheus
make build
编译过程比较漫长,需要耐心等待。
./prometheus --config.file=./documentation/examples/prometheus.yml
在浏览器中打开http://localhost:9090 可以看到页面如下,说明编译和运行没有问题。