首先須要確保已經安裝了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安全