kibana源码编译

一、安装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/jdkexport 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-servicesecho '#!/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.shecho '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/buildbuild the Kibana distributableoptions:--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-ubuntuinfo [  global  ] Verifying environment meets requirements│ succ Node.js version verified│ succ ✓ 0 secinfo [  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 secinfo [  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 secinfo [  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 secinfo [  global  ] Writing sha1sums of archives and packages in target directory│ succ ✓ 3 secDone 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.rhkb.cn/news/309322.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bugku-web-decrypt

这里的提示解密后没有什么意义 这里下载文件包 得到一个index.php文件 得到代码 <?php function encrypt($data,$key) {$key md5(ISCC);$x 0;$len strlen($data);$klen strlen($key);for ($i0; $i < $len; $i) { if ($x $klen){$x 0;}$char . $key[$x];$x1;}for…

UI设计/交互设计/视觉设计项目汇报/作品集Figma/PPT模板

作为UI设计/交互设计/视觉设计师&#xff0c;创建作品集对于向潜在客户或雇主展示您的技能、创造力和风格至关重要。以下分步指南可帮助您创建令人印象深刻的作品集&#xff1a; 选择您的最佳作品&#xff1a;选择您最强大且最相关的设计项目&#xff0c;将其纳入您的作品集。…

stm32移植嵌入式数据库FlashDB

本次实验的程序链接stm32f103FlashDB嵌入式数据库程序资源-CSDN文库 一、介绍 FlashDB 是一款超轻量级的嵌入式数据库&#xff0c;专注于提供嵌入式产品的数据存储方案。与传统的基于文件系统的数据库不同&#xff0c;FlashDB 结合了 Flash 的特性&#xff0c;具有较强的性能…

codeforce #925 (div3) 题解

D. Divisible Pairs 给出数组 a a a&#xff0c;如果二元组 ( i , j ) (i,j) (i,j)满足 a i a j m o d x 0 & & a i − a j m o d y 0 a_i a_j mod x 0 \&\& a_i - a_j mod y 0 ai​aj​modx0&&ai​−aj​mody0&#xff0c;则beauty。其中 i &…

HarmonyOS鸿蒙端云一体化开发--适合小白体制

端云一体化 什么是“端”&#xff0c;什么是“云”&#xff1f; 答&#xff1a;“端“&#xff1a;手机APP端 “云”:后端服务端 什么是端云一体化&#xff1f; 端云一体化开发支持开发者在 DevEco Studio 内使用一种语言同时完成 HarmonyOS 应用的端侧与云侧开发。 …

《经典论文阅读1》YouTubeDNN—基于深度学习的搜推系统开山之作

论文链接&#xff1a; https://static.googleusercontent.com/media/research.google.com/zh-CN//pubs/archive/45530.pdf全文由『说文科技』原创出品。版权所有&#xff0c;翻版必究。 这篇发表于2016年九月的文章&#xff0c;在搜索推荐仍然基于矩阵分解的时代&#xff0c;抛…

python基础——类型注解【变量,函数,Union】

&#x1f4dd;前言&#xff1a; 上一篇文章Python基础——面相对象的三大特征提到&#xff0c;python中的多态&#xff0c;python中&#xff0c;类型是动态的&#xff0c;这意味着我们不需要在声明变量时指定其类型。然而&#xff0c;这可能导致运行时错误&#xff0c;因为我们…

【数据结构】泛型(分享重点)

什么是泛型&#xff1f; 泛型就是适用于许多许多类型&#xff0c;对类型参数化。 怎么创建一个泛型呢 class 泛型类名称<类型形参列表> { // 这里可以使用类型参数 } class ClassName<T1, T2, ..., Tn> { } class 泛型类名称<类型形参列表> extends 继承类…

2024HW --> 安全产品 Powershell无文件落地攻击

在HW中&#xff0c;除了了解中间件&#xff0c;web漏洞&#xff0c;这些攻击的手法&#xff0c;还得了解应急响应&#xff0c;安全产品&#xff0c;入侵排查&#xff0c;溯源反制...... 那么今天&#xff0c;就来说一下安全产品&#xff08;安全公司我就不说了&#xff0c;这个…

自动化收集Unity版本更新日志

自动化收集Unity版本更新日志 &#x1f365;功能介绍&#x1f96a;食用手册填写配置开始搜集 &#x1f368;数据展示 &#x1f365;功能介绍 &#x1f4a1;获取指定年份中所有的Unity版本更新日志。 &#x1f4a1;根据指定字符串过滤。 &#x1f4a1;.收集后自动保存成markdow…

Niobe开发板OpenHarmony内核编程开发——定时器

本示例将演示如何在Niobe Wifi IoT开发板上使用cmsis 2.0 接口进行定时器开发 Timer API分析 osTimerNew() /// Create and Initialize a timer./// \param[in] func function pointer to callback function./// \param[in] type \ref osTimerOnce …

Kafka 架构深入探索

目录 一、Kafka 工作流程及文件存储机制 二、数据可靠性保证 三 、数据一致性问题 3.1follower 故障 3.2leader 故障 四、ack 应答机制 五、部署FilebeatKafkaELK 5.1环境准备 5.2部署ELK 5.2.1部署 Elasticsearch 软件 5.2.1.1修改elasticsearch主配置文件 5.2…

事务隔离级别的无锁实现方式 -- MVCC

MVCC的全称是Multiversion Concurrency Control(多版本并发控制器)&#xff0c;是一种事务隔离级别的无锁的实现方式&#xff0c;用于提高事务的并发性能&#xff0c;即事务隔离级别的一种底层实现方式。 在了解MVCC之前&#xff0c;我们先来回顾一些简单的知识点&#xff1a;…

终端工具命令行颜色配置(解决终端工具连上服务器之后,无颜色问题)

本期主题&#xff1a; 讲解使用mobaxterm等终端工具连上服务器&#xff0c;但是命令行没有颜色的问题 目录 1. 问题描述2. 原因解释3.测试 1. 问题描述 使用终端工具&#xff08;Mobaxterm等&#xff09;连上服务器之后&#xff0c;发现终端工具没有颜色&#xff0c;如下图&am…

API接口京东开放平台item_get-获得京东商品详情API接口根据商品ID查询商品标题价格描述等详情数据

京东商品详情API接口可以提供以下方面的信息&#xff1a; 商品基础信息&#xff1a;包括商品的标题、价格、描述、图片等基本信息&#xff0c;这是构建电商平台的基础数据。商品分类信息&#xff1a;帮助用户更好地了解商品所属的类别&#xff0c;便于商品筛选和查找。商品销售…

RK3568平台 驱动实现IIC设备读取十六位寄存器状态

一.项目需求 要求读取GVS2715这个IIC设置寄存器的值来获取版本号&#xff0c;GVS2715这个芯片是十六位寄存器。 当使用i2ctool工具读取十六位寄存器的时候&#xff0c;发现无法读取出来&#xff0c;读取的都是XXXX。 二.从零开始写IIC设备驱动读取十六位寄存器的状态 #includ…

CentOS 7安装Zookeeper

说明&#xff1a;本文介绍如何在CentOS 7操作系统下使用Zookeeper 下载安装 首先&#xff0c;去官网下载所需要安装的版本&#xff0c;我这里下载3.4.9版本&#xff1b; 上传到云服务器上&#xff0c;解压 tar -xvf zookeeper-3.4.9.tar.gz修改配置 进入Zookeeper目录下的co…

Spark-机器学习(1)什么是机器学习与MLlib算法库的认识

从这一系列开始&#xff0c;我会带着大家一起了解我们的机器学习&#xff0c;了解我们spark机器学习中的MLIib算法库&#xff0c;知道它大概的模型&#xff0c;熟悉并认识它。同时&#xff0c;本篇文章为个人spark免费专栏的系列文章&#xff0c;有兴趣的可以收藏关注一下&…

前端标记语言HTML

HTML&#xff08;HyperText Markup Language&#xff09;是一种用于创建网页的标准标记语言。它是构建和设计网页及应用的基础&#xff0c;通过定义各种元素和属性&#xff0c;HTML使得开发者能够组织和格式化文本、图像、链接等内容。 HTML的基本结构 文档类型声明&#xff0…

SpringBoot+FreeMaker

目录 1.FreeMarker说明2.SpringBootFreeMarker快速搭建Pom文件application.properties文件Controller文件目录结构 3.FreeMarker数据类型3.1.布尔类型3.2.数值类型3.3.字符串类型3.4.日期类型3.5.空值类型3.6.sequence类型3.7.hash类型 4.FreeMarker指令assign自定义变量指令if…