# wget https://www.elastic.co/downloads/past-releases/elasticsearch-5-5-2
# wget https://nodejs.org/dist/v9.11.1/node-v9.11.1-linux-x64.tar.xz
# wget https://github.com/mobz/elasticsearch-head/archive/master.zip
elasticsearch解壓即能用,固然爲了更方便的使用,仍是要簡單配置一下。java
`node
# tar -zxvf elasticsearch-5.5.2.tar.gz
# cd elasticsearch-5.5.2/config/ # vim elasticsearch.yml network.host: 0.0.0.0 # 跨域訪問設置 http.cors.enabled: true http.cors.allow-origin: "*"
在啓動elasticsearch以前還要建立一個非root用戶,elasticsearch不容許使用root用戶啓動。當使用非root用戶時,要配置一下用戶的文件打開數和用戶最大處理數。
會出現以下錯誤:linux
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]
#!/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
(1). 在 /etc/security/limits.conf 中添加git
* hard nofile 2037581 * soft nofile 2037581 root hard nofile 2037581 root soft nofile 2037581
(2). 在 /etc/pam.d/su 添加github
session required pam_limits.so
(3)在 /etc/pam.d/common-session 添加ajax
session required pam_limits.so
(4). 在 /etc/sysctl.conf 中添加npm
vm.max_map_count = 262144
# 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 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" }
elasticsearch依賴node環境,因此要想安裝head插件就要先安裝node環境。bootstrap
先把tar.xz解壓出tar.gz,而後再解壓tar.gz文件ubuntu
# 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對話再試一下。vim
# node -v # npm -v
# unzip master.zip
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
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 });