本节讲述 Nightingale 的源码编译方式,分前后端两部分。另外,如果用到告警自愈模块,会用到 ibex 这个模块,本节也会一并讲解 ibex 模块的编译方法。对于 ARM 的处理器,我们没有提供编译好的二进制,大家就要用下面的方法自行编译了。

前端

  1. git clone https://github.com/n9e/fe-v5.git
  2. cd fe-v5
  3. npm install
  4. npm run build

后端

Nightingale 后端采用 Go 语言编写,编译的前置条件就是配置 Go 的开发环境。

配置Go环境

Go官网选择对应的版本下载,我的环境是Linux,选择的go1.17.3.linux-amd64.tar.gz,直接下载到/root目录下了,然后解压缩,即Go的内容都放到了/root/go目录下了。同时准备gopath目录,如下:

  1. cd /root && mkdir -p gopath/src
  2. echo "GOROOT=/root/go" >> .bash_profile
  3. echo "GOPATH=/root/gopath" >> .bash_profile
  4. echo 'export PATH=$GOROOT/bin:$GOPATH/bin:$PATH' >> .bash_profile
  5. source .bash_profile

编译n9e

  1. git clone https://github.com/didi/nightingale.git
  2. # 国内配置一下代理,可以加速编译
  3. export GOPROXY=https://goproxy.cn
  4. # 执行编译
  5. cd nightingale && make

编译完成之后如果生成二进制:n9e,就表示编译成功!想要快速入门Go语言?可以参考GOCN的资料!

编译ibex

如果需要告警自愈能力,夜莺依赖ibex做命令下发执行,ibex的编译和n9e几乎一模一样,如下:

  1. git clone https://gitee.com/cnperl/ibex.git
  2. # 国内配置一下代理,可以加速编译
  3. export GOPROXY=https://goproxy.cn
  4. # 执行编译
  5. cd ibex && make

编译完成之后如果生成二进制:ibex,就表示编译成功!