【devops】elasticsearch安装

68 阅读2分钟

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