单节点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
}
相关推荐
biaov6 分钟前
Jenkins + Docker 搭建前端 CI:前端一键打包部署
前端·docker·jenkins
magic_kid_201013 分钟前
HDFS 故障复盘:千万级 block 导致 FBR 超过 128 MiB,DataNode 被判定为 dead
大数据·hadoop·hdfs·hadoop 故障
LCD液晶屏35 分钟前
立煌科技代理京东方液晶屏的核心优势与应用价值
大数据·人工智能·科技
Data-Miner9 小时前
面对 AI 大模型智能涌现,如何从技术层面保护好隐私与数据安全?
大数据·人工智能
会议咨询11 小时前
2027年电力电子、人工智能与大数据国际会议(PEABD 2027)
大数据·人工智能·电力电子
GlobalInfo11 小时前
全球包装检测用3D轮廓传感器市场调研:2026年规模预计达1.87亿美元,食品医药与电商物流需求推动增长
大数据·人工智能·3d
程序 代码狂人12 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
starzy199013 小时前
Kafka响应发送:字节是怎么真正写回客户端的
大数据·kafka
数字新视界13 小时前
国产动环数据库在智能机房环境监控中的应用与优势分析
大数据·人工智能·数据中心·机房管理·模块化机房
古法老登瞎折腾14 小时前
大数据智能运维实战(九):让 AI 查日志——找到异常,也保留上下文
java·大数据·运维·人工智能·spring ai·mcp