Preparación ambiental
descripción del servidor
Esta demostración utiliza tres servidores RockyLinux 8.5
servidor | IP | Observación |
---|---|---|
es-master | 172.16.7.11 | nodo maestro |
es-node01 | 172.16.7.5 | 01 nodo |
es-nodo02 | 172.16.7.13 | 02 nodo |
versión del núcleo
[root@es-master ~]# uname -a
Linux es-master 4.18.0-348.20.1.el8_5.x86_64 #1 SMP Thu Mar 10 20:59:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
modificar el nombre del sistema
## 主节点
hostnamectl set-hostname es-master
## node1节点
hostnamectl set-hostname es-node01
## node2节点
hostnamectl set-hostname es-node02
configurar anfitriones
Todos los servidores configuran algún /etc/hosts
172.16.7.11 es-master
172.16.7.5 es-node01
172.16.7.13 es-node02
Instalar JDK
##### 7.x开始内置了JDK不需要安装了,官网连接:
https://www.elastic.co/cn/support/matrix#logstash_plugins
crear usuario
useradd cncfclub
passwd cncfclub
chown -R cncfclub:cncfclub elasticsearch-7.6.2
descargar paquete
Descargar software
Enlace de descarga de la comunidad china ES:
Elija una versión que crea que es estable, elegí 7.6.2 aquí
Cree una carpeta y transfiera es a la carpeta y descomprímala
mkdir -p /server/tools && cd /server/tools
Transfiera el paquete de instalación de es descargado a tres servidores para
descomprimir y eliminar el archivo comprimido
## 解压
tar xf elasticsearch-7.6.2-linux-x86_64.tar.gz
## 删除
rm -f elasticsearch-7.6.2-linux-x86_64.tar.gz
despliegue de clúster
Descripción de la estructura del directorio
bin: archivos de script, incluidos los complementos de inicio e instalación de ES, etc.
config: elasticsearch.yml (archivo de configuración ES), jvm.options (archivo de configuración JVM), archivo de configuración de registro, etc.
JDK: JDK integrado, JAVA_VERSION="12.0.1"
lib: biblioteca de clases
registros: archivos de registro
módulos: todos los módulos ES, incluido X-pack, etc.
complementos: ES complementos instalados. sin complementos por defecto
datos: cuando se inicia ES, habrá este directorio para almacenar datos de documentos. El directorio se puede configurar
optimización de JVM
De acuerdo con la "Memoria de almacenamiento dinámico: edición de tamaño e intercambio": https://www.elastic.co/guide/cn/elasticsearch/guide/current/heap-sizing.html
La memoria de pila configurada después de instalar ES de forma predeterminada es de 1 GB, que definitivamente es menos en el uso real. El tamaño de la memoria del servidor que estoy usando actualmente para la demostración es de 4 GB, por lo que no lo cambiaré. El oficial dijo que si hay hay suficiente memoria, no hay necesidad de cambiarla, trate de no exceder los 32 GB. Es decir, la asignación de memoria de cada nodo no supera los 32 GB. Porque desperdicia memoria, reduce el rendimiento de la CPU y hace que GC se ocupe de una gran cantidad de memoria. Si desea mantenerlo seguro y confiable, configurar la memoria del montón en 31 GB es una opción segura.
Descripción del archivo de configuración de Elasticsearch.yml
[root@es-master config]# cat elasticsearch.yml
# 集群名称,设置一个统一的名字
cluster.name: cncfclub-es-cluster
# 节点名字,每个节点不同
node.name: es-master
# 是否有资格成为主节点
node.master: true
#是否存储数据
node.data: true
#设置最大集群节点数
node.max_local_storage_nodes: 3
#数据存储路径
path.data: /server/data
#日志存储路径
path.logs: /server/logs
# CentOS6 版本需要加入这两行
#bootstrap.memory_lock: true
#bootstrap.system_call_filter: false
#设置IP地址0.0.0.0 外网访问谁IP都能不然默认就是内网IP
network.host: 0.0.0.0
#设置端口
http.port: 9200
#集群通信接口
transport.tcp.port: 9300
#设置节点发现
discovery.seed_hosts: ["host1", "host2"]
#设置初始化集群选举
cluster.initial_master_nodes: ["node-1", "node-2"]
Configuración del nodo maestro elasticsearch.yml
cluster.name: cncfclub-es-cluster
node.name: es-master
node.master: true
node.data: true
node.max_local_storage_nodes: 3
path.data: /server/data
path.logs: /server/logs
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["es-master:9300", "es-node01:9300","es-node02:9300"]
cluster.initial_master_nodes: ["es-master", "es-node01","es-node02"]
node01 nodo elasticsearch.yml configuración
cluster.name: cncfclub-es-cluster
node.name: es-node01
node.master: true
node.data: true
node.max_local_storage_nodes: 3
path.data: /server/data
path.logs: /server/logs
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["es-master:9300", "es-node01:9300","es-node02:9300"]
cluster.initial_master_nodes: ["es-master", "es-node01","es-node02"]
node02 nodo elasticsearch.yml configuración
cluster.name: cncfclub-es-cluster
node.name: es-node02
node.master: true
node.data: true
node.max_local_storage_nodes: 3
path.data: /server/data
path.logs: /server/logs
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ["es-master:9300", "es-node01:9300","es-node02:9300"]
cluster.initial_master_nodes: ["es-master", "es-node01","es-node02"]
Crear directorios de datos y registros
mkdir -p /server/data && mkdir -p /server/logs全部赋权
#给有关es的
chown -R cncfclub:cncfclub /server
Comienza el servicio
## 进入cncfclub用户
su cncfclub
## 进入bin启动目录
cd /server/tools/elasticsearch-7.6.2/bin
# 运行
./elasticsearch
# 后台运行
./elasticsearch -d
verificar
complemento de cabeza
elasticsearch-head es un complemento de visualización frontal web para navegar e interactuar con los clústeres de Elasticsearch. Entonces, elasticsearch-head es un complemento de cliente para monitorear el estado de Elasticsearch
Instale el complemento Multi elasticsearch head directamente en un navegador simple y rudo
o docker ejecutar un servicio web
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head
fosa
坑一:áreas máximas de memoria virtual vm.max_map_count [65530] es demasiado bajo, aumente al menos a [262144]
Solución
### 修改文件
vim /etc/sysctl.conf
### 添加参数 最后一行添加
vm.max_map_count = 262144
### 重启配置
sysctl -p
Nota: Advertencia de máquina virtual de servidor OpenJDK de 64 bits: la opción UseConcMarkSweepGC quedó obsoleta en la versión 9.0 y es probable que se elimine en una versión futura.
### 修改
vim jvm.options
### 修改参数
-XX:+UseConcMarkSweepGC 改为 -XX:+UseG1GC
Pozo 3: java.nio.file.AccessDeniedException: /server/tools/elasticsearch-7.6.2/config/elasticsearch.keystore
## 权限问题
chown -R cncfclub:cncfclub /server/tools/elasticsearch-7.6.2/config