本节讲述 Nightingale 的源码编译方式,分前后端两部分。另外,如果用到告警自愈模块,会用到 ibex 这个模块,本节也会一并讲解 ibex 模块的编译方法。对于 ARM 的处理器,我们没有提供编译好的二进制,大家就要用下面的方法自行编译了。
前端
git clone https://github.com/n9e/fe-v5.git
cd fe-v5
npm install
npm run build
后端
Nightingale 后端采用 Go 语言编写,编译的前置条件就是配置 Go 的开发环境。
配置Go环境
到Go官网选择对应的版本下载,我的环境是Linux,选择的go1.17.3.linux-amd64.tar.gz,直接下载到/root目录下了,然后解压缩,即Go的内容都放到了/root/go目录下了。同时准备gopath目录,如下:
cd /root && mkdir -p gopath/src
echo "GOROOT=/root/go" >> .bash_profile
echo "GOPATH=/root/gopath" >> .bash_profile
echo 'export PATH=$GOROOT/bin:$GOPATH/bin:$PATH' >> .bash_profile
source .bash_profile
编译n9e
git clone https://github.com/didi/nightingale.git
# 国内配置一下代理,可以加速编译
export GOPROXY=https://goproxy.cn
# 执行编译
cd nightingale && make
编译完成之后如果生成二进制:n9e,就表示编译成功!想要快速入门Go语言?可以参考GOCN的资料!
编译ibex
如果需要告警自愈能力,夜莺依赖ibex做命令下发执行,ibex的编译和n9e几乎一模一样,如下:
git clone https://gitee.com/cnperl/ibex.git
# 国内配置一下代理,可以加速编译
export GOPROXY=https://goproxy.cn
# 执行编译
cd ibex && make
编译完成之后如果生成二进制:ibex,就表示编译成功!