我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

大家已经知道,elasticsearch系列其实有好几个软件,其中民间最喜欢的组合是: es+kibana+eshead。它们之间存在着依赖挂关系,而且eskibana的启动时间比较长,而且还需要打开两个浏览器界面(9100和5601)。那么如何简化这个比较痛苦的启动过程呢?这就是本文要解决的问题。

苏南大叔:如何一键启动elastic系列软件?并自动打开相关管理界面? - elastic系列软件一键打开
如何一键启动elastic系列软件?并自动打开相关管理界面?(图7-1)

大家好,这里是苏南大叔的“程序如此灵动”博客,这里记录苏南大叔和计算机代码的故事。本文讲述苏南大叔原创的一键启动elastic系列软件的方式,适用于在本机搭建测试环境的情况。测试环境:win10elasticsearch@8.1.2elasticsearch-head@5.0.0node@16.14.2kibana@8.1.3opn@grunt@1.0.1grunt-open@0.2.4

分别启动各个软件

本文这里是讨论没有给这些系列软件加入系统服务的情况,都是需要手动启动的情况。

需要分别启动如下软件:

官方的启动方式是:

  • elasticsearchbin/elasticsearch.bat
  • kibanabin/kibana.bat
  • esheadnpm start

苏南大叔:如何一键启动elastic系列软件?并自动打开相关管理界面? - elastic软件家族
如何一键启动elastic系列软件?并自动打开相关管理界面?(图7-2)

kibana改造

kibana,主要改造点是:自动打开管理界面5601,依据的是nodejsopn第三方包。可以参考:

使用了第三方包:

npm i open --save

改造点文件是:

src/cli/serve/serve.js

改造内容是:

const open = require("opn");
open("http://127.0.0.1:5601/")

改造的位置是文件倒数几行,如下图所示:

苏南大叔:如何一键启动elastic系列软件?并自动打开相关管理界面? - kibana改造
如何一键启动elastic系列软件?并自动打开相关管理界面?(图7-3)

这个改造并不是很完美,没有自动获得相关配置。如果您有更好的改造方式,请告诉我。而且第一次启动(没有进行初始化配置)的时候,并不会自动弹出界面。还是需要手动打开界面并进行token配置。

eshead改造

eshead也是基于nodejs的项目,但是没有类似kibana.bat文件。主要的改造需求是自动打开浏览器访问管理界面。这里先定义了一个head.bat文件,参考文章:

内容如下:

cd /d %~dp0
:: explorer http://127.0.0.1:9100/
npm start

苏南大叔:如何一键启动elastic系列软件?并自动打开相关管理界面? - eshead改造
如何一键启动elastic系列软件?并自动打开相关管理界面?(图7-4)

没有在.bat里面使用explorer打开网址的原因是:数字公司的软件会进行拦截。所以,采用了另外一种方案。添加了一个grunt-open插件,参考文章:

安装方式:

npm i grunt-open --save

配置方式:

grunt.initConfig({
        //...
    open: {
        dev: {
            path: 'http://127.0.0.1:9100/',
            // app: 'Google Chrome'
        }
    }
});
grunt.loadNpmTasks('grunt-open');
//...
grunt.registerTask('server', ['open:dev','connect:server']);

这里的网址也是写死在代码里面的,并没有读取到默认配置,所以也还是存在改进的空间,欢迎留言给我。

苏南大叔:如何一键启动elastic系列软件?并自动打开相关管理界面? - grunt-open
如何一键启动elastic系列软件?并自动打开相关管理界面?(图7-5)

concurrently命令

全局安装了一个concurrently命令,参考文章:

安装方式如下:

npm i concurrently -g

然后配置一个elastic.bat文件,内容如下:

concurrently "<elastic-path>\bin\elasticsearch.bat" "<ekibana-path>\bin\kibana.bat" "<eshead-path>\head.bat"

替换相关路径后,配置如下:

concurrently "E:\tools\elasticsearch-8.1.2\bin\elasticsearch.bat" "E:\tools\kibana-8.1.3\bin\kibana.bat" "E:\tools\elasticsearch-head-master\head.bat"

苏南大叔:如何一键启动elastic系列软件?并自动打开相关管理界面? - elastic文件
如何一键启动elastic系列软件?并自动打开相关管理界面?(图7-6)

最终效果

最终的效果是:同时运行了三个软件,然后eshead9100管理界面,第一个弹出。然后等待kibana启动完毕,弹出第二个界面5601。效果如下:

苏南大叔:如何一键启动elastic系列软件?并自动打开相关管理界面? - 启动界面
如何一键启动elastic系列软件?并自动打开相关管理界面?(图7-7)

同时,再次说明。本文仅适用于本机测试的情况,并且测试环境是:win10。启动失败的话,请改为原有的启动方式。服务器端部署的话,还请考虑加入系统服务。并且仅在客户端方面自行打开浏览器。

参考文章

总结

更多elastic的相关文章,请点击下面的链接:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   elastic    kibana