首先须要确保已经安装了Java(JAVA安装再也不赘述)
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.1.tar.gzjava
tar -xvzf elasticsearch-5.4.1.tar.gz -C /opt/elasticsearch-5.4.1
ln -s /opt/elasticsearch-5.4.1 /opt/elasticsearchnode
/etc/security/limits.conf
root soft nofile 65536
root hard nofile 65536
* soft nofile 65536
* hard nofile 65536
deploy soft memlock unlimited
deploy hard memlock unlimitedlinux
/etc/sysctl.conf
fs.file-max=65536
vm.max_map_count=262144正则表达式
sysctl -pbootstrap
#集群名 cluster.name: log_es #节点名 node.name: node-1 #数据目录 path.data: /data/es/data #日志目录 path.logs: /data/es/logs #设置为true来锁住内存不进行swapping。由于当jvm开始swapping时es的效率 会下降,因此要保证它不swap,能够把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,而且保证机器有足够的内存分配给es。 同时也要容许elasticsearch的进程能够锁住内存,linux下启动es以前能够经过`ulimit -l unlimited`命令设置。 bootstrap.memory_lock: true #当有多个网络的时候能够设置bind_host和publish_host,可是这两个必须同时设置,且与network.host冲突,bind(监听)能够设置多个ip,publish(发布)只能设置一个ip network.bind_host: 0.0.0.0 network.publish_host: 10.31.48.190 #监听端口 http.port: 9200 #设置节点之间交互的tcp端口,默认是9300。 transport.tcp.port: 9300 #设置这个参数来保证集群中的节点能够知道其它N个有master资格的节点。默认为1,对于大的集群来讲,能够设置大一点的值(2-4) discovery.zen.minimum_master_nodes: 1 #节点间交互时,能够设置是否压缩,转为为不压缩: transport.tcp.compress: true #是否容许跨域请求。默认为 false http.cors.enabled: true #定义容许哪些源请求。可使用正则表达式,例如 /https?:\/\/localhost(:[0-9]+)?/ 可设置支持本地HTTP和HTTPS请求。也能够设置为 * ,可是会存在安全隐患,由于任何来源均可访问Elasticsearch(如下简称为Es)实例。 http.cors.allow-origin: "*" 设置新节点被启动时可以发现的主节点列表(主要用于不一样网段机器链接) discovery.zen.ping.unicast.hosts: ["10.31.48.190:9300", "10.45.16.37:9300","10.26.13.131:9300"]
要做为守护程序运行Elasticsearch,请在命令行上指定-d ,并使用-p选项将进程ID记录在文件中:跨域
./bin/elasticsearch -d -p pid安全