1. 环境软件版本说明
- 系统:ubuntu14.04.1
- JDK:1.8
- elasticsearch:5.5.2
- node:9.11.1
- elasticsearch:5.X
2. 环境软件下载说明
1). 软件地址
- 系统:这个嘛。。。
- JDK:非重点,请自行解决
- elasticsearch:https://www.elastic.co/downloads/elasticsearch
- elasticsearch-5.5.2:https://www.elastic.co/downloads/past-releases/elasticsearch-5-5-2
- node:https://nodejs.org/dist/v9.11.1/node-v9.11.1-linux-x64.tar.xz
- elasticsearch-head:https://github.com/mobz/elasticsearch-head/archive/master.zip
2). 软件下载
- 下载elasticsearch-5.5.2
# wget https://www.elastic.co/downloads/past-releases/elasticsearch-5-5-2
- 下载node
`
# wget https://nodejs.org/dist/v9.11.1/node-v9.11.1-linux-x64.tar.xz
- 下载head插件
# wget https://github.com/mobz/elasticsearch-head/archive/master.zip
3. elasticsearch安装
elasticsearch解压即能用,当然为了更方便的使用,还是要简单配置一下。
1). 解压
`
# tar -zxvf elasticsearch-5.5.2.tar.gz
2). 配置
# cd elasticsearch-5.5.2/config/
# vim elasticsearch.yml
network.host: 0.0.0.0
# 跨域访问设置
http.cors.enabled: true
http.cors.allow-origin: "*"
3). 配置elasticsearch启动用户
在启动elasticsearch之前还要创建一个非root用户,elasticsearch不允许使用root用户启动。当使用非root用户时,要配置一下用户的文件打开数和用户最大处理数。
会出现如下错误:
ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]
ERROR: bootstrap checks failed max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决centos系统执行一下如下脚本
#!/bin/bash
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
echo "* soft memlock unlimited" >> /etc/security/limits.conf
echo "* hard memlock unlimited" >> /etc/security/limits.conf
echo "vm.max_map_count = 262144" >> /etc/sysctl.conf
echo "* soft nproc 4096" >> /etc/security/limits.d/90-nproc.conf
echo "root soft nproc unlimited" >> /etc/security/limits.d/90-nproc.conf
sysctl -p
ulimit -l unlimited
解决ubuntu系统
(1). 在 /etc/security/limits.conf 中添加
* hard nofile 2037581
* soft nofile 2037581
root hard nofile 2037581
root soft nofile 2037581
(2). 在 /etc/pam.d/su 添加
session required pam_limits.so
(3)在 /etc/pam.d/common-session 添加
session required pam_limits.so
(4). 在 /etc/sysctl.conf 中添加
vm.max_map_count = 262144
4). 启动
- 前台启动
# bin/elasticsearch
- 后台启动
# bin/elasticsearch -d
- 方式 一查看端口是否启动
# lsof -i:9200
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 24738 kevin 117u IPv4 32165101 0t0 TCP *:wap-wsp (LISTEN)
- 方式二用curl
返回如下信息说明启动功能。
# curl localhost:9200
{
"name" : "kevin-node-01",
"cluster_name" : "kevin-dev",
"cluster_uuid" : "Sq62mKiaQiGGYOQR-Dmq6Q",
"version" : {
"number" : "6.2.4",
"build_hash" : "ccec39f",
"build_date" : "2018-04-12T20:37:28.497551Z",
"build_snapshot" : false,
"lucene_version" : "7.2.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
4. elasticsearch-head插件安装
elasticsearch依赖node环境,所以要想安装head插件就要先安装node环境。
1). node环境安装
* 解压
先把tar.xz解压出tar.gz,然后再解压tar.gz文件
# tar -xvf node-v9.11.1-linux-x64.tar.xz
# tar -zxvf node-v9.11.1-linux-x64.tar.gz
设置软连接
# ln -s /opt/node-v9.11.1/bin/npm /usr/local/bin/
# ln -s /opt/node-v9.11.1/bin/node /usr/local/bin/
检测是否安装成功,如果不成功重新开启一个session对话再试一下。
# node -v
# npm -v
2). head安装
* 解压
# unzip master.zip
配置
- vim Gruntfile.js
添加 hostname: '0.0.0.0'
90 connect: {
91 server: {
92 options: {
93 port: 9100,
94 base: '.',
95 keepalive: true,
96 hostname:'0.0.0.0'
97 }
安装
进入到node的根目录下
# cd /opt/elasticsearch-head-master/
npm install
我的报如下错误
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! phantomjs-prebuilt@2.1.16 install: `node install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the phantomjs-prebuilt@2.1.16 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-08-04T02_49_32_733Z-debug.log
root@lee-ubuntu:/opt/elasticsearch-head-master#
root@lee-ubuntu:/opt/elasticsearch-head-master#
root@lee-ubuntu:/opt/elasticsearch-head-master#
root@lee-ubuntu:/opt/elasticsearch-head-master# npm install phantomjs-prebuilt@2.1.14--ignore-scripts
npm ERR! code ETARGET
npm ERR! notarget No matching version found for phantomjs-prebuilt@2.1.14--ignore-scripts
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-08-04T02_51_00_390Z-debug.log
解决:把不能安装的script路过去,要注意你报错信息中@后台的版本号
npm install phantomjs-prebuilt@2.1.16 --ignore-scripts
启动head
- 启动
npm run start
-
然后就可以访问head插件了,head插件的端口默认是9100。
-
如果head不能识别es的地址,就去head中配置一下es的地址信息。
vim _site/app.js 把4354行的localhost改ip地址即可。
4342 (function( app, i18n ) {
4343
4344 var ui = app.ns("ui");
4345 var services = app.ns("services");
4346
4347 app.App = ui.AbstractWidget.extend({
4348 defaults: {
4349 base_uri: null
4350 },
4351 init: function(parent) {
4352 this._super();
4353 this.prefs = services.Preferences.instance();
4354 this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.161.103:9200";
4355 if( this.base_uri.charAt( this.base_uri.length - 1 ) !== "/" ) {
4356 // XHR request fails if the URL is not ending with a "/"
4357 this.base_uri += "/";
4358 }
4359 if( this.config.auth_user ) {
4360 var credentials = window.btoa( this.config.auth_user + ":" + this.config.auth_password );
4361 $.ajaxSetup({
4362 headers: {
4363 "Authorization": "Basic " + credentials
4364 }
4365 });
4366 }
4367 this.cluster = new services.Cluster({ base_uri: this.base_uri });