Elasticsearch 5.x安装和配置

2017-02-03 阅读: Elasticsearch

系统环境

  • CentOS 7
  • Oracle jdk-8u121-linux-x64
  • 创建elasticsearch用户

      useradd elasticsearch
    
  • 最大打开文件描述符数/etc/security/limits.conf

      elasticsearch  -  nofile  65536
    
  • vm.max_map_count

      sysctl -w vm.max_map_count=262144
    

    修改配置文件/etc/sysctl.conf

      vm.max_map_count=262144
    

安装elasticsearch

  • 下载并解压缩elasticsearch-5.2.0.tar.gz

      su elasticsearch
      cd /usr/local
      wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.0.tar.gz
      tar -zxvf elasticsearch-5.2.0.tar.gz
      rm -f elasticsearch-5.2.0.tar.gz
      mv elasticsearch-5.2.0/ elasticsearch
    
  • 创建EnvironmentFile /etc/elasticsearch/elasticsearch

      JAVA_HOME=/usr/local/jdk
    
  • 关于ES_JAVA_OPTS环境变量

    ES是用Java语言开发的,因此JAVA_OPTS对ES十分重要,例如-Xmx参数用于指定最大可使用内存,一般建议将-Xmx设置为物理内存的一半。 为了避免JAVA_OPTS对整个机器环境起作用,可以使用ES_JAVA_OPTS设置。

    推荐config/jvm.options这个配置文件中指定JVM参数,这个配置文件中的配置最终会覆盖ES_JAVA_OPTS环境变量。

      -Xms2g
      -Xmx2g
    	
    
  • 创建systemd的服务文件/usr/lib/systemd/system/elasticsearch.service

      [Unit]
      Description=ElasticSearch Service
      After=network.target
      [Service]
      Type=simple
      EnvironmentFile=-/etc/elasticsearch/elasticsearch
      ExecStart=/usr/local/elasticsearch/bin/elasticsearch
      PIDFile=/usr/local/elasticsearch/run/elasticsearch.pid
      User=elasticsearch
      LimitNOFILE=65536
      Restart=on-failure
      [Install]
      WantedBy=default.target
    

    这里在systemd配置文件里设置LimitNOFILE=65536最大打开文件描述符数,而没有按照ES文档中描述的在/etc/security/limits.conf修改,这是因为在CentOS中,使用Systemd替代了之前的SysV,因此 /etc/security/limits.conf配置作用域缩小了,只适用于通过PAM认证登录用户的资源限制,而对systemd的service的资源限制不生效。

  • 启动elasticsearch

      systemctl daemon-reload
      systemctl start elasticsearch
    

elasticsearch.yml常用配置

cluster.name: my-application				#集群名称
node.name: node-1							#节点名称
path.data: /home/elasticsearch/data			#索引存储位置
path.logs: /home/elasticsearch/logs			#日志存储位置
bootstrap.memory\_lock: true				#Lock the memory on startup
network.host: 192.168.61.100
http.port: 9200
discovery.zen.ping.unicast.hosts: ["host1", "host2"]
discovery.zen.minimum_master_nodes: 3
gateway.recover_after_nodes: 3

安装elasticsearch-head

因为ES 5开始不再支持site plugin,因此elasticsearch-head不能再以插件的形式安装,需要单独以server的形式运行。 这里使用docker来运行。

docker run -p 9100:9100 -d --name es-head mobz/elasticsearch-head:5-alpine

elasticsearch.yml追加以下关于跨域访问的 配置

http.cors.enabled: true
http.cors.allow-origin: "*"

注这里设置http.cors.allow-origin: “*“, 安全起见正式环境应该对http.cors.allow-origin专门设置。

最后以http://192.168.61.100:9100/?base_uri=http://192.168.61.100:9200访问。

参考文档

标题:Elasticsearch 5.x安装和配置
本文链接:https://blog.frognew.com/2017/02/elasticsearch-5.x-install.html
转载请注明出处。

目录