Elasticsearch 5.x安装和配置
📅 2017-02-03 | 🖱️
系统环境 #
CentOS 7
Oracle jdk-8u121-linux-x64
创建elasticsearch用户
1useradd elasticsearch
最大打开文件描述符数/etc/security/limits.conf
1elasticsearch - nofile 65536
vm.max_map_count
1sysctl -w vm.max_map_count=262144
修改配置文件/etc/sysctl.conf
1vm.max_map_count=262144
安装elasticsearch #
下载并解压缩elasticsearch-5.2.0.tar.gz
1su elasticsearch 2cd /usr/local 3wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.0.tar.gz 4tar -zxvf elasticsearch-5.2.0.tar.gz 5rm -f elasticsearch-5.2.0.tar.gz 6mv elasticsearch-5.2.0/ elasticsearch
创建EnvironmentFile /etc/elasticsearch/elasticsearch
1JAVA_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环境变量。
1-Xms2g 2-Xmx2g
创建systemd的服务文件/usr/lib/systemd/system/elasticsearch.service
1[Unit] 2Description=ElasticSearch Service 3After=network.target 4[Service] 5Type=simple 6EnvironmentFile=-/etc/elasticsearch/elasticsearch 7ExecStart=/usr/local/elasticsearch/bin/elasticsearch 8PIDFile=/usr/local/elasticsearch/run/elasticsearch.pid 9User=elasticsearch 10LimitNOFILE=65536 11Restart=on-failure 12[Install] 13WantedBy=default.target
这里在systemd配置文件里设置
LimitNOFILE=65536
最大打开文件描述符数,而没有按照ES文档中描述的在/etc/security/limits.conf修改,这是因为在CentOS中,使用Systemd替代了之前的SysV,因此 /etc/security/limits.conf配置作用域缩小了,只适用于通过PAM认证登录用户的资源限制,而对systemd的service的资源限制不生效。启动elasticsearch
1systemctl daemon-reload 2systemctl start elasticsearch
elasticsearch.yml常用配置 #
1cluster.name: my-application #集群名称
2node.name: node-1 #节点名称
3path.data: /home/elasticsearch/data #索引存储位置
4path.logs: /home/elasticsearch/logs #日志存储位置
5bootstrap.memory\_lock: true #Lock the memory on startup
6network.host: 192.168.61.100
7http.port: 9200
8discovery.zen.ping.unicast.hosts: ["host1", "host2"]
9discovery.zen.minimum_master_nodes: 3
10gateway.recover_after_nodes: 3
安装elasticsearch-head #
因为ES 5开始不再支持site plugin,因此elasticsearch-head不能再以插件的形式安装,需要单独以server的形式运行。 这里使用docker来运行。
1docker run -p 9100:9100 -d --name es-head mobz/elasticsearch-head:5-alpine
elasticsearch.yml追加以下关于跨域访问的 配置
1http.cors.enabled: true
2http.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访问。