单节点elasticsearch安装笔记

一、安装包下载

https://github.com/elastic/elasticsearch/releases

二、安装

解压

bash 复制代码
tar elasticsearch-7.17.7-linux-x86_64.tar.gz
mv elasticsearch-7.17.7 /opt/elasticsearch

编辑配置文件

bash 复制代码
cd /opt/elasticsearch/
vim bin/elasticsearch-env
在配置文件最前面加入
ES_JAVA_HOME="/opt/elasticsearch/jdk"

主配置文件内容

yaml 复制代码
# cat config/elasticsearch.yml
# ======================== Elasticsearch Configuration =========================

# ---------------------------------- Cluster -----------------------------------
cluster.name: es-single-cluster

# ------------------------------------ Node ------------------------------------
node.name: es-node-01
node.roles: [ master, data, ingest ]

# ----------------------------------- Paths ------------------------------------
path.data: /app/elasticsearch/data
path.logs: /app/elasticsearch/logs

# ----------------------------------- Memory -----------------------------------
bootstrap.memory_lock: true
# 允许物理内存检查
bootstrap.system_call_filter: true

# ---------------------------------- Network -----------------------------------
# 绑定所有网络接口,允许远程访问
network.host: 0.0.0.0
# 外界访问的 HTTP 端口
http.port: 9200
# 节点间通信的内部端口
transport.port: 9300

# --------------------------------- Discovery ----------------------------------
discovery.seed_hosts: ["127.0.0.1"]

cluster.initial_master_nodes: ["es-node-01"]

# --------------------------------- Security -------------------------------下面这部分先注释,最后解开---
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /opt/elasticsearch/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /opt/elasticsearch/config/elastic-certificates.p12

# ---------------------------------- Various -----------------------------------
action.destructive_requires_name: true
ingest.geoip.downloader.enabled: false
bash 复制代码
vim config/jvm.options
加入以下内容,大小根据内存调整
-Xms16g
-Xmx16g

新建service文件

bash 复制代码
vim /usr/lib/systemd/system/elasticsearch.service
内容如下
Description=Elasticsearch
Documentation=https://www.elastic.co
After=network.target network-online.target
Wants=network-online.target

[Service]
# 改为 simple 模式,让 systemd 更好地追踪和守护 Java 主进程
Type=simple
User=elasticsearch
Group=elasticsearch

ExecStart=/opt/elasticsearch/bin/elasticsearch

# 停止超时时间,ES在关闭时需要刷盘和迁移分片
TimeoutStopSec=0

# 内存与文件资源限制优化(满足 ES 生产环境引导检查)
LimitNOFILE=65535
LimitNPROC=4096
LimitMEMLOCK=infinity
LimitAS=infinity
LimitFSIZE=infinity

Restart=on-failure

# 确保 JVM 内存映射区域不会被内核异常限制
VM_MAX_MAP_COUNT=262144

# 垃圾回收和退出状态码兼容
SuccessExitStatus=143

# 关闭安全沙箱的本地临时目录隔离(防止某些特定插件或导出因找不到 /tmp 报错)
PrivateTmp=true

[Install]
WantedBy=multi-user.target
bash 复制代码
systemctl   daemon-reload

创建用和目录

bash 复制代码
useradd elasticsearch 
mkdir -p /app/elasticsearch/data
mkdir -p /app/elasticsearch/logs
chown elasticsearch:elasticsearch /app/elasticsearch -R
chown elasticsearch:elasticsearch /opt/elasticsearch -R

接下来的配置切换到elasticsearch来操作

bash 复制代码
su - elasticsearch
cd /opt/elasticsearch
./bin/elasticsearch-certutil ca  # 一路回车
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12  #一路回车
mv elastic-certificates.p12 config/
bin/elasticsearch  #看看是否有报错,没有报错则正常

切换回root用户

bash 复制代码
vim /etc/security/limits.conf
加入以下内容
elasticsearch soft nofile 65536
elasticsearch hard nofile 65536
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
elasticsearch soft nproc 4096
elasticsearch hard nproc 4096
bash 复制代码
vim /etc/sysctl.conf
加入以下内容
vm.max_map_count=262144
bash 复制代码
vim /etc/sysctl.conf
加入以下内容
sysctl -p
bash 复制代码
systemctl start elasticsearch
systemctl status elasticsearch

切换回elasticsearch用户

bash 复制代码
su - elasticsearch
./bin/elasticsearch-setup-passwords interactive #然后输入每个用户的密码

切换回root用户,解开主配置文件的注释

复制代码
systemctl   stop elasticsearch
systemctl   start elasticsearch

测试

复制代码
curl -uelastic:elastic http://192.168.192.33:9200/_cluster/health?pretty
{
  "cluster_name" : "es-single-cluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 3,
  "active_shards" : 3,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}
相关推荐
夜郎king1 小时前
告别低效单篇创作,CSDN AI 批量生成工具深度体验
大数据·人工智能·csdn ai 数字营销
鱼锦0.01 小时前
Coreseek和Elasticsearch 有什么区别
大数据·elasticsearch·jenkins
STDD1 小时前
VictoriaLogs:轻量级日志存储方案,Loki 的高效替代
运维·jenkins
王莎莎-MinerU2 小时前
Agent 时代,科学数据 API 需要重新设计
大数据·前端·数据库·人工智能·个人开发
不做无法实现的梦~2 小时前
Git Clone 使用 Watt/Steam++ 加速时报证书错误的原因与解决方法
大数据·git·elasticsearch
智塑未来2 小时前
如何选择RFID软硬件系统供应商:采购决策的关键判断维度
大数据·人工智能
段一凡-华北理工大学2 小时前
工业领域的Hadoop架构学习~系列文章07:Spark内存计算引擎
大数据·人工智能·hadoop·学习·架构·高炉炼铁·高炉炼铁智能化
Bechamz2 小时前
大数据开发学习Day46
大数据·学习