# 创建基础目录 mkdir -p /data/middleware/easysearch mkdir -p /opt/java
# 下载 OpenJDK 17(假设文件已上传到服务器) cd /opt tar -xzf openjdk-17.0.2_linux-x64_bin.tar.gz # 设置 Java 环境变量 echo 'export JAVA_HOME=/opt/jdk-17.0.2' >> /etc/profile echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile source /etc/profile
# 创建 easysearch 用户组 groupadd easysearch # 创建 easysearch 用户 useradd -g easysearch -m -s /bin/bash easysearch # 设置密码(可选) echo "easysearch:EasySearch@2024" | chpasswd
# 将 easysearch 用户添加到 sudoers(可选) echo "easysearch ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers # 设置 ulimit(重要) echo "easysearch soft nofile 65535" >> /etc/security/limits.conf echo "easysearch hard nofile 65535" >> /etc/security/limits.conf echo "easysearch soft nproc 4096" >> /etc/security/limits.conf echo "easysearch hard nproc 4096" >> /etc/security/limits.conf # 设置内核参数 echo "vm.max_map_count=262144" >> /etc/sysctl.conf sysctl -p
# 上传 easysearch-1.7.1-7-linux-amd64-bundle.tar.gz 到 /tmp cd /data/middleware # 解压安装包 tar -xzf /tmp/easysearch-1.7.1-7-linux-amd64-bundle.tar.gz # 如果已解压,移动到目标目录 mv easysearch-1.7.1-7-linux-amd64 easysearch # 更改所有权 chown -R easysearch:easysearch /data/middleware/easysearch
mkdir -p /data/middleware/easysearch/{data,logs,backup} chown -R easysearch:easysearch /data/middleware/easysearch
# 切换到 easysearch 用户 su - easysearch # 创建配置文件 cd /data/middleware/easysearch/config cat > easysearch.yml << 'EOF' cluster.name: easysearch-cluster node.name: easyesarch path.data: /data/middleware/easysearch/data path.logs: /data/middleware/easysearch/logs network.host: 0.0.0.0 http.port: 9200 discovery.type: single-node # 禁用所有安全功能 security.enabled: false # 内存设置 #bootstrap.memory_lock: true # 线程池设置 #thread_pool.write.queue_size: 1000 #thread_pool.search.queue_size: 1000 # 监控设置(可选) #xpack.monitoring.enabled: false # 禁用 SSL # #security.ssl.transport.enabled: false # #security.ssl.http.enabled: false EOF
# 编辑 JVM 配置 cat > /data/middleware/easysearch/config/jvm.options << 'EOF' ## JVM configuration ## heap settings -Xms2g -Xmx2g ## GC configuration -XX:+UseG1GC -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 ## other settings -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -XX:+ShowCodeDetailsInExceptionMessages -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.locale.providers=SPI,COMPAT EOF
# 运行初始化(如果需要安全功能) cd /data/middleware/easysearch ./bin/initialize.sh # 注意:如果不需要安全功能,可以跳过或选择 N
# 编辑配置文件,禁用安全 cat >> /data/middleware/easysearch/config/easysearch.yml << 'EOF' # 禁用安全功能 security.enabled: false xpack.security.enabled: false EOF
# 6.1 切换回 root 用户 exit # 6.2 创建 systemd 服务文件 # 创建新的 service 文件 cat > /etc/systemd/system/easysearch.service << 'EOF' [Unit] Description=EasySearch Service Documentation=https://easysearch.tech After=network.target [Service] Type=simple User=easysearch Group=easysearch # 设置 ulimit LimitNOFILE=65535 LimitNPROC=4096 LimitMEMLOCK=infinity # 设置 Java 环境变量 - 这里很重要! Environment="JAVA_HOME=/opt/jdk-17.0.2" Environment="PATH=/opt/jdk-17.0.2/bin:/usr/local/bin:/usr/bin:/bin" # 设置工作目录 WorkingDirectory=/data/middleware/easysearch # 设置 EasySearch 环境变量 Environment="ES_HOME=/data/middleware/easysearch" Environment="ES_PATH_CONF=/data/middleware/easysearch/config" # 禁止核心转储 LimitCORE=0 # 安全设置 PrivateTmp=true NoNewPrivileges=true ReadWritePaths=/data/middleware/easysearch/data ReadWritePaths=/data/middleware/easysearch/logs # 启动命令 - 使用绝对路径 ExecStart=/data/middleware/easysearch/bin/easysearch # 标准输出和错误输出 StandardOutput=journal StandardError=journal # 重启策略 Restart=always RestartSec=10 StartLimitInterval=0 # 杀死信号 KillSignal=SIGTERM # 超时设置 TimeoutStopSec=30 [Install] WantedBy=multi-user.target EOF
systemctl daemon-reload
systemctl start easysearch
systemctl enable easysearch
systemctl status easysearch
本文作者:小白
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!