kibana5.6源码分析以--环境搭建&技术准备

安云 安云     2022-10-09     436

关键词:

Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图表、表格、地图等kibana能够很轻易地展示高级数据分析与可视化。

一、开发环境搭建:

1、kibana5.6源码下载:

https://github.com/elastic/kibana。选择对应版本下载源码

解压,仔细阅读kibana/CONTRIBUTING.md文件。

2、安装node

     注意:Kibana6.0以前的版本通过node运行,6.0后的版本需要通过yarn运行

     安装cnpm命令(淘宝源)

npm install -g cnpm --registry=https://registry.npm.taobao.org

 

yarn 设置淘宝源

 

yarn config set registry 'https://registry.npm.taobao.org'

 

安装所有架包

cnpm install

ps:有时候安装过程有报错,那就再来一次。

配置es:在/config/kibana.yml,

  1. 配置可访问的elasticsearch地址:elasticsearch.url:"http://IP:port";
  2. server.host:"0.0.0.0"
  3. server.port:5601//默认可不配置

3、以调试模式启动:/bin/kibana --dev --no-base-path -l /log/log.log 或:/bin/kibana --dev --no-base-path --verbose

(注意:是/bin/kibana --dev 而不是./kibana --dev

IDE启动:运行 :/src/cli/index.js --dev --no-base-path

ps:报 Kibana did not load properly. Check the server output for more information.

原因: 显示statusCode:403.权限问题:

1、用户只有只读权限;

2、若确认权限没问题,(使用root用户),在bin目录下执行./kibana --dev也会报这个错,在根目录下执行/bin/kibana --dev就可以。

原因2:我输入的是http://IP:5601  应该输入https://IP:5601

403错误,表示资源不可用。服务器理解客户的请求,但拒绝处理它,通常由于服务器上文件或目录的权限设置导致的WEB访问错误

403.4
403.4错误是由于要求SSL而造成的,您必须在要查看的网页的地址中使用"https"。

4、Eclipse插件:

              NodeJS的插件:http://www.nodeclipse.org/updates/

二、使用到的相关技术:

 1、web框架使用的是hapi.js.它的API参考:https://hapijs.com/api

2、前端使用了Angular.js.通过指令扩展html.这是纯前台的JS,不是功能库,是用来开发动态网页的框架,专注于扩张HTML的功能,提供动态数据绑定;

      angular.js 学习参考:http://www.angularjs.net.cn/api/;

3、kibana5.6采用ES6(ES2015)编码,使用babel语法转换器编译为浏览器支持的js语法

     babel 网址:https://babeljs.cn/;

     babel 6 cli从babel中迁移出来,安装:npm install --save-dev babel-cli

4、grunt是一套前端自动化工具框架,一个基于nodeJs的命令行工具,有很多插件扩展它的功能,一般用于:

  • 压缩文件
  • 合并文件
  • 简单语法检查
  • 单元测试

Grunt 以及它的插件们,都作为一个 包 ,可以用 NPM 安装进行管理。

所以 NPM 生成的 package.json 项目文件,里面可以记录当前项目中用到的 Grunt 插件,而 Grunt 会调用 Gruntfile.js 这个文件,解析里面的任务(task)并执行相应操作。

API文档:http://www.gruntjs.net/api/grunt

 

5、webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)(模块加载器兼打包工具),它能把各种资源,例如JS(含JSX)、coffee、样式(含less/sass)、图片等都作为模块来使用和处理。

当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle

每个项目下都必须配置有一个 webpack.config.js ,它的作用如同常规的 gulpfile.js/Gruntfile.js ,就是一个配置项,告诉 webpack 它需要做什么。

参考文档:https://doc.webpack-china.org/concepts/

kibana打包后静态文件在/optimize/bundlers/中,框架是:commons.bundle.js,kibana插件是:kibana.bundle.js;timelion插件是:timelion.bundle.js;

6、Karma

Karma 是Google 开源的一个基于Node.js 的 JavaScript 测试执行过程管理工具,可以配合grunt使用:grunt-karma。官网:http://karma-runner.github.io/2.0/index.html

7、lodash

这是一个具有一致接口、模块化、高性能等特性 JavaScript 工具库。参考文档:http://lodashjs.com/docs/

8、Mixin

Mixin 是一种JS实现多继承方式,它通过复制其他类原型链(prototype)上的方法到自身原型链(prototype)上,来实现多继承

 9、Lucene 全文检索

https://www.cnblogs.com/xing901022/p/3933675.html

Lucene倒排索引原理(关键字与文件的相关映射):

 

Lucene架构:

 

10、bluebird

Promise对象已在ECMAScript 2015中被写入标准,且已被最新版本的浏览器和Node.js/IO.js所支持。bluebird是一个第三方Promise规范实现库,它不仅完全兼容原生Promise对象,且比原生对象功能更强大。

11、Joi

joi是 hapijs 自带的数据校验模块,他已经高度封装常用的校验功能

配置:

配置文件每行前需要有个空格

跨域配置:

server.cors:{origin:[*],credentials:true,additionalHeaders:['cache-control','x-requested-with']}

ps:遇到过install后,启动出错,错误日志:

Unhandled rejection Error: Optimizations failure.

    WARNING in ./~/_moment@2.13.0@moment/min/moment.min.js
    Module not found: Error: Cannot resolve 'file' or 'directory' ./locale in F:\caocy\workspace\kibana-5.6.5\node_modules\_moment@2.13.0@moment\min
     @ ./~/_moment@2.13.0@moment/min/moment.min.js 6:3763-3785

    at LazyOptimizer.failedStatsToError (F:/caocy/workspace/kibana-5.6.5/src/optimize/base_optimizer.js:224:17)
    at Compiler.compiler.plugin.stats (F:/caocy/workspace/kibana-5.6.5/src/optimize/lazy/lazy_optimizer.js:42:24)
    at Compiler.applyPlugins (F:\caocy\workspace\kibana-5.6.5\node_modules\_tapable@0.1.10@tapable\lib\Tapable.js:26:37)
    at Watching._done (F:\caocy\workspace\kibana-5.6.5\node_modules\_webpack@1.12.15@webpack\lib\Compiler.js:78:17)
    at Watching.<anonymous> (F:\caocy\workspace\kibana-5.6.5\node_modules\_webpack@1.12.15@webpack\lib\Compiler.js:61:18)
    at F:\caocy\workspace\kibana-5.6.5\node_modules\_graceful-fs@4.1.11@graceful-fs\graceful-fs.js:43:10
    at FSReqWrap.oncomplete (fs.js:135:15)

解决方法;

webpackShimes/moment.js
改为:
module.exports = require('../node_modules/moment/moment.js');

 

Kibana6.x:

1、yarn下载安装:https://yarnpkg.com

2、Git下载安装:https://git-scm.com/download

3、下载依赖:运行Git Base,进入Kibana安装目录,运行yarn kbn bootstrap命令

4、配置:打开config/kibana.yml,配置es服务路径

5、运行:在GIt Base下运行yarn start命令 

或:\workspace\kibana>sh ./bin/kibana –dev

mybatis简单源码分析1-环境搭建

本文以MyBatis独立使用的情形简单地分析MyBatis的源码,记录自己学习的过程重要的Java代码如下:主程序:1packagecom.suntao.learning.debug;23importjava.io.IOException;4importjava.io.InputStream;5importjava.util.List;67importorg.apache.ibatis.io.Re 查看详情

spring源码分析——源码分析环境搭建

...具类似于maven,用于项目的构建,此处主要用于构建spring源码,以便我们将spring源码导入eclipse。       开发环境Java:JDK8(必须是JDK或JRE7以上,使用java-version查看 查看详情

spring源码分析-1环境搭建

Spring源码下载在开始源码分析前,要先搭建Spring的源码环境,Spring源码目前是中Github上托管的,可以通过链接:GitHub-spring-projects/spring-framework:SpringFramework,到Spring官网看一下:拖过点击图片右上角的猫头... 查看详情

mybatis源码分析之01环境搭建

直接使用maven搭建一个mybatis的运行环境1. pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLoc 查看详情

spring源码分析-1环境搭建(代码片段)

Spring源码下载在开始源码分析前,要先搭建Spring的源码环境,Spring源码目前是中Github上托管的,可以通过链接:GitHub-spring-projects/spring-framework:SpringFramework,到Spring官网看一下:拖过点击图片右上角的猫头... 查看详情

macos10.15lucene源码分析环境搭建(代码片段)

MACOS10.15Lucene源码分析环境搭建lucene-solr的github项目中的README其实已经讲得很清楚了,但搭一个大项目的环境还是耗时耗力的。如果出现下载失败的问题,不用担心,重试就好1,找到lucene-solrgithub地址https://github.com/apache/lucene-solr... 查看详情

数据库中间件mycat源码分析——调试环境搭建

650)this.width=650;"src="http://www.yunai.me/images/common/wechat_mp.jpeg"style="text-align:justify;height:auto;margin:auto;"/>关注**微信公众号:【芋艿的后端小屋】**有福利:RocketMQ/MyCAT/Sharding-JDBC 所有源码分析文章列表Rock 查看详情

ssh框架总结(框架分析+环境搭建+实例源码下载)《转》

这篇文章比较易懂,易理解: 首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用程序。 集成SSH框架的系统从职责... 查看详情

retrofit源码分析&实践retrofitcalladapter的引入

Retrofit源码分析&实践系列文章目录Retrofit源码分析&实践(一)【从使用入手分析源码】Retrofit源码分析&实践(二)【Retrofit免费的api测试工具引入】Retrofit源码分析&实践(三)【Retrofit代码框架搭建】Retrofit源码分析&a... 查看详情

leveldb源码剖析:环境搭建实战使用常用优化(代码片段)

...器遍历常用优化方案压缩缓存过滤器命名环境搭建#下载源码gitclonehttps://github.com/google/leveldb.git#下载依赖第三方库(benchmark、googletest)gitsubmoduleupdate--init#执行编译cdleveldb/mkdir-pbuild&&cdbuildcmake-DCMAKE_BUILD_TYPE=Debug..&a... 查看详情

区块链入门教程btcpool矿池源码分析环境搭建(代码片段)

#btcpool矿池-测试环境搭建及使用cgminer测试本文档基于Ubuntu16.04LTS,64Bits。![](http://i2.51cto.com/images/blog/201810/29/7555485d8d22fccbea56d0fcf44c6960.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,c 查看详情

retrofit源码分析&实践retrofit多baseurl问题解决

Retrofit源码分析&实践系列文章目录Retrofit源码分析&实践(一)【从使用入手分析源码】Retrofit源码分析&实践(二)【Retrofit免费的api测试工具引入】Retrofit源码分析&实践(三)【Retrofit代码框架搭建】Retrofit源码分析&a... 查看详情

kafka源码分析(史上最全)1:源码的开发环境搭建(代码片段)

文章很长,建议收藏起来,慢慢读!Java高并发发烧友社群:疯狂创客圈奉上以下珍贵的学习资源:免费赠送经典图书:《Java高并发核心编程(卷1)》面试必备+大厂必备+涨薪必备加尼恩免费领免... 查看详情

mybatis源码解析-搭建调试环境

MyBatis源码解析-搭建调试环境1.相关工具MavenGitJDK1.8IntelliJIDEA2.源码拉取一般来说,我们直接从https://github.com/mybatis/mybatis-3Fork到自己的仓库中,为什么要Fork呢?我们在之后的源码分析中,我们可能会加一些注释,英文翻译一波,... 查看详情

如何搭建自己的springboot源码调试环境?--springboot源码

1前言这是SpringBoot2.1源码分析专题的第一篇文章,主要讲如何来搭建我们的源码阅读调试环境。如果有经验的小伙伴们可以略过此篇文章。2环境安装要求IntelliJIDEAJDK1.8Maven3.5以上3从github上将SpringBoot源码项目下载下来首先提供Sprin... 查看详情

如何搭建自己的springboot源码调试环境?--springboot源码

1前言这是SpringBoot2.1源码分析专题的第一篇文章,主要讲如何来搭建我们的源码阅读调试环境。如果有经验的小伙伴们可以略过此篇文章。2环境安装要求IntelliJIDEAJDK1.8Maven3.5以上3从github上将SpringBoot源码项目下载下来首先提供Sprin... 查看详情

rocketmq源码环境搭建(代码片段)

...,大家好,我是一条。相信很多小伙伴都有阅读源码的需求,但是很多开源项目的源码环境搭建起来并不是很容易,所以我会陆续讲一些中间件的源码环境搭建,来帮助大家走好源码阅读的第一步。首先大家... 查看详情

scala&intellijidea:环境搭建helloworld

...----前言---------------------项目关系,希望用SparkGraphX做数据分析及图像展示,但前提是得回spark;spark是基于scala的,scala是基于JAVA的……所以,要想用SparkGraphX,技术堆栈大体上应该是这样的:Java->Scala->Spark->SparkGraphX。  查看详情