1.新建用户/组
useradd elasticsearch
mkdir -p /home/elasticsearch
chown elasticsearch:elasticsearch /home/elasticsearch
2.下载并解压Elasticsearch
cd /tmp
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.2-linux-x86_64.tar.gz
tar -xzf elasticsearch-8.8.2-linux-x86_64.tar.gz -C /usr/local/
mv /usr/local/elasticsearch-8.8.2 /usr/local/elasticsearch
3.创建必要的目录结构
# 创建本地日志目录
mkdir -p /usr/local/elasticsearch/logs
# 创建NFS数据目录
mkdir -p /mnt/minio_n4_fastspeed_nfs_elasticsearch/data
# 设置目录权限
chown -R elasticsearch:elasticsearch /usr/local/elasticsearch
chown -R elasticsearch:elasticsearch /mnt/minio_n4_fastspeed_nfs_elasticsearch/data
chmod -R 755 /usr/local/elasticsearch
chmod -R 755 /mnt/minio_n4_fastspeed_nfs_elasticsearch/data
4.配置elasticsearch.yml
cat > /usr/local/elasticsearch/config/elasticsearch.yml << EOF
# 集群名称
cluster.name: es-cluster
# 节点名称
node.name: node-1
# 数据目录(NFS)
path.data: /mnt/minio_n4_fastspeed_nfs_elasticsearch/data
# 日志目录(本地)
path.logs: /usr/local/elasticsearch/logs
# 网络设置
network.host: 0.0.0.0
http.port: 9200
# 发现设置
discovery.type: single-node
# 安全设置
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
# 内存锁定
bootstrap.memory_lock: true
EOF
5.分配JVM
cat > /usr/local/elasticsearch/config/jvm.options.d/jvm.options << EOF
-Xms16g
-Xmx16g
-XX:+UseG1GC
-XX:G1ReservePercent=25
-XX:InitiatingHeapOccupancyPercent=30
EOF
6.设置系统限制
# 系统限制配置
cat > /etc/security/limits.d/elasticsearch.conf << EOF
elasticsearch soft nofile 65535
elasticsearch hard nofile 65535
elasticsearch soft nproc 4096
elasticsearch hard nproc 4096
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
EOF
# 系统参数配置
cat > /etc/sysctl.d/elasticsearch.conf << EOF
vm.max_map_count=262144
EOF
# 应用系统参数
sysctl -p /etc/sysctl.d/elasticsearch.conf
7.创建systemd服务
cat > /etc/systemd/system/elasticsearch.service << EOF
[Unit]
Description=Elasticsearch
Documentation=https://www.elastic.co
Wants=network-online.target
After=network-online.target remote-fs.target
Requires=remote-fs.target
[Service]
Type=simple
RuntimeDirectory=elasticsearch
PrivateTmp=true
Environment=ES_HOME=/usr/local/elasticsearch
Environment=ES_PATH_CONF=/usr/local/elasticsearch/config
Environment=PID_DIR=/var/run/elasticsearch
Environment=ES_SD_NOTIFY=true
User=elasticsearch
Group=elasticsearch
ExecStart=/usr/local/elasticsearch/bin/elasticsearch
LimitNOFILE=65535
LimitNPROC=4096
LimitAS=infinity
LimitFSIZE=infinity
LimitMEMLOCK=infinity
TimeoutStopSec=0
KillSignal=SIGTERM
KillMode=process
SendSIGKILL=no
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
EOF
8.设置环境变量
cat > /home/elasticsearch/.bashrc << EOF
# .bashrc
export PATH=\$PATH:/usr/local/elasticsearch/bin
export ES_HOME=/usr/local/elasticsearch
export ES_PATH_CONF=/usr/local/elasticsearch/config
EOF
chown elasticsearch:elasticsearch /home/elasticsearch/.bashrc
···
## 9.启动服务
重载systemd
systemctl daemon-reload
启动ES
systemctl enable elasticsearch systemctl start elasticsearch
查看状态
systemctl status elasticsearch