kibana源码编译

news2025/1/19 3:06:19

一、安装nodejs16.14.2及yarn

(一)nodejs

1、下载

https://cdn.npmmirror.com/binaries/node/v16.14.2/node-v16.14.2-linux-x64.tar.gz

2、解压

tar -zxf node-v16.14.2-linux-x64.tar.gz -C /app
cd /app
mv node-v16.14.2-linux-x64 node

3、配置环境变量

vim /etc/profile

在最后添加如下内容:

export NODE_HOME=/app/node
#export JAVA_HOME=/app/jdk

export PATH=$NODE_HOME/bin:$PATH
#export PATH=$NODE_HOME/bin:$JAVA_HOME/bin:$PATH

使环境变量生效:

source /etc/profile

4、验证

[root@localhost kibana]# node -v
v16.14.2
[root@localhost kibana]# npm -v
8.5.0
[root@localhost kibana]# gem -v
3.0.9

5、配置国内源

# 设置淘宝源
npm config set registry https://registry.npmmirror.com
npm config set puppeteer_download_host=https://registry.npmmirror.com
# 取消ssl证书验证
npm config set strict-ssl false

(二)yarn

1、安装

npm install -g yarn

2、验证

[root@localhost kibana]# yarn -v
1.22.21

3、配置国内源

# 设置淘宝源
yarn config set registry https://registry.npmmirror.com
# 设置浏览器驱动下载地址
yarn config set "chromedriver_cdnurl" "https://npm.taobao.org/mirrors/chromedriver"

二、安装ruby

安装ruby的话,尽量安装2.4以上的版本,因为后面安装fpm的时候对此有要求。

#1. 离线安装 rvm:
# rvm 是用来管理 ruby 的,而 ruby 的其中一个“程序”叫 rubygems,也就是我们用它装 fpm 的,手动装各种库用 gem。
[root@nginx01 ~]# curl -sSL https://github.com/rvm/rvm/tarball/stable -o rvm-stable.tar.gz
 
#2. 解压 rvm 包:
[root@nginx01 ~]# tar -xzvf rvm-stable.tar.gz
 
#3. 进入解压目录,安装 rvm:
[root@nginx01 ~]# cd rvm-rvm-6bfc921/
[root@nginx01 rvm-rvm-6bfc921]# ./install --auto-dotfiles
 
#4. 重新加载 rvm:
[root@nginx01 rvm-rvm-6bfc921]# source /usr/local/rvm/scripts/rvm
 
#5. 查看 rvm 可安装版本:
[root@nginx01 rvm-rvm-6bfc921]# rvm list known
 
#6. 选择安装 ruby 2.6.3:
# 下载安装过程比较慢,请耐心等待
[root@nginx01 rvm-rvm-6bfc921]# rvm install 2.6.3
 
#7. 设置默认使用 ruby 版本:
[root@nginx01 rvm-rvm-6bfc921]# rvm use 2.6.3 --default
Using /usr/local/rvm/gems/ruby-2.6.3
[root@nginx01 rvm-rvm-6bfc921]# ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

三、安装其他依赖包

rpm-build、fpm主要是打包成rpm\deb等类型的包使用的

yum install rpm-build gcc-c++ make git
gem install fpm -v 1.5.0

四、安装上网工具

科学上网工具,我选择的是redsock,其他的不太好用

  1. 安装libevent
yum install libevent libevent-devel -y

2、安装配置redsocks

git clone https://github.com/darkk/redsocks.git
cd redsocks/
make
echo 'base {
    log_debug = on;
    log_info = on;
    log = "file:/tmp/reddi.log";
    daemon = on;
    redirector = iptables;
}
redsocks {
    local_ip = 127.0.0.1;
    local_port = 2080;
    ip = 192.168.2.3;
    port = 7890;
    type = socks5;
}' > redsocks.conf

注意: 替换ip = 192.168.2.3;port = 7890;ip为你的宿主机的Window系统的IP,port为Windows的科学上网工具的端口,我的上网工具配置如下:

在这里插入图片描述

3、安装配置iptables

yum install -y iptables iptables-services

echo '#!/bin/bash
# Create new chain
iptables -t nat -N REDSOCKS
# Ignore LANs and some other reserved addresses.
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
#iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
# Anything else should be redirected to port 2080
-A REDSOCKS -d proxy_server_ip -j RETURN
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 2080
iptables -t nat -A OUTPUT -p tcp --dport 443 -j REDSOCKS
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDSOCKS
iptables -t nat -A OUTPUT -p tcp --dport 8503 -j REDSOCKS' > iptables-proxy-start.sh

echo 'iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
killall redsocks' > iptables-proxy-stop.sh

8503为测试的出口地址,比如代收的110,143端口。

4、启动

systemctl start iptables
./redsocks -c redsocks.conf
sh iptables-proxy-start.sh

五、编译kibana

1、拉取代码,代码很大,大概6~10G

git clone -b v7.17.5 https://github.com/elastic/kibana.git

2、开始下载依赖并编译

cd kibana
yarn kbn bootstrap
# 执行上面这一步的时候会出现各种报错,诸如下载chrome_driver失败、安装geco,可以手动安装这些报错的包,如下:
# npm install -g chromedriver
# npm install -g geckodriver
npx browserslist@latest --update-db

3、开始打包

打包之前先了解一下打包命令的可选参数:

[root@localhost kibana]# yarn build --help
yarn run v1.22.21
$ node scripts/build --all-platforms --help
usage: node scripts/build

build the Kibana distributable

options:
  --skip-archives                     Don't produce tar/zip archives #--跳过存档不生成tar/zip存档
  --skip-os-packages                  Don't produce rpm/deb/docker packages # --跳过操作系统包不要生成rpm/deb/docker包
  --all-platforms                     Produce archives for all platforms, not just this one # --所有平台为所有平台生成存档,而不仅仅是这一个
  --rpm                               Only build the rpm packages #--rpm仅构建rpm包
  --deb                               Only build the deb packages #--deb只构建deb包
  --docker-images                     Only build the Docker images #--docker镜像仅构建docker镜像
  --docker-context-use-local-artifact Use a local artifact when building the Docker context # --docker上下文使用本地工件构建docker上下文时使用本地工件
  --docker-cross-compile              Produce arm64 and amd64 Docker images #--docker交叉编译生成arm64和amd64 docker镜像
  --docker-contexts                   Only build the Docker build contexts #--docker上下文仅构建docker构建上下文
  --skip-docker-ubi                   Don't build the docker ubi image #--跳过docker ubi不要构建docker ubiimage
  --skip-docker-ubuntu                Don't build the docker ubuntu image #--跳过docker ubuntu不要构建docker ubntu镜像
  --release                           Produce a release-ready distributable #--release生成可发布的版本
  --version-qualifier                 Suffix version with a qualifier  #--版本限定符用限定符后缀版本
  --skip-node-download                Reuse existing downloads of node.js #--跳过nodejs下载,重用node.js的现有下载
  --verbose,-v                        Turn on verbose logging #--verbose,-v打开详细日志记录
  --no-debug                          Turn off debug logging #--无调试关闭调试日志记录

经过我的多次尝试,我们只需要打包成”生成可发布的版本“即可,也就是ELK官网上可下载的版本,其他版本直接跳过,命令如下:

[root@localhost kibana]# yarn build --release --skip-os-packages --skip-docker-ubi --skip-docker-ubuntu 
yarn run v1.22.21
$ node scripts/build --all-platforms --release --skip-os-packages --skip-docker-ubi --skip-docker-ubuntu
 info [  global  ] Verifying environment meets requirements
   │ succ Node.js version verified
   │ succ ✓ 0 sec

 info [  global  ] Cleaning artifacts from previous builds
   │ debg Deleting patterns: ['/usr/local/src/kibana/build',
   │        '/usr/local/src/kibana/target',
   │        '/usr/local/src/kibana/.node_binaries']
   │ debg Deleted 3 files/directories
   │ succ ✓ 9 sec

 info [  global  ] Downloading node.js builds for all platforms
   │ debg Downloading shasum values for node version 16.14.2 from https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/dist/v16.14.2/SHASUMS256.txt

......中间过程省略......
......中间过程省略......
......中间过程省略......

info [  kibana  ] Creating the archives for each platform
   │ info archiving /usr/local/src/kibana/build/default/kibana-7.17.5-linux-x86_64 to /usr/local/src/kibana/target/kibana-7.17.5-linux-x86_64.tar.gz
   │ info archiving /usr/local/src/kibana/build/default/kibana-7.17.5-linux-aarch64 to /usr/local/src/kibana/target/kibana-7.17.5-linux-aarch64.tar.gz
   │ info archiving /usr/local/src/kibana/build/default/kibana-7.17.5-darwin-x86_64 to /usr/local/src/kibana/target/kibana-7.17.5-darwin-x86_64.tar.gz
   │ info archiving /usr/local/src/kibana/build/default/kibana-7.17.5-darwin-aarch64 to /usr/local/src/kibana/target/kibana-7.17.5-darwin-aarch64.tar.gz
   │ info archiving /usr/local/src/kibana/build/default/kibana-7.17.5-windows-x86_64 to /usr/local/src/kibana/target/kibana-7.17.5-windows-x86_64.zip
   │ debg archive metrics: [{ group: 'distributable size', id: 'tar', value: 263798754 },
   │        { group: 'distributable file count', id: 'default', value: 37747 },
   │        { group: 'distributable size', id: 'tar', value: 277017617 },
   │        { group: 'distributable file count', id: 'default', value: 37747 },
   │        { group: 'distributable size', id: 'tar', value: 256355436 },
   │        { group: 'distributable file count', id: 'default', value: 37749 },
   │        { group: 'distributable size', id: 'tar', value: 192526999 },
   │        { group: 'distributable file count', id: 'default', value: 37745 },
   │        { group: 'distributable size', id: 'zip', value: 375647041 },
   │        { group: 'distributable file count', id: 'default', value: 37326 }]
   │ succ ✓ 4 min 26 sec

 info [  kibana  ] Creating Docker build contexts
   │ info Generating kibana docker build context bundle
   │ info Generating kibana-ubi8 docker build context bundle
   │ info Generating kibana-ironbank docker build context bundle
   │ info Generating kibana-cloud docker build context bundle
   │ succ ✓ 0 sec

 info [  global  ] Writing sha1sums of archives and packages in target directory
   │ succ ✓ 3 sec

Done in 1301.40s.

以上就打包完成了,耗费时间很长。

打包好的安装包如下:

[root@localhost kibana]#  ll target/
总用量 1335092
-rw-r--r-- 1 root root 192528483 33 10:56 kibana-7.17.5-darwin-aarch64.tar.gz
-rw-r--r-- 1 root root       164 33 10:57 kibana-7.17.5-darwin-aarch64.tar.gz.sha512.txt
-rw-r--r-- 1 root root 256355606 33 10:55 kibana-7.17.5-darwin-x86_64.tar.gz
-rw-r--r-- 1 root root       163 33 10:57 kibana-7.17.5-darwin-x86_64.tar.gz.sha512.txt
-rw-r--r-- 1 root root      6480 33 10:57 kibana-7.17.5-docker-build-context.tar.gz
-rw-r--r-- 1 root root       170 33 10:57 kibana-7.17.5-docker-build-context.tar.gz.sha512.txt
-rw-r--r-- 1 root root 277017459 33 10:54 kibana-7.17.5-linux-aarch64.tar.gz
-rw-r--r-- 1 root root       163 33 10:57 kibana-7.17.5-linux-aarch64.tar.gz.sha512.txt
-rw-r--r-- 1 root root 263799071 33 10:53 kibana-7.17.5-linux-x86_64.tar.gz
-rw-r--r-- 1 root root       162 33 10:57 kibana-7.17.5-linux-x86_64.tar.gz.sha512.txt
-rw-r--r-- 1 root root 377276328 33 10:57 kibana-7.17.5-windows-x86_64.zip
-rw-r--r-- 1 root root       161 33 10:57 kibana-7.17.5-windows-x86_64.zip.sha512.txt
-rw-r--r-- 1 root root      6417 33 10:57 kibana-cloud-7.17.5-docker-build-context.tar.gz
-rw-r--r-- 1 root root       176 33 10:57 kibana-cloud-7.17.5-docker-build-context.tar.gz.sha512.txt
-rw-r--r-- 1 root root      8805 33 10:57 kibana-ironbank-7.17.5-docker-build-context.tar.gz
-rw-r--r-- 1 root root       179 33 10:57 kibana-ironbank-7.17.5-docker-build-context.tar.gz.sha512.txt
-rw-r--r-- 1 root root      6525 33 10:57 kibana-ubi8-7.17.5-docker-build-context.tar.gz
-rw-r--r-- 1 root root       175 33 10:57 kibana-ubi8-7.17.5-docker-build-context.tar.gz.sha512.txt
-rw-r--r-- 1 root root     65666 33 10:48 optimizer_bundle_metrics.json

月 3 10:57 kibana-ironbank-7.17.5-docker-build-context.tar.gz.sha512.txt
-rw-r–r-- 1 root root 6525 3月 3 10:57 kibana-ubi8-7.17.5-docker-build-context.tar.gz
-rw-r–r-- 1 root root 175 3月 3 10:57 kibana-ubi8-7.17.5-docker-build-context.tar.gz.sha512.txt
-rw-r–r-- 1 root root 65666 3月 3 10:48 optimizer_bundle_metrics.json


如果需要制作docker容器镜像,还需要安装docker命令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1602951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redmibook 14 2020 安装 ubuntu

1. 参考博客 # Ubuntu20.10系统安装 -- 小米redmibook pro14 https://zhuanlan.zhihu.com/p/616543561# ubuntu18.04 wifi 问题 https://blog.csdn.net/u012748494/article/details/105421656/# 笔记本电脑安装了Ubuntu系统设置关盖/合盖不挂起/不睡眠 https://blog.csdn.net/…

运动想象 (MI) 分类学习系列 (7) :CMO-CNN

运动想象分类学习系列:CMO-CNN 0. 引言1. 主要贡献2. 提出的算法3. 数据增强策略4. 结果4.1 学科内分类4.2 跨学科分类4.3 数据增强策略4.4 网络可视化4.4.1 短连接可视化4.4.2 滤波器可视化4.4.3 中间特征的可视化 5. 总结欢迎来稿 论文地址:https://www.sciencedi…

Vue3(六):Vue3其他API、Vue3新组件Teleport、Vue2和3区别

一、其他API 1.shallowRef 与 shallowReactive (1)shallowRef 1. 作用:创建一个响应式数据,但只对顶层属性进行响应式处理。 2.用法: let myVar shallowRef(initialValue); 3. 特点:只跟踪引用值的变化&…

C语言学习/复习22----阶段测评编程题

一、阶段测评练习 题1: 题2:

【生成式 AI 精英速成计划】了解如何使用大模型平台、训练与部署以及如何打造生成式AI应用

目录 一、生成式 AI 带来的新挑战二、生成式 AI 精英速成计划三、技术开发技能课程体验最后 一、生成式 AI 带来的新挑战 随着计算能力的飞速提升和大数据技术的广泛应用,生成式AI得以取得显著进展,特别是在深度学习的推动下,机器能够生成前…

Windows系统下查看C语言文件反汇编

一、配置编译器环境变量 1.下载mingw64 MinGW 的全称是:Minimalist GNU on Windows ,MinGW 就是 GCC 的 Windows 版本 。 MinGW-w64 与 MinGW 的区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成 64位 或 32位 可执行…

MFC下CPictureCtrl控件基于鼠标左键坐标的直线绘图

本文仅供学习交流,严禁用于商业用途,如本文涉及侵权请及时联系本人将于及时删除 目录 1.创建自定义类CMyPictureCtrl 2.布局Dlg 3.实验代码 4.运行结果 在基于对话框的MFC应用程序中,通过鼠标操作获取坐标并在CPictureCtrl控件中使用Lin…

电商技术揭秘系列文章合集(上)

电商技术揭秘系列文章(上) 电商技术揭秘一:电商架构设计与核心技术 电商技术揭秘二:电商平台推荐系统的实现与优化 电商技术揭秘三:电商平台的支付与结算系统 电商技术揭秘四:电商平台的物流管理系统 …

越来越多服务区安装智慧公厕是什么原因

随着社会的不断发展,人们对生活质量的要求也越来越高。在这种背景下,越来越多的服务区开始安装智慧公厕,以满足人们在出行过程中的生活需求。那么,为什么越来越多的服务区选择安装智慧公厕呢?这其中究竟有哪些原因呢&a…

手机副业赚钱秘籍:让你的手机变成赚钱利器

当今社会,智能手机已然成为我们生活不可或缺的一部分。随着技术的飞速进步,手机不再仅仅是通讯工具,而是化身为生活伴侣与工作助手。在这个信息爆炸的时代,我们时常会被一种焦虑感所困扰:如何能让手机超越消磨时光的定…

不说成为Linux高级工程师,但成为合格的软件开发人员还是够了,一文深入浅出的精炼总结Linux核心知识点,掌握Linux的使用与高阶技巧

不说成为Linux高级工程师,但成为合格的软件开发人员还是够了,一文深入浅出的精炼总结Linux核心知识点,掌握Linux的使用与高阶技巧。 Linux 的学习对于一个程序员的重要性是不言而喻的。前端开发相比后端开发,接触 Linux 机会相对…

JVM之方法区的详细解析

方法区 方法区:是各个线程共享的内存区域,用于存储已被虚拟机加载的类信息、常量、即时编译器编译后的代码等数据,虽然 Java 虚拟机规范把方法区描述为堆的一个逻辑部分,但是也叫 Non-Heap(非堆) 设置方法…

STC89C52学习笔记(九)

STC89C52学习笔记(九) 综述:本文主要介绍了蜂鸣器、蜂鸣器如何使用以及如何利用蜂鸣器播放不同频率声音。 一、蜂鸣器 1.定义和作用 电信号→声音信号,常用来产生按键音和报警音。 2.分类 有源:自带振荡器&#…

基于Python的机器学习的文本分类系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

单独使用YOLOV9的backbone网络

前言 YOLO系列的网络结构都是通过.yaml来进行配置的,当要单独想使用其中的backbone网络时,可以通过yaml配置文件来进行网络搭建。 backbone的yaml配置文件与网络结构 backbone:[[-1, 1, Silence, []], # conv<

linux中级课程:延迟任务的设置(at 命令)

1.首先在系统中建立easylee账户&#xff0c;并且设置密码为easylee 2.延迟任务由root账户设置&#xff0c;要求在5小时后备份系统中的用户信息文件到/backup中&#xff0c;确保延迟任务是使用非交互模式建立 此时创建了一个test.sh脚本&#xff0c;并且使用非交互的形式进行编辑…

实在智能携AI Agent智能体亮相2024年度QCon全球软件开发大会

4月11日-13日&#xff0c;以“全面进化”作为2024年度主题的「QCon全球软件开发大会暨智能软件开发生态展」在北京隆重举行。作为AI准独角兽和超自动化头部企业&#xff0c;实在智能应邀出席发表《面向办公自动化领域的AI Agent建设思考与分享》演讲及圆桌交流&#xff0c;展示…

HDLbits 刷题 -- Mux9to1v

Create a 16-bit wide, 9-to-1 multiplexer. sel0 chooses a, sel1 chooses b, etc. For the unused cases (sel9 to 15), set all output bits to 1. Expected solution length: Around 15 lines. 译&#xff1a; 创建一个16位宽的9对1多路复用器。Sel 0选择a, Sel 1选择b&a…

硬刚Suno?StabilityAI推出Stable Audio 2.0,可生成三分钟44.1kHz立体声的高质量完整曲目

StabilityAI公司最新推出音频生成模型Stable Audio 2.0&#xff0c;该模型可通过单一自然语言提示以44.1kHz立体声播放具有连贯音乐结构的高质量、完整曲目&#xff0c;长达三分钟。 新模型超越了文本到音频的范围&#xff0c;还包括音频到音频的功能。用户现在可以上传音频样…

华为海思校园招聘-芯片-数字 IC 方向 题目分享——第四套

华为海思校园招聘-芯片-数字 IC 方向 题目分享——第四套 (共9套&#xff0c;有答案和解析&#xff0c;答案非官方&#xff0c;仅供参考&#xff09;&#xff08;共九套&#xff0c;每套四十个选择题&#xff09; 部分题目分享&#xff0c;完整版获取&#xff08;WX:didadida…