| |
|---|
| |
| |
| |
| /usr/local/elasticsearch-8.19.10 |
| /data/es8/data |
| /data/es8/logs |
| /usr/local/elasticsearch-8.19.10/plugins |
| esuser |
| |
| |
一、系统内核 & 资源预调(ES 硬性要求,必须配置)
1)修改文件句柄、进程数限制
sudo vim /etc/security/limits.conf# 文件最底部追加内容esuser soft nofile 65535esuser hard nofile 65535esuser soft nproc 65535esuser hard nproc 65535
2)调整虚拟内存映射数量
sudo vim /etc/sysctl.confvm.max_map_count=262144# 加载生效sudo sysctl -p# 检查是否生效sysctl vm.max_map_count
二、创建运行用户、数据日志目录
# 创建运行用户,禁止登录服务器sudo useradd -M -s /sbin/nologin esuser# 创建程序、数据、日志文件夹sudo mkdir -p /data/es8/data /data/es8/logs# 统一授权归属sudo chown -R esuser:esuser /usr/localsudo chown -R esuser:esuser /data/es8
三、下载并解压 ES 8.19.10
cd /usr/local# 下载Linux x86_64压缩包sudo wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.19.10-linux-x86_64.tar.gz# 解压sudo tar -zxvf elasticsearch-8.19.10-linux-x86_64.tar.gz# 再次修正权限sudo chown -R esuser:esuser elasticsearch-8.19.10
四、下载安装对应版本 IK 分词器
IK 版本号必须完全和ES 版本保持一致:8.19.10
cd /usr/local/elasticsearch-8.19.10/plugins# 下载IK插件sudo wget https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.19.10.zip# 创建ik文件夹存放插件文件sudo mkdir iksudo unzip elasticsearch-analysis-ik-8.19.10.zip -d ./ik# 赋予权限sudo chown -R esuser:esuser ik# 删除安装包sudo rm -f elasticsearch-analysis-ik-8.19.10.zip
五、修改 elasticsearch.yml 主配置文件
sudo vim /usr/local/elasticsearch-8.19.10/config/elasticsearch.yml
粘贴下面全套配置(适配单机开发环境)
# 集群名称cluster.name: es-cluster# 当前节点名称node.name: node-1# 数据存放路径path.data: /data/es8/data# 日志路径path.logs: /data/es8/logs# 监听所有网卡,允许外部访问network.host: 0.0.0.0# 服务端口http.port: 9200# 单机部署,仅一个节点discovery.type: single-node# 安全配置# 关闭HTTPS(开发环境推荐关闭,生产必须开启)xpack.security.enabled: falsexpack.security.enrollment.enabled: falsexpack.security.http.ssl.enabled: falsexpack.security.transport.ssl.enabled: false# 允许跨域(适配前端、kibana)http.cors.enabled: truehttp.cors.allow-origin: "*"http.cors.allow-methods: OPTIONS,GET,POST,PUT,DELETEhttp.cors.allow-headers: "*"
六、配置 JVM 堆内存 jvm.options
sudo vim /usr/local/elasticsearch-8.19.10/config/jvm.options
根据服务器内存修改,示例(2C4G 机器配置)
规则:-Xms 和 -Xmx 值保持一致,最大不要超过物理内存的 50%
七、配置 systemd 系统服务,开机自启
sudo vim /etc/systemd/system/elasticsearch.service
写入配置
[Unit]Description=Elasticsearch 8.19.10 ServiceDocumentation=https://www.elastic.coAfter=network.target[Service]User=esuserGroup=esuserType=simple# ES内置jdk启动ExecStart=/usr/local/elasticsearch-8.19.10/bin/elasticsearchRestart=on-failureRestartSec=3LimitNOFILE=65535LimitNPROC=65535[Install]WantedBy=multi-user.target
八、加载服务、启动 ES、初始化账号密码
# 刷新systemd配置sudo systemctl daemon-reload# 设置开机自启sudo systemctl enable elasticsearch# 启动服务sudo systemctl start elasticsearch# 查看运行状态sudo systemctl status elasticsearch
设置 elastic 超级管理员密码(开发环境安全校验整体被关闭,ES不再维护用户体系,此命令不需要执行,开启安全校验则必须执行)
# 交互式设置密码,自定义密码例如 Es@123456sudo -u esuser /usr/local/elasticsearch-8.19.10/bin/elasticsearch-reset-password -u elastic
九、防火墙放行 9200 端口
sudo firewall-cmd --add-port=9200/tcp --permanentsudo firewall-cmd --reload
十、验证服务 + IK 分词器是否生效
1、验证 ES 连通性
curl -u elastic:Es@123456 http://127.0.0.1:9200
返回 JSON 信息代表 ES 正常运行
2、测试 IK 分词效果
curl -u elastic:Es@123456 -X POST http://127.0.0.1:9200/_analyze -H ”Content-Type:application/json” -d '{ "analyzer":"ik_max_word", "text":"elasticsearch中文分词测试"}'
正常返回分词结果 = IK 插件安装成功
十一、常用运维命令
# 启停服务systemctl start elasticsearchsystemctl stop elasticsearchsystemctl restart elasticsearch# 实时查看日志tail -f /data/es8/logs/es-cluster.log
十二、一键彻底卸载 ES(重装清理)
sudo systemctl stop elasticsearchsudo systemctl disable elasticsearchsudo rm -f /etc/systemd/system/elasticsearch.servicesudo systemctl daemon-reloadsudo rm -rf /usr/local/elasticsearch-8.19.10 /usr/local/elasticsearchsudo rm -rf /data/es8sudo userdel -r esuser
关键避坑点
- IK 版本必须和 ES 版本一字不差,版本不一致直接启动报错;
- ES 不允许 root 运行进程,全程使用 esuser 用户运行;
- vm.max_map_count、nofile 两个参数不配置会启动失败;
- 开发环境关闭 ssl 简化连接,生产环境务必开启 ssl 加密通信。