【ELK】elasticsearch的集羣搭建與啓動

通過上篇博客,我們已經從概念上了解elasticsearch了,相信在安裝配置的時候,會有熟悉感的,尤其是在配置elasticsearch.yml文件的時候。

一、前提準備

ElasticSearch分爲Linux和Window版本,本篇博客用的Linux版本

ElasticSearch的官方地址: https://www.elastic.co/products/elasticsearch

我用的elasticsearch的包是:elasticsearch-6.3.0.tar.gz,所在路徑是/usr/local/elk

安裝elasticsearch前提是已經安裝好了jdk
安裝jdk可參考這篇博客:
【運維】Centos上JDK的下載與安裝
查看是否安裝jdk,java -version
在這裏插入圖片描述
如果安裝jdk過程中出現錯誤,可參考這篇博客
Linux安裝jdk1.8以及出現的問題

二、安裝配置

1、解壓

我將elasticsearch-6.3.0.tar.gz上傳到了/usr/local/elk的路徑下,所以需要在/usr/local/elk路徑下操作
cd /usr/local/elk

tar -zxvf elasticsearch-6.3.0.tar.gz

2、添加用戶

由於elasticsearch不能由root用戶啓動,所以需要添加一個用戶

(1)添加用戶組

groupadd es_admin

(2)添加用戶

useradd es_admin -g es_admin

(3)修改用戶密碼

echo 'es_admin' | passwd --stdin es_admin

(4)給用戶提升權限

chown -Rf es_admin:es_admin /usr/local/elk/elasticsearch-6.3.0

3、創建數據和日誌目錄

mkdir -pv /usr/local/elk/es630/data/{data1,data2,data3,logs}

這是一個批量創建命令

4、修改sysctl.conf文件

vim /etc/sysctl.conf

在文件末尾添加

vm.max_map_count=655360

在這裏插入圖片描述
可用sysctl -p查看是否設置成功
在這裏插入圖片描述

5、修改limits.conf文件

vim /etc/security/limits.conf

在文件末尾添加

* soft memlock unlimited
* hard memlock unlimited
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096

在這裏插入圖片描述
重新登錄終端,上述配置即可生效。客用 ulimit -n查看
在這裏插入圖片描述

6、修改配置文件elasticsearch.yml

切換到config路徑下

cd /usr/local/elk/elasticsearch-6.3.0/config/

修改elasticsearch.yml文件

vim elasticsearch.yml

配置如下


# ---------------------------------- Cluster -----------------------------------

cluster.name: elasticsearch
cluster.routing.allocation.cluster_concurrent_rebalance: 16
cluster.routing.allocation.node_concurrent_recoveries: 16
cluster.routing.allocation.node_initial_primaries_recoveries: 16


# ------------------------------------ Node ------------------------------------

node.name: es_node1
node.master: true
node.data: true


# ----------------------------------- Paths ------------------------------------

path.data: /usr/local/elk/elasticsearch-6.3.0/data/data1,/usr/local/elk/elasticsearch-6.3.0/data/data2,/usr/local/elk/elasticsearch-6.3.0/data/data3
path.logs: /usr/local/elk/elasticsearch-6.3.0/data/logs


# ----------------------------------- Memory -----------------------------------

bootstrap.memory_lock: false
bootstrap.system_call_filter: false
# ---------------------------------- Network -----------------------------------
network.host: 192.168.226.133 # 本機ip
network.tcp.no_delay: true
network.tcp.keep_alive: true
network.tcp.reuse_address: true
network.tcp.send_buffer_size: 64mb
network.tcp.receive_buffer_size: 64mb


transport.tcp.port: 9301 # tcp通訊端口號 默認是9300
transport.tcp.compress: true
http.max_content_length: 100mb
http.enabled: true

#解決跨域問題
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, X-User"


http.port: 9201 # http協議端口號 默認是9200

# --------------------------------- Discovery ----------------------------------

discovery.zen.ping.unicast.hosts: ["192.168.226.133", "192.168.226.132","192.168.226.134"]  # 所搭建集羣的每臺機器的ip

discovery.zen.minimum_master_nodes: 2
discovery.zen.fd.ping_timeout: 150s
discovery.zen.fd.ping_retries: 6
discovery.zen.fd.ping_interval: 15s

7、分別另外倆臺機器的配置文件elasticsearch.yml

同上,只需要修改節點的名字即可

node.name: es_node1

如果覺得每臺都配一遍一樣的太費勁的話,我們可以直接將第一個配置好的elasticsearch.yml文件複製到另外倆臺服務器的相同路徑下即可。
可用服務器間傳輸文件的形式

scp -r /usr/local/elk/elasticsearch-6.3.0/config/elasticsearch.yml root@192.168.226.132:/usr/local/elk/elasticsearch-6.3.0/config/ 
 
scp -r /usr/local/elk/elasticsearch-6.3.0/config/elasticsearch.yml root@192.168.226.134:/usr/local/elk/elasticsearch-6.3.0/config/

8、啓動

(1)切換用戶

su - es_admin

(2)切換到bin目錄下

cd /usr/local/elk/elasticsearch-6.3.0/bin/

(3)啓動

./elasticsearch

後臺啓動

./elasticsearch -d

9、查看是否搭建成功

curl -XGET 'http://192.168.226.133:9201/_cat/nodes?v'

結果如下,就代表已搭建成功了
在這裏插入圖片描述
以上過程,elasticsearch集羣就搭建完了。

三、擴展

設置elasticsearch開機自啓

做了開機自啓,之後服務器重啓,我們就不用手動一個一個啓動elasticsearch了。

(1)修改elasticsearch文件

vim /etc/init.d/elasticsearch
#!/bin/sh

#chkconfig: 2345 80 05

#description: elasticsearch


export JAVA_HOME=/usr/local/java/jdk1.8.0_65/

export JAVA_BIN=/usr/local/java/jdk1.8.0_65/bin

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME JAVA_BIN PATH CLASSPATH


case "$1" in
start)
    su es_admin<<!
    cd /usr/local/elk/elasticsearch-6.3.0
    ./bin/elasticsearch -d
!
    echo "elasticsearch startup"
    ;;
stop)
    es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
    kill -9 $es_pid
    echo "elasticsearch stopped"
    ;;
restart)
    es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
    kill -9 $es_pid
    echo "elasticsearch stopped"
    su es_admin<<!
    cd /usr/local/elk/elasticsearch-6.3.0
    ./bin/elasticsearch -d
!
    echo "elasticsearch startup"
    ;;
*)
    echo "start|stop|restart"
    ;;
esac

exit $?

(2)修改文件權限


chmod +x /etc/init.d/elasticsearch

(3)添加開機自啓

chkconfig --add /etc/init.d/elasticsearch
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章