安装

先决条件

  • java8 +
  • 非root用户, elasticsearch 默认不能再root用户上运行。

Download Java

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie"
"http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz"

  • 下载后的tar包解压,然后配置javaHome 和path
  • 需要注意的是 elasticsearch 默认是用 elasticsearch这个用户运行的,但是这个用户是一个 nologin的用户,不能设置java 环境。这时可以设置一个软连接。

Install

config es

  • cluster.name: lavector-cluster
  • node.name: lavector-search
  • path.data: /var/lib/elasticsearch
  • path.logs: /var/log/elasticsearch
  • 数据文件
ln -s /data/elasticsearch/ /var/lib/elasticsearch
ln -s /data/elasticsearch/ /var/log/elasticsearch
chown -R elastic:elastic /var/lib/elasticsearch
chown -R elastic:elastic /var/log/elasticsearch
chmod 777 /data/elasticsearch
  • network.host
  • network.host: 192.168.1.10
  • discovery.zen.ping.unicast.hosts=
  • discovery.zen.minimum_master_nodes=1
  • node.max_local_storage_nodes=1

Important System Configuration

Set JVM heap size
  • 内存设置越大越好
  • 越大内存会导致GC停顿时间更大
  • (Xms) = (Xmx)
  • Xms 和 Xmx 不大于 系统内存的 50%
  • Xms 和 Xmx 不大于26G
  • 在jvm.options里面添加
-Xms2g
-Xmx2g
  • 验证生效
  • ps -ef | grep elastic 查看是否设置生效
Disable swapping
  • Enable bootstrap.memory_lock
  • add this to elasticsearch.yml
bootstrap.memory_lock: true
  • 验证
GET _nodes?filter_path=**.mlockall
  • 如果返回fasle
  • service文件位置 systemd service file (/usr/lib/systemd/system/elasticsearch.service)
  • vim /usr/lib/systemd/system/elasticsearch.service
  • 添加 LimitMEMLOCK=infinity
  • vim /etc/sysconfig/elasticsearch
  • 添加 MAX_LOCKED_MEMORY=unlimited
  • reload service更改
  • sudo systemctl daemon-reload
  • 重启服务 重新验证
Increase file descriptors
  • vim /etc/security/limits.conf
  • add this line
  • elasticsearch - nofile 65536
  • 验证
    GET _nodes/stats/process?filter_path=**.max_file_descriptors
Ensure sufficient virtual memory
vim /etc/sysctl.conf
vm.max_map_count = 65530

sysctl -w vm.max_map_count=262144
# vm.max_map_count = 262144

#验证
vim /etc/sysctl.conf
add vm.max_map_count = 262144

sysctl vm.max_map_count
# vm.max_map_count = 262144
  • 需要重启机器

安装中文分词

sudo bin/elasticsearch-plugin install analysis-smartcn
https://www.elastic.co/guide/en/elasticsearch/plugins/5.0/analysis-smartcn.html)

安装 logstash

[logstash-5.x]
name=Elastic repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
  • su elastic
  • sudo yum install logstash