1.在自己的机器上安装elasticsearch
2.在自己的机器上安装elasticsearch-head
3.将在自己的机器上安装好的elasticsearch-head打包拷贝到内网机器
1.内网机器
安装elasticsearch将包上传到服务器,解压就行了(这个就上传到内网机器就行,我们主要是制作elasticsearch-head包)
启动elasticsearch请切换到请他用户,不要用root用户启动
进入bin目录下就可以启动elasticsearch,命令:./elasticsearch (./elasticsearch -d 后台启动)
2.自己机器:外网(可以访问百度的 ping www.baidu.com)安装elasticsearch-head
我们是离线安装的,需要找一台可以访问互联网的机器,比如你自己电脑上的linux虚拟机,或者linux的云服务器都行,我这里是用我自己电脑的linux虚拟机制作的
补充:怎么判断能不能访问互联网 ping一下百度,命令:ping www.baidu.com
这样就是可以访问互联网了
我这里是自己新建了一个es-head目录,然后进到es-head目录
需求:安装elasticsearch-head、node
补充:
下载elasticsearch-head:wget https://github.com/mobz/elasticsearch-head/archive/master.zip
下载node:wget https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.xz
解压这两个包:
[root@localhost es-head]# unzip master.zip
[root@localhost es-head]# tar -xvf node-v10.15.0-linux-x64.tar.xz
将node添加到环境变量中
vim /etc/profile
在最后面加上
#node
export PATH=$PATH:/usr/local/es-head/node-v10.15.0-linux-x64/bin
然后source /etc/profile 让刚刚的配置文件生效
然后命令行执行:
[root@localhost bin]# node -v
v10.15.0
[root@localhost bin]# npm -v
6.4.1
若出现有版本号说明node安装完成
现在再安装elasticsearch-head 这个是最关键的一步
我们进入到刚刚解压的elasticsearch-head的目录中
[root@localhost es-head]# cd elasticsearch-head-master
[root@localhost elasticsearch-head-master]# npm install grunt
......
......
等待安装完成,这个安装可以多执行两次
安装完成后就会有grunt这命令了
[root@localhost elasticsearch-head-master]# grunt -version
grunt-cli v1.4.3
grunt v1.0.1
这个就在自己的机器上安装好了elasticsearch-head了
安装完成之后我们还要修改elasticsearch-head的配置让所有人能够访问:
[root@localhost elasticsearch-head-master]$ ls
crx Dockerfile-alpine Gruntfile.js index.html node_modules package-lock.json proxy _site test
Dockerfile elasticsearch-head.sublime-project grunt_fileSets.js LICENCE package.json plugin-descriptor.properties README.textile src
[root@localhost elasticsearch-head-master]$ vim Gruntfile.js
我们需要修改Gruntfile.js文件:
connect: {
server: {
options: {
port: 9100,
hostname: '0.0.0.0', #这里添加hostname: '0.0.0.0'
base: '.',
keepalive: true
}
}
}
3.将安装好的elasticsearch-head打包拷贝到内网机器
[root@localhost elasticsearch-head-master]# cd ..
[root@localhost es-head]# ls
elasticsearch-head-master master.zip node-v10.15.0-linux-x64 node-v10.15.0-linux-x64.tar.xz
[root@localhost es-head]# tar -czvf es-head.tar.gz ./*
然后我们就得到制作好的elasticsearch-head包了,然后将包拷贝到内网机器并且解压
我同样是上传到/usr/local下,tar -xzvf es-head.tar.gz
然后在内网机器上添加node的环境变量
vim /etc/profile
在最后面加上
#node
export PATH=$PATH://usr/local/es-head/node-v10.15.0-linux-x64/bin
这个是你在内网环境解压es-head.tar.gz包中node-v10.15.0-linux-x64中bin目录的路径
添加后执行 source /etc/profile让配置文件生效
然后执行命令:
[deployer@OSS-ZYGL-567 elasticsearch-7.16.2]$ node -v
v10.15.0
[deployer@OSS-ZYGL-567 elasticsearch-7.16.2]$ npm -v
6.4.1
这样node就在内网环境安装好了
elasticsearch-head 和 elasticsearch 是两个功能,如果互相访问,是跨域问题
解决跨域问题后才可以正常用elasticsearch-head 管理 elasticsearch
修改elasticsearch的配置文件vim elasticsearch/config/elasticsearch.yml ,在配置文件最后面添加两行:
http.cors.enabled: true
http.cors.allow-origin: "*"
重新启动elasticsearch,进入到elasticsearch的bin目录
[deployer@OSS-ZYGL-567 elasticsearch-7.16.2]$ cd bin/
[deployer@OSS-ZYGL-567 bin]$ ./elasticsearch #前台启动
[deployer@OSS-ZYGL-567 bin]$ ./elasticsearch -d #后台启动
然后启动elasticsearch-head
[deployer@OSS-ZYGL-567 local]$ cd es-head/
[deployer@OSS-ZYGL-567 es-head]$ ls
elasticsearch-head-master master.zip node-v10.15.0-linux-x64 node-v10.15.0-linux-x64.tar.xz
[deployer@OSS-ZYGL-567 es-head]$ cd elasticsearch-head-master/
[deployer@OSS-ZYGL-567 elasticsearch-head-master]$ setsid grunt server #后台启动
验证:浏览器输入ip:9100
这样elasticsearch就算是离线安装完成了
部分问题:
如果安装完成之后出现:
我们可以修改/usr/local/es-head/elasticsearch-head-master/_site下面的配置文件的app.js文件
[deployer@OSS-ZYGL-567 _site]$ cd /usr/local/es-head/elasticsearch-head-master/_site
[deployer@OSS-ZYGL-567 _site]$ pwd
/usr/local/es-head/elasticsearch-head-master/_site
[deployer@OSS-ZYGL-567 _site]$ ls
app.css app.js background.js base fonts i18n.js index.html lang manifest.json vendor.css vendor.js
vim app.js
app.App = ui.AbstractWidget.extend({
defaults: {
base_uri: null
},
init: function(parent) {
this._super();
this.prefs = services.Preferences.instance();
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://10.10.10.10:9200"; #找到这一行 修改成内网机器elasticsearch的IP地址
if( this.base_uri.charAt( this.base_uri.length - 1 ) !== "/" ) {
// XHR request fails if the URL is not ending with a "/"
this.base_uri += "/";
}