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

安装所有架包

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

kibana5.6 源码分析以--环境搭建&技术准备的更多相关文章

  1. Spring源码分析——(001)环境搭建

    1.官方参考 spring-framework的github链接:https://github.com/spring-projects/spring-framework 源码环境搭建官方参考1:考如何 ...

  2. 精尽Spring MVC源码分析 - 调式环境搭建

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  3. Spring源码分析之环境搭建

    写在最前面 最近突然心血来潮,想看看源码,看看大牛都怎么码代码,膜拜下.首选肯定是spring大法,于是说干就干,从GitHub上下载spring-framework源码编译拜读. 环境搭建 安装JD ...

  4. Spring源码分析——调试环境搭建(可能是最省事的构建方法)

    1. 依赖工具 idea git jdk 1.8 + Gradle 2. 获取源码 从github https://github.com/spring-projects/spring-framewor ...

  5. 鸿蒙内核源码分析(编译环境篇) | 编译鸿蒙看这篇或许真的够了 | 百篇博客分析OpenHarmony源码 | v50.06

    百篇博客系列篇.本篇为: v50.xx 鸿蒙内核源码分析(编译环境篇) | 编译鸿蒙防掉坑指南 | 51.c.h.o 编译构建相关篇为: v50.xx 鸿蒙内核源码分析(编译环境篇) | 编译鸿蒙防掉 ...

  6. MyBatis源码分析之环境准备篇

    前言 之前一段时间写了[Spring源码分析]系列的文章,感觉对Spring的原理及使用各方面都掌握了不少,趁热打铁,开始下一个系列的文章[MyBatis源码分析],在[MyBatis源码分析]文章的 ...

  7. 【MyBatis源码分析】环境准备

    前言 之前一段时间写了[Spring源码分析]系列的文章,感觉对Spring的原理及使用各方面都掌握了不少,趁热打铁,开始下一个系列的文章[MyBatis源码分析],在[MyBatis源码分析]文章的 ...

  8. [Tomcat源码分析] Eclipse中搭建Apache Tomcat源码调试环境

    网上很多文章都推荐使用Ant下载编译,但本地实践中屡屡失败,无法下载. 后来参考 https://blog.csdn.net/xiongyouqiang/article/details/7894107 ...

  9. Tomcat源码分析----eclipse中搭建源码环境

    前提:JDK,至少1.7,ant,要设置ANT_HOME环境变量,需要再classpath中增加ant的lib目录,在path变量中增加ant的bin目录 1.官网下载tomcat源码包:apache ...

随机推荐

  1. shell脚本中执行mysql命令

    1.mysql -hhostname -uuser -ppsword -e "mysql_cmd" 2. mysql -hhostname -uuser -ppsword < ...

  2. PaaS 平台的网络需求

    在使用 Docker 构建 PaaS 平台的过程中,我们首先遇到的问题是需要选择一个满足需求的网络模型: 让每个容器拥有自己的网络栈,特别是独立的 IP 地址 能够进行跨服务器的容器间通讯,同时不依赖 ...

  3. 查询ip地址归属地

    查询ip地址归属地方法: curl ip.cn/$ip 如果没有返回,试试地址写全: curl https://www.ip.cn/$ip 如:

  4. iOS_5_汤姆猫

    终于效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill ...

  5. IP地址欺骗

    1.什么是IP地址欺骗按照IP网络协议,数据包头包含来源地和目的地信息,而IP地址欺骗,就是通过伪造数据包爆头,使显示的信息源不是实际的来源,就像这个数据包是从另一台计算机上发送的. 2.IP地址欺骗 ...

  6. OS开发UI篇—UIWindow简单介绍

    一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控 ...

  7. 记一次线上MySQL数据库死锁问题

            最近线上项目报了一个MySQL死锁(DealLock)错误,虽说对业务上是没有什么影响的,由于自己对数据库锁这块了解不是很多,之前也没怎么的在线上碰到过.这次刚好遇到了,便在此记录一下 ...

  8. love2d教程31--Tiled地图存档和动态修改

    Advanced-Tiled-Loader有点问题,我给作者发信,可惜作者没回. 好吧,毛主席教导我们“自己动手,丰衣足食”,只好自己修改了. 1.想把0.8里的函数改为0.9的 2.添加获取对象层里 ...

  9. 在ubuntu下安装sourceinsight

    执行更新与安装 wine: # sudo apt-get update # sudo apt-get install wine 下载SourceInsight,用wine来安装: 执行:wine so ...

  10. linux 链接的使用 创建和删除符号连接(软、硬链接)

    1 . 使用方式 :ln [option] source_file dist_file   (source_file是待建立链接文件的文件,dist_file是新创建的链接文件)            ...