Kibana 源码编译运行 + 打包镜像构建

1,116 阅读1分钟

注:安装依赖、源码运行、打包构建、镜像构建皆在非root用户下进行。

源码部署

# 1 fork 官网源码

# 2 clone 源码,切换到指定的分支
git clone https://github.com/PKC-dev-2020/kibana.git
git tag                         # 查询所有tag
git checkout -b xx-7.7.0 v7.7.0 # 根据tagv7.7.0创建一个xx-7.7.0分支,若直接 git checkout v7.7.0 切换到 v7.7.0 的tag代码,但是不能在此修改
git checkout xx-7.7.0

# 3 创建用户alice
sudo useradd -r -m -s /bin/bash alice   # Kibana执行启动脚本,不建议使用root用户,需创建普通用户
ll /home               # 查看/home文件下是否有新创建的普通用户文件夹
id alice               # 查看用户信息

# 4 安装 nvm ,使用 nvm 管理 nodejs 版本,并使用7.7.0版本指定的nodejs版本
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash      #使用curl命令安装nvm
vim ~/.bashrc           # 查看NVM_DIR,一般情况下路径开头为$HOME,不做修改后退出;
echo $HOME              # 在root下安装的nvm,输出为/root
mv /root/.nvm /usr/local/src # 使普通用户,以simon为例,也能使用nvm命令,将.nvm移至环境变量中
vim ~/.bashrc           # 修改$HOME为/usr/local/src
source ~/.bashrc 
su alice                # 切换为普通用户
nvm                     # 检查nvm是否正常使用
nvm install v10.19.0    # kibanav7.7.0所需使用版本
nvm current             # 查看当前使用版本
nvm use v10.19.0        # 指定使用版本

# 5 安装依赖
su alice                # 切换为普通用户
chown -R alice:alice ./kibana   #进入Kibana文件目录上层,在root用户权限下为创建的普通用户赋予读写权限
yarn kbn bootstrap
yarn cache clean        # 若yarn kbn bootstrap中途报错,执行该命令后再执行yarn kbn bootstrap
yarn kbn clean          # 若切换分支后,先执行该命令,再执行yarn kbn bootstrap

# 6 运行前配置
export NODE_OPTIONS="--max_old_space_size=2048"   # 扩大些内存限制,非必须步骤,看情况
vim config/kibana.yml
	#修改kibana.yml内容如下:
	server.port: 5601              # 可随意修改端口号,除了5603
	server.host: "0.0.0.0"         # 生产环境不建议使用
	elasticsearch.hosts: ["http://localhost:30920"]   # 访问es地址
	i18n.locale: "zh-CN"           # 设置为中文
	xpack.reporting.capture.browser.chromium.disableSandbox: true # 解决报错,Error: Could not close browser client handle!
	xpack.reporting.capture.browser.chromium.proxy.enabled: false # 解决报错,Error: Could not close browser client handle!
	xpack.reporting.enabled: false # 解决报错,Error: Could not close browser client handle!
	#server.basePath: "/app/kibana" # 和代理相关,若不使用代理,不用配置
	#server.rewriteBasePath: false  # 和代理相关,若不使用代理,不用配置
        
# 7 运行
yarn start

# 8 访问
http://ip:5601

打包构建

# 打包(前三步中第二步还是很有必要的,其它两步都是为了节省时间
# 0 进入alice用户下操作
su alice

# 1 将package.json中的build脚本的--all-platforms删除,以节省时间

# 2 修改nodejs下载地址防止下载失败,src/dev/build/tasks/nodejs/node_download_info.js和src/dev/build/tasks/nodejs/node_shasums.ts,分别修改const url = `https://nodejs.org/dist/v${version}/${downloadName}`;和const url = `https://nodejs.org/dist/v${nodeVersion}/SHASUMS256.txt`;

# 3 修改src/dev/build/lib/config.js文件内容const platforms = ['linux'].map(createPlatform);也就是只构建linux系统下的包
yarn build --skip-os-packages #kibana/target目录下产生相应压缩包

镜像构建

# 构建镜像(比较耗时)
su alice
yarn build --docker #构建镜像时是不包含已配置的 kibana.yaml,也就是需要将kibana.yaml内容注释

# 利用构建的新镜像启动
docker run -d --privileged --name kibana \
        -v /etc/localtime:/etc/localtime:ro \
        --link elasticsearch:elasticsearch -p 30561:5601 docker.elastic.co/kibana/kibana:7.7.0-SNAPSHOT
docker exec -it kibana /bin/bash
vi config/kibana.yml # 复制真实的kibana.yaml,因为打包时只能是默认配置

参考

kibana-7.6.3-源码编译-构建踩坑

如有侵权,请联系删除;如有错误,请批评指正。