• elasticsearch及head插件安装与配置


    1. 环境软件版本说明

    • 系统:ubuntu14.04.1
    • JDK:1.8
    • elasticsearch:5.5.2
    • node:9.11.1
    • elasticsearch:5.X

    2. 环境软件下载说明

    1). 软件地址

    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 });
    
    
  • 相关阅读:
    手机端@media screen布局自适应
    JavaScript-判断语句(if...else)
    JavaScript-什么是变量
    网页上缺少标识符、字符串或数字怎么解决?
    jquery.qrcode.min.js生成二维码 通过前端实现二维码生成
    一步一回头撞在了南墙上
    C#中另类自定义公式计算 字符串转换为计算公式,并得出计算结果
    C#判断操作系统是32位还是64位(转)
    实现HTML调用打开本地软件文件
    记某图片下载器破解笔记之增加试用次数
  • 原文地址:https://www.cnblogs.com/chaos-x/p/9446250.html
Copyright © 2020-2023  润新知