找回密码
 立即注册
首页 业界区 业界 Ubuntu二进制安装ElasticSearch7.17.x版本集群

Ubuntu二进制安装ElasticSearch7.17.x版本集群

毋峻舷 2025-6-14 22:49:43
概述

本文主要讲解如何二进制安装Linux二进制集群
环境信息

主机名IP地址系统ELK0110.0.0.40Ubuntu22.04ELK0210.0.0.41Ubuntu22.04ELK0310.0.0.42Ubuntu22.04实操

安装JDK(所有节点都需要安装)

ElasticSearch是使用Java语言开发的,所以运行时依赖JDK
安装JDK可以参考这篇文章:https://www.cnblogs.com/huangSir-devops/p/18919758
ElasticSearch版本和Java版本对应关系,可以阅读这篇文章:https://www.elastic.co/support/matrix#matrix_jvm
我们这里安装ELasticSearch7.17.x版本的,我们安装JDK11版本
  1. # 下载
  2. [root@master ~]# wget https://mirrors.huaweicloud.com/openjdk/11.0.2/openjdk-11.0.2_linux-x64_bin.tar.gz
  3. [root@master ~]# ll openjdk-11.0.2_linux-x64_bin.tar.gz
  4. -rw-r--r-- 1 root root 187513052 Jan 18  2019 openjdk-11.0.2_linux-x64_bin.tar.gz
  5. # 解压
  6. [root@master ~]# tar -xvf openjdk-11.0.2_linux-x64_bin.tar.gz
  7. # 创建软连接
  8. [root@master ~]# ln -s /root/jdk-11.0.2 /usr/local/jdk11
  9. [root@master ~]# ll /usr/local/jdk11
  10. lrwxrwxrwx 1 root root 16 Jun 14 21:09 /usr/local/jdk11 -> /root/jdk-11.0.2/
  11. # 配置环境变量
  12. [root@master ~]# vim /etc/profile
  13. # 根据实际安装路径修改
  14. export JAVA_HOME=/usr/local/jdk11/
  15. export PATH=$JAVA_HOME/bin:$PATH
  16. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  17. # 加载环境变量
  18. [root@master ~]# source /etc/profile
  19. # 验证
  20. [root@master ~]# java -version
  21. openjdk version "11.0.2" 2019-01-15
  22. OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
  23. OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
复制代码
配置主机名及添加hosts解析

ELK01节点设置
  1. [root@master ~]# hostnamectl set-hostname ELK01
  2. [root@master ~]# hostname
  3. ELK01
复制代码
ELK02节点设置
  1. [root@master ~]# hostnamectl set-hostname ELK02
  2. [root@master ~]# hostname
  3. ELK02
复制代码
ELK03节点设置
  1. [root@master ~]# hostnamectl set-hostname ELK03
  2. [root@master ~]# hostname
  3. ELK03
复制代码
三台节点都添加hosts解析
  1. [root@master ~]# vim /etc/hosts
  2. 10.0.0.40 ELK01
  3. 10.0.0.41 ELK02
  4. 10.0.0.42 ELK03
复制代码
配置时间同步(所有节点都需配置)
  1. [root@master ~]# ln -svf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  2. #下载ntpdate  工具
  3. [root@master ~]# apt -y install ntpdate
  4. [root@master ~]# ntpdate ntp.aliyun.com
  5. [root@master ~]# echo "*/5 * * * * /usr/sbin/ntpdate ntp.aliyun.com" > /var/spool/cron/crontabs/root
复制代码
系统配置(所有节点都需配置)

优化系统参数
  1. [root@master ~]# vim /etc/sysctl.conf
  2. # ES 需要大量文件描述符来处理索引和网络连接,建议设置为较高值:
  3. fs.file-max = 655360
  4. # ES 使用 mmap 技术加载索引,需增大虚拟内存区域限制:
  5. vm.max_map_count = 2147483642
  6. # 禁用交换空间(swap分区)
  7. vm.swappiness = 1
  8. # 网络参数优化
  9. net.ipv4.tcp_keepalive_time = 600
  10. net.ipv4.tcp_keepalive_intvl = 60
  11. net.ipv4.tcp_keepalive_probes = 10
  12. net.ipv4.tcp_max_syn_backlog = 4096
  13. net.core.somaxconn = 4096
  14. net.core.netdev_max_backlog = 16384
  15. net.core.rmem_max = 262144
  16. net.core.wmem_max = 262144
  17. # 使参数生效
  18. [root@master ~]# sysctl -p /etc/sysctl.conf
  19. # 查询参数,验证是否生效
  20. [root@master ~]# sysctl -q vm.max_map_count
  21. vm.max_map_count = 2147483642
复制代码
创建es存储目录
  1. [root@master ~]# mkdir -p /data/elasticsearch/
  2. [root@master ~]# mkdir -p /var/log/elasticsearch/
复制代码
创建es用户
  1. [root@master ~]# useradd elasticsearch
  2. [root@master ~]# id elasticsearch
  3. uid=2002(elasticsearch) gid=2003(elasticsearch) groups=2003(elasticsearch)
  4. # 授权
  5. [root@master ~]# chown elasticsearch:elasticsearch -R /data/elasticsearch/
  6. [root@master ~]# chown elasticsearch:elasticsearch -R /var/log/elasticsearch/
复制代码
添加es用户的限制
  1. [root@master ~]# vim /etc/security/limits.conf
  2. # 最大文件描述符数
  3. elasticsearch hard nofile 655360
  4. elasticsearch soft nofile 655360
  5. # 最大进程数
  6. elasticsearch hard nproc 8192
  7. elasticsearch soft nproc 8192
  8. # 锁定内存限制
  9. elasticsearch hard memlock unlimited
  10. elasticsearch soft memlock unlimited
复制代码
下载并配置ElasticSearch(所有节点操作)

官方下载地址:https://www.elastic.co/downloads/past-releases#elasticsearch
下载解压ElasticSearch
  1. # 下载ElasticSearch
  2. [root@master ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.26-linux-x86_64.tar.gz
  3. [root@master ~]# ll elasticsearch-7.17.26-linux-x86_64.tar.gz
  4. -rw-r--r-- 1 root root 325410598 Dec  3  2024 elasticsearch-7.17.26-linux-x86_64.tar.gz
  5. # 解压
  6. [root@master ~]# tar -xvf elasticsearch-7.17.26-linux-x86_64.tar.gz
  7. # 移动到/data目录下
  8. [root@master ~]# mv elasticsearch-7.17.26 /data/
  9. # 授权
  10. [root@master ~]# chown elasticsearch:elasticsearch -R /data/elasticsearch-7.17.26/
  11. # 创建软连接
  12. [root@master ~]# ln -s /data/elasticsearch-7.17.26 /usr/local/es7
  13. [root@master ~]# ll /usr/local/es7
  14. lrwxrwxrwx 1 root root 27 Jun 14 21:50 /usr/local/es7 -> /data/elasticsearch-7.17.26/
复制代码
修改配置文件
  1. [root@master ~]# vim /usr/local/es7/config/elasticsearch.yml
  2. cluster.name: es7
  3. path.data: /data/elasticsearch
  4. path.logs: /var/log/elasticsearch
  5. network.host: 0.0.0.0
  6. http.port: 9200
  7. discovery.seed_hosts: ["ELK01", "ELK02", "ELK03"]
  8. cluster.initial_master_nodes: ["ELK01", "ELK02", "ELK03"]
  9. # 根据节点名称来进行修改此字段
  10. # node.name: ELK01
  11. # node.name: ELK02
  12. node.name: ELK03
复制代码
启动ElasticSearch集群(三个节点都执行)

创建systemd文件
  1. [root@master ~]# vim /lib/systemd/system/es.service
  2. [Unit]
  3. Description=elasticsearch service
  4. Documentation=https://www.cnblogs.com/huangSir-devops
  5. After=network.target auditd.service
  6. [Service]
  7. LimitMEMLOCK=infinity
  8. User=elasticsearch
  9. ExecStart=/usr/local/es7/bin/elasticsearch
  10. TimeoutStopSec=0
  11. TimeoutStartSec=0
  12. [Install]
  13. WantedBy=multi-user.target
复制代码
加载systemd文件
  1. [root@master ~]# systemctl daemon-reload
复制代码
启动es
  1. [root@master ~]# systemctl start es
  2. [root@master ~]# systemctl status es
  3. ● es.service - elasticsearch service
  4.      Loaded: loaded (/lib/systemd/system/es.service; disabled; vendor preset: enabled)
  5.      Active: active (running) since Sat 2025-06-14 21:51:19 CST; 34s ago
  6.        Docs: https://www.cnblogs.com/huangSir-devops
  7.    Main PID: 1420 (java)
  8.       Tasks: 43 (limit: 4519)
  9.      Memory: 2.1G
  10.         CPU: 54.474s
  11.      CGroup: /system.slice/es.service
  12.              ├─1420 /usr/local/es7/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -D
  13. file.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -XX:+ShowCodeDetailsInExceptionMessages -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.
  14. maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j2.formatMsgNoLookups=true -Djava.locale.providers=SPI,COMPAT
  15. --add-opens=java.base/java.io=ALL-UNNAMED -Djava.security.manager=allow -XX:+UseG1GC -Djava.io.tmpdir=/tmp/elasticsearch-1928841724883000105 -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfM
  16. emoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log "-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m" -XX:+UnlockDiagnosticVMOpt
  17. ions -XX:G1NumCollectionsKeepPinned=10000000 -Xms1937m -Xmx1937m -XX:MaxDirectMemorySize=1016070144 -XX:G1HeapRegionSize=4m -XX:InitiatingHeapOccupancyPercent=30 -XX:G1ReservePercent=15 -Des
  18. .path.home=/usr/local/es7 -Des.path.conf=/usr/local/es7/config -Des.distribution.flavor=default -Des.distribution.type=tar -Des.bundled_jdk=true -cp "/usr/local/es7/lib/*" org.elasticsearch.
  19. bootstrap.Elasticsearch
  20.              └─1603 /usr/local/es7/modules/x-pack-ml/platform/linux-x86_64/bin/controller
  21. Jun 14 21:51:47 ELK01 elasticsearch[1420]: [2025-06-14T21:51:47,200][INFO ][o.e.n.Node               ] [ELK01] starting ...
  22. Jun 14 21:51:47 ELK01 elasticsearch[1420]: [2025-06-14T21:51:47,216][INFO ][o.e.x.s.c.f.PersistentCache] [ELK01] persistent cache index loaded
  23. Jun 14 21:51:47 ELK01 elasticsearch[1420]: [2025-06-14T21:51:47,217][INFO ][o.e.x.d.l.DeprecationIndexingComponent] [ELK01] deprecation component started
  24. Jun 14 21:51:47 ELK01 elasticsearch[1420]: [2025-06-14T21:51:47,374][INFO ][o.e.t.TransportService   ] [ELK01] publish_address {10.0.0.40:9300}, bound_addresses {[::]:9300}
  25. Jun 14 21:51:47 ELK01 elasticsearch[1420]: [2025-06-14T21:51:47,391][INFO ][o.e.x.m.Monitoring       ] [ELK01] creating template [.monitoring-alerts-7] with version [7]
  26. Jun 14 21:51:47 ELK01 elasticsearch[1420]: [2025-06-14T21:51:47,400][INFO ][o.e.x.m.Monitoring       ]
复制代码
检查集群节点
  1. # 检查集群节点
  2. [root@master /var/log/elasticsearch]# curl 10.0.0.40:9200/_cat/nodes
  3. 10.0.0.40 22 97 12 0.41 0.38 0.26 cdfhilmrstw * ELK01
  4. 10.0.0.42  6 97 13 0.30 0.26 0.15 cdfhilmrstw - ELK03
  5. 10.0.0.41 21 97 12 0.23 0.19 0.11 cdfhilmrstw - ELK02
  6. # 查看集群是否健康
  7. [root@master /var/log/elasticsearch]# curl 10.0.0.40:9200/_cat/health?v
  8. epoch      timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
  9. 1749909982 14:06:22  es7     green           3         3      4   2    0    0        0             0                  -                100.0%
复制代码
记一下:下一次可以写一下Docker和K8s搭建ES的集群

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册