1 备考服务器方案选择
2 备考环境集群架构
自建虚拟机集群需遵循以下网络拓扑。课程讲解的时候也会按照下面拓扑进行教学。集群至少要有两个,推荐值为三个。节点数至少为四个。推荐值为四个。DS Cluster保证至少一个节点。推荐值一个节点。CFG Cluster建议两个集群,推荐值为两个集群,其中要至少保证一个集群有两个节点。
每个节点的IP地址根据自己的网络环境。动态修改每个人的一直都是不一样的。
推荐的集群配置为,DSL_Cluster:1个节点。CFG_Cluster_1:2个节点,CFG_Cluster_2:1个节点。这是在保证符合考试要求和课程讲解的前提下的最小节点配置,如果节点过多,配置起来较为麻烦。没有太大意义,只会耽误自己时间。写点数少于这个配置,考题无法完成。
3 虚拟机方案
3.1 不同主机配置的集群拓扑选择
原则上说,备考环境越接近真实环境越好,每个节点建议2G内存,如果内存不够可以调成1G,但是默认1G内存启动会报错,需要修改jvm.options中默认要求的jvm最小值。如果内存足够不建议在环境上花太多时间,因为这并非考试内容,cfg-cluster必须至少有一个多节点集群,因为考点中包含关于集群发现的内容。就算你内存足够,也不建议配置过多节点,因为每次启动你的宿主机你都需要启动每个节点的服务,会浪费你的时间。
3.2 使用自建虚拟机
3.2.1 操作系统要求:
- 版本:CentOS 7
- RAM:建议2G
- 下载:私信我
3.2.2 Java环境:
- 版本:1.8
- 下载:
- 程序员大礼包:https://www.programmer-box.com/?ref=jdk_1.8
- Java I tell you:https://www.injdk.cn/
- Arm JDK for M1:https://www.azul.com/downloads/?version=java-8-lts&os=macos&package=jdk
- 安装:略(自行百度)
- 检查:java -version
3.2.3 Elasticsearch环境:
- 版本:7.13.x
- 下载:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
- 安装:理论课程
- 检查:访问
server_ip:9200
(视具体配置的ip和端口)
3.2.4 vim编辑器(考试环境中已安装,根据个人习惯选择是否安装)
安装:
yum install vim
3.2.5 网络配置
编辑网卡:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改配置文件:
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="none" #关闭DHCP DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="6dcded77-ba54-4f70-a16c-805333555ba86" DEVICE="ens33" ONBOOT="yes" IPADDR="192.168.3.81" #修改每个节点的ip地址 PREFIX="24" GATEWAY="192.168.3.1" DNS1="114.114.114.114" DOMAIN="8.8.8.8" IPV6_PRIVACY="no"
保存并重启网络:
service network restart
如果失败,执行
yum install net-tools
3.2.6 新手常见环境问题解决方案
1 禁用Swapping:
bootstrap.memory_lock: true
2 文件描述
问题描述:引导检查报错:未开启内存锁
问题解释:Elasticsearch 使用了很多文件描述符或文件句柄。耗尽文件描述符可能是灾难性的,并且很可能会导致数据丢失。确保将运行 Elasticsearch 的用户的打开文件描述符数量限制增加到 65,536 或更高。
解决办法:
vim /etc/security/limits.conf # 添加以下内容 * soft nofile 65536 * hard nofile 65536 * soft nproc 32000 * hard nproc 32000 * hard memlock unlimited * soft memlock unlimited vim /etc/systemd/system.conf ,分别修改以下内容。 DefaultLimitNOFILE=65536 DefaultLimitNPROC=32000 DefaultLimitMEMLOCK=infinity ulimit -n 65535(需使用root账号)
3 虚拟内存
问题描述:引导检查报错 max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
问题解释:5.0版本以后ES使用mmapfs作为默认的文件系统存储类型。可以通过配置index.store.type来设置ES默认的文件系统存储类型。ES mmapfs默认使用一个目录来存储它的索引。操作系统对 mmap 计数的默认限制可能太低,这可能会导致内存不足异常.
解决办法:
修改文件系统
Niofs(非阻塞文件系统) mmapfs(内存映射文件系统) 配置:index.store.type: niofs
使用root运行以下命令:
sysctl -w vm.max_map_count=262144
永久生效:
vi /etc/sysctl.conf vm.max_map_count=262144 grep vm.max_map_count /etc/sysctl.conf
4 线程数
问题描述:max number of threads [1024] for user [elasticsearch] is too low, increase to at least [2048]
问题解释:ES 使用多个线程池来进行不同类型的操作。重要的是它能够在需要时创建新线程。确保 Elasticsearch 用户可以创建的线程数至少为 4096。
解决办法
在启动es服务之前使用root账户执行 ulimit -u 4096
或
vim /etc/security/limits.conf 设置nproc为4096
或
vim /etc/security/limits.d/90-nproc.conf 修改如下内容(注意星号): * soft nproc 1024 => * soft nproc 4096
5 IPv4 forwarding
问题描述:WARNING: IPv4 forwarding is disabled. Networking will not work.
问题解释:翻译即可
解决办法:
vi /etc/sysctl.conf net.ipv4.ip_forward=1 restart network && systemctl restart docker sysctl net.ipv4.ip_forward
6 内存不足
问题描述:error=‘Cannot allocate memory’
问题解释:ES 5.x+堆内存大小默认配置为2G ES 7.x+默认4G
解决办法:
//JVM一般为物理内存一半 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m"
3.3 使用共享虚拟机
3.3.1 概述
考试所需Linux集群并非考点。但是我们备考这是必要条件,遵循最小化学习路线。和考试无关的内容我们能跳过则跳过。不能跳过则以最小代价来实现。如果你选择了虚拟机方案,建议直接下载老师共享的虚拟机文件,共享的虚拟机文件里已经集成好了所有环境以及配置等等,下载好导入即可使用,需要集群环境,只需克隆多个节点,改一下IP地址即可。IP地址可根据目前你的网络类型是桥接还是nat动态决策。保证多个节点在同一个内网环境下即可。
3.3.2 共享文件下载地址
虚机文件(已安装Java
环境和备考所需 ES
服务,路径:/usr/local ),通过 VMWare导入即可使用,无需自行花时间配置环境
开袋即食,多节点克隆即可
获取方式
,关注左侧公众号,回复考试环境
或加入Elastic开源社区
星球,私信星主获取。
3.4 创建elastic账号:
创建账号:useradd elastic
设置es账号的密码:passwd elastic
为账号赋予目录权限:chown -R elastic:elastic {{espath}}
4 云服务器方案
4.1 NAS
所有配置均已预先搭建完毕,包括 Java、ES 的服务以及配置文件等,无需任何修改,开箱即用
获取方式
,关注左侧公众号,回复考试环境
或加入Elastic开源社区
星球,私信星主获取。
4.2 ECS
需在阿里云或腾讯云等云服务提供商自行购买,需要自建ES备考集群环境,非内网环境需要通过外网配置集群。
5 主机环境
5.1 Kibana
- 版本:7.13.x
- 下载:
- http://www.elastic.show/download/Elasticsearch/7.13/ (使用迅雷下载)
- https://www.elastic.co/cn/downloads/past-releases#elasticsearch
- 安装:课程
- 修改配置项:
- server.host: “server_ip:port”
- server.port: 5601
5.2 远程终端
- Windows:xshell
- MacOS:
- ZenTermLite
- Termius
- all:electerm
这个软件目前是一款开源的虚拟机连接工具,跟大名鼎鼎的Xshell一样好用,软件设计上更加简洁,大气,连接配置也非常方便;只需要配置3个信息(IP地址,用户名和密码)即可连接;软件还提供了命令批量导入功能,比如我们在安装讲集群的时候同时打开三个界面,我们只需要在批量输入框中输入想要的命令,就可以实现在多个界面同时运行,大大减少了平时工作过程中的重复操作,大大提升了虚拟机的体验和工作的效率,是虚拟机运维的一款神奇;目前此软件用的比较少,但是一旦用少你会爱上它;
6 浏览器
Chrome浏览器(必须是Chrome,考试的时候必须使用谷歌浏览器,建议备考的时候和考试环境保持一致。)