Centos7.6部署Elasticsearch-7.5.0集群

╰半夏微凉° 2023-07-19 05:00 49阅读 0赞

一、实验环境

  1. master 192.168.14.210
  2. node-1 192.168.14.211
  3. node-2 192.168.14.213
  4. 主机系统统一使用:cat /etc/redhat-release
  5. CentOS Linux release 7.6.1810 (Core)
  6. 软件包
  7. elasticsearch-7.5.0-linux-x86_64.tar.gz (三台需要)
  8. jdk-11.0.5_linux-x64_bin.tar.gz (三台需要)
  9. kibana-7.5.0-linux-x86_64.tar.gz (主节点需要)

二、安装elasticsearch

以下实验都是使用软件包解压安装,为了使路径一致请选择此方法;当然也可以使用rpm包安装;

  • 第1-9步,三台主机操作步骤一致,再次不再重复
  • 第10步,根据主机修改配置文件
  • 第11步,以上通过再统一启动

1、关闭selinux和防火墙(或者防火墙放行端口)

  1. [root@master ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  2. [root@master ~]# systemctl stop firewalld
  3. 或者
  4. [root@master ~]# firewall-cmd --permanent --add-port=5601/tcp
  5. [root@master ~]# firewall-cmd --permanent --add-port=9200/tcp
  6. [root@master ~]# firewall-cmd --permanent --add-port=9300/tcp
  7. [root@master ~]# firewall-cmd --reload
  8. 添加主机解析
  9. [root@master ~]# vi /etc/hosts
  10. 192.168.14.210 node-1
  11. 192.168.14.211 node-2
  12. 192.168.14.213 node-3

2、解压jdk

  1. [root@master ~]# tar -zxvf jdk-11.0.5_linux-x64_bin.tar.gz -C /usr/local/

3、配置环境变量

  1. [root@master ~]# vi /etc/profile
  2. #底部添加
  3. export JAVA_HOME=/usr/local/jdk-11.0.5/
  4. export PATH=$PATH:$JAVA_HOME/bin
  5. export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
  6. [root@master ~]# source /etc/profile

4、验证jdk

  1. [root@master ~]# java -version
  2. java version "11.0.5" 2019-10-15 LTS
  3. Java(TM) SE Runtime Environment 18.9 (build 11.0.5+10-LTS)
  4. Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode)

5、解压elasticsearch

  1. [root@master ~]# tar -zxvf elasticsearch-7.5.0-linux-x86_64.tar.gz -C /usr/local/

6、配置环境变量

  1. [root@master ~]# vi /etc/profile
  2. export PATH=$PATH:/usr/local/elasticsearch-7.5.0/bin
  3. [root@master ~]# source /etc/profile

7、创建用户(elasticsearch不能使用root用户启动)

  1. [root@master ~]# useradd -s /sbin/nologin elk

8、添加权限

  1. [root@master ~]# chown -R elk:elk /usr/local/elasticsearch-7.5.0

9、修改系统配置文件(不然会影响启动)

  1. 1、最大文件打开数调整/etc/security/limits.conf
  2. [root@master ~]# vi /etc/security/limits.conf
  3. * - nofile 65535
  4. 2、最大打开进程数调整/etc/security/limits.d/20-nproc.conf
  5. [root@master ~]# vi /etc/security/limits.d/20-nproc.conf
  6. * - nproc 10240
  7. 3、内核参数调整/etc/sysctl.conf
  8. [root@master ~]# vi /etc/sysctl.conf
  9. vm.max_map_count = 262144
  10. [root@master ~]# sysctl -p
  11. 建议重启一次系统

10、重点:修改elasticsearch配置文件(三台都要修改)

  1. 1、主节点
  2. [root@master ~]# vi /usr/local/elasticsearch-7.5.0/config/elasticsearch.yml
  3. [root@master ~]# cat /usr/local/elasticsearch-7.5.0/config/elasticsearch.yml
  4. cluster.name: my-elk #集群名称
  5. node.master: true #是否为主节点
  6. node.name: master #节点名称
  7. path.data: data #数据存储路径,会自动创建
  8. path.logs: logs #日志存储路径
  9. network.host: 0.0.0.0 #监听ip,在实际环境中应设置为一个安全的ip
  10. http.port: 9200 #es服务的端口号
  11. discovery.seed_hosts: ["192.168.14.210", "192.168.14.211","192.168.14.213"] #自动发现IP
  12. cluster.initial_master_nodes: ["master"] #主节点
  13. xpack.ml.enabled: false
  14. 2、从节点-1
  15. [root@node-1 ~]# vi /usr/local/elasticsearch-7.5.0/config/elasticsearch.yml
  16. cluster.name: my-elk
  17. node.name: node-1
  18. node.master: false
  19. path.data: data
  20. path.logs: logs
  21. network.host: 192.168.14.211
  22. http.port: 9200
  23. discovery.zen.ping.unicast.hosts: ["192.168.14.210","192.168.14.211","192.168.14.213"]
  24. cluster.initial_master_nodes: ["master"]
  25. xpack.ml.enabled: false
  26. 3、从节点-2
  27. [root@node-2 ~]# vi /usr/local/elasticsearch-7.5.0/config/elasticsearch.yml
  28. cluster.name: my-elk
  29. node.name: node-2
  30. node.master: false
  31. path.data: data
  32. path.logs: logs
  33. network.host: 192.168.14.213
  34. http.port: 9200
  35. discovery.zen.ping.unicast.hosts: ["192.168.14.210","192.168.14.211","192.168.14.213"]
  36. cluster.initial_master_nodes: ["master"]
  37. xpack.ml.enabled: false

11、前台启动elasticsearch观察(等三台都执行1-8步骤之后再统一启动),没有问题再加 -d后台启动

  1. 三台操作一致
  2. [root@master ~]# su - elk -s /bin/bash
  3. [elk@nmaster ~]$ elasticsearch
  4. 如果启动没有异常自动退出,则可以加-d后台启动
  5. [elk@master ~]$ elasticsearch -d

20200329212954846.png

20200329212929402.png

12、查看集群状态

  1. [root@master ~]# curl '192.168.14.210:9200/_cluster/health?pretty'
  2. {
  3. "cluster_name" : "my-elk",
  4. "status" : "green", #绿色表示正常
  5. "timed_out" : false,
  6. "number_of_nodes" : 3,
  7. "number_of_data_nodes" : 3,
  8. "active_primary_shards" : 0,
  9. "active_shards" : 0,
  10. "relocating_shards" : 0,
  11. "initializing_shards" : 0,
  12. "unassigned_shards" : 0,
  13. "delayed_unassigned_shards" : 0,
  14. "number_of_pending_tasks" : 0,
  15. "number_of_in_flight_fetch" : 0,
  16. "task_max_waiting_in_queue_millis" : 0,
  17. "active_shards_percent_as_number" : 100.0
  18. }

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70

三、安装Kibana

1、解压kibana

  1. [root@master ~]# tar -zxvf kibana-7.5.0-linux-x86_64.tar.gz -C /usr/local/
  2. [root@master ~]# cd /usr/local/
  3. [root@master local]# mv kibana-7.5.0-linux-x86_64 kibana-7.5.0

2、配置环境变量

  1. [root@master ~]# vi /etc/profile
  2. export PATH=$PATH:/usr/local/kibana-7.5.0/bin
  3. [root@master ~]# source /etc/profile

3、添加权限

  1. [root@master ~]# chown -R elk:elk /usr/local/kibana-7.5.0

4、修改系统配置文件

  1. [root@master ~]# vi /usr/local/kibana-7.5.0/config/kibana.yml
  2. server.port: 5601
  3. server.host: "0.0.0.0"

5、使用elk用户启动

  1. [root@master ~]# su - elk -s /bin/bash
  2. [elk@master ~]$ nohup kibana >/tmp/kibana.log 2>&1 &
  3. 查看进程
  4. [elk@master ~]$ ps auxf|grep kibana
  5. elk 7065 147 1.3 1302044 217396 pts/0 Rl 22:09 0:38 \_ /usr/local/kibana-7.5.0/bin/../node/bin/node /usr/local/kibana-7.5.0/bin/../src/cli
  6. elk 7080 0.0 0.0 112708 968 pts/0 S+ 22:09 0:00 \_ grep --color=auto kibana

四、查看集群状态(明文方式)

1、浏览器访问,此时登录不需要用户名和密码,相对不安全。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 1

2、启动监控本机

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 2

3、查看集群状态正常

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 3

五、配置证书

为了加强elasticsearch的安全性,需要设置密码登录

1、配置证书

  1. [elk@master ~]$ cd /usr/local/elasticsearch-7.5.0/
  2. [elk@master elasticsearch-7.5.0]$ ./bin/elasticsearch-certutil ca
  3. [elk@master elasticsearch-7.5.0]$ ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 4

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 5

2、拷贝文件到config目录

  1. [elk@master elasticsearch-7.5.0]$ cp elastic-* config/

3、注意文件的权限

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 6

4、拷贝证书到从节点主机

  1. [elk@master config]$ scp elastic-* root@192.168.14.211:/usr/local/elasticsearch-7.5.0/config/
  2. [elk@master config]$ scp elastic-* root@192.168.14.213:/usr/local/elasticsearch-7.5.0/config/

5、重点:修改配置文件(三台都要修改)

  1. 1、主节点:
  2. [elk@master ~]$ vi /usr/local/elasticsearch-7.5.0/config/elasticsearch.yml
  3. cluster.name: my-elk
  4. node.master: true
  5. node.name: master
  6. path.data: data
  7. path.logs: logs
  8. network.host: 0.0.0.0
  9. http.port: 9200
  10. discovery.seed_hosts: ["192.168.14.210", "192.168.14.211","192.168.14.213"]
  11. cluster.initial_master_nodes: ["master"]
  12. xpack.ml.enabled: false
  13. #添加以下配置
  14. xpack.security.enabled: true
  15. xpack.security.transport.ssl.enabled: true
  16. xpack.security.transport.ssl.verification_mode: certificate
  17. xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
  18. xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
  19. 2、从节点-1
  20. 刚拷贝过来的证书需要重新设置权限
  21. [root@node-1 ~]# chown -R elk:elk /usr/local/elasticsearch-7.5.0
  22. [root@node-1 ~]# vi /usr/local/elasticsearch-7.5.0/config/elasticsearch.yml
  23. cluster.name: my-elk
  24. node.name: node-1
  25. node.master: false
  26. path.data: data
  27. path.logs: logs
  28. network.host: 192.168.14.211
  29. http.port: 9200
  30. discovery.zen.ping.unicast.hosts: ["192.168.14.210","192.168.14.211","192.168.14.213"]
  31. cluster.initial_master_nodes: ["master"]
  32. xpack.ml.enabled: false
  33. xpack.security.enabled: true
  34. xpack.security.transport.ssl.enabled: true
  35. xpack.security.transport.ssl.verification_mode: certificate
  36. xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
  37. xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
  38. 3、从节点-2
  39. [root@node-2 ~]# chown elk:elk /usr/local/elasticsearch-7.5.0
  40. [root@node-2 ~]# vi /usr/local/elasticsearch-7.5.0/config/elasticsearch.yml
  41. cluster.name: my-elk
  42. node.name: node-2
  43. node.master: false
  44. path.data: data
  45. path.logs: logs
  46. network.host: 192.168.14.213
  47. http.port: 9200
  48. discovery.zen.ping.unicast.hosts: ["192.168.14.210","192.168.14.211","192.168.14.213"]
  49. cluster.initial_master_nodes: ["master"]
  50. xpack.ml.enabled: false
  51. xpack.security.enabled: true
  52. xpack.security.transport.ssl.enabled: true
  53. xpack.security.transport.ssl.verification_mode: certificate
  54. xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
  55. xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 7

6、设置密码(master节点设置即可)

  1. [root@master ~]# /usr/local/elasticsearch-7.5.0/bin/elasticsearch-setup-passwords interactive

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 8

7、在kibana配置文件添加用户和密码

  1. [root@master ~]# vi /usr/local/kibana-7.5.0/config/kibana.yml
  2. [root@master ~]# cat /usr/local/kibana-7.5.0/config/kibana.yml |grep elasticsearch|egrep -v ^#
  3. elasticsearch.username: "kibana"
  4. elasticsearch.password: "password"

六、查看集群状态(加密方式)

1、修改elasticsearch和kibana之后尽量重启服务,在master节点可以看到集群状态改变

20200329231225958.png

2、浏览器登录已经需要密码,三台主机集群之间传送数据也是加密的

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 9

3、查看集群状态正常

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 10

4、查看主机状态正常

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 11

5、假设一台从节点故障

2020032923165198.png

6、集群状态会先变为yellow

20200329231723846.png

7、然后再自动从yellow改变为green

20200329231813242.png

8、紧急情况下两台从节点都故障也能正常使用,因为默认的最少节点为1(-u后面跟用户名和密码)

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 12

" class="reference-link">watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RsYWRhZ2lv_size_16_color_FFFFFF_t_70 13

七、故障说明

1、主节点启动正常,但是从节点没有找到主节点,主节点需要从节点的选举

  1. [2020-03-29T20:39:07,581][WARN ][o.e.c.c.ClusterFormationFailureHelper] [master] master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster, and this node must discover master-eligible nodes [node-1] to bootstrap a cluster: have discovered [{master}{p4N0aL9dTs6KV7kqFnnwlg}{Uy0gnf_HQyqr1ZRGxB4axA}{192.168.14.210}{192.168.14.210:9300}{dim}{xpack.installed=true}]; discovery will continue using [192.168.14.211:9300, 192.168.14.213:9300] from hosts providers and [{master}{p4N0aL9dTs6KV7kqFnnwlg}{Uy0gnf_HQyqr1ZRGxB4axA}{192.168.14.210}{192.168.14.210:9300}{dim}{xpack.installed=true}] from last-known cluster state; node term 0, last-accepted version 0 in term 0

发表评论

表情:
评论列表 (有 0 条评论,49人围观)

还没有评论,来说两句吧...

相关阅读