elasticsearch单节点模式部署

原文地址:elasticsearch单节点模式部署 -- 无敌牛

欢迎参观我的个人博客无敌牛 -- 技术/著作/典籍/分享等

第一步:下载

官方下载地址:Download Elasticsearch | Elastic,可以 wget 直接下载。

命令:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.1-linux-x86_64.tar.gz

第二步:创建用户

此示例运行用户使用的是 elstc 用户,同时创建同名用户组。

命令:useradd -u 320 -s /usr/sbin/nologin -r -M -U elstc

第三步:安装

3.1 解压

把下载的 tar.gz 包放在安装目录下,此示例安装在 /usr/share 目录下

命令:tar pzxvf elasticsearch-8.15.1-linux-x86_64.tar.gz

3.2 把目录及其下的文件属主给 elstc 用户

命令:chown -R elstc: elasticsearch-8.15.1

3.3 创建数据及日志目录

创建 /data/es_db_data 目录,并在此目录下创建 data、logs、esbackup 目录,把属主全部给 elstc 用户。

命令:chown -R elstc: es_db_data

第四步:配置及启动

4.1 自建根证书、颁发证书以及证书安装

创建根证书及颁发证书,参考往期文章:openssl颁发包含主题替代名的证书--SAN -- 无敌牛

在上边的文章中,csr.conf 的配置内容如下:

复制代码
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = req_distinguished_name
req_extensions = v3_req

[req_distinguished_name]
countryName = CN
stateOrProvinceName = Shandong
localityName = Qingdao
organizationName = madbull
organizationalUnitName = IT
commonName = xxxxnode1
emailAddress = xxx@xxx.com

[v3_req]
subjectAltName = @alt_names

[alt_names]
DNS.1 = xxxxnode1
DNS.2 = madbull.site
DNS.3 = localhost
IP.1 = 127.0.0.1
IP.2 = 192.168.1.57

证书安装,参看往期文章:elasticsearch集群部署及加密通讯 -- 无敌牛 第三步。

4.2 增加主机名

在 /etc/hosts 配置文件,增加主机名 xxxxnode1 。

4.3 修改 elasticsearch 配置文件

修改配置文件:/usr/share/elasticsearch-8.15.1/config/elasticsearch.yml,内容如下:

复制代码
cluster.name: CLUSTERNAMEXXX
node.name: xxxxnode1

path.data: /data/es_db_data/data 
path.logs: /data/es_db_data/logs
path.repo: /data/es_db_data/esbackup

bootstrap.memory_lock: true
network.host: xxxxnode1, 127.0.0.1

discovery.type: single-node

action.destructive_requires_name: false
xpack.security.enabled: true
xpack.security.enrollment.enabled: true

xpack.security.http.ssl:
  enabled: true
  key: certs/private.key
  certificate: certs/public.crt
  certificate_authorities: certs/CAs/myCA.crt
  verification_mode: certificate

xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  key: certs/private.key
  certificate: certs/public.crt
  certificate_authorities: certs/CAs/myCA.crt

此配置文件中,字段说明参看 elasticsearch集群部署及加密通讯 -- 无敌牛 文章的第二步说明。

另外 discovery.type 配置项为 single-node 代表单节点模式运行。

4.4 配置 systemd 管理

在 /usr/lib/systemd/system 目录创建 elasticsearch.service 文件,内容如下:

复制代码
[Unit]
Description=Elasticsearch
Documentation=https://www.elastic.co
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
RuntimeDirectory=elasticsearch

Environment=ES_HOME=/usr/share/elasticsearch-8.15.1
Environment=ES_JAVA_HOME=/usr/share/elasticsearch-8.15.1/jdk
Environment=ES_PATH_CONF=/usr/share/elasticsearch-8.15.1/config
Environment=PID_DIR=/usr/share/elasticsearch-8.15.1
Environment=ES_SD_NOTIFY=true

WorkingDirectory=/usr/share/elasticsearch-8.15.1

User=elstc
Group=elstc

ExecStart=/usr/share/elasticsearch-8.15.1/bin/elasticsearch -p ${PID_DIR}/es.pid --quiet

StandardOutput=journal
StandardError=inherit

LimitNOFILE=65535
LimitNPROC=4096
LimitAS=infinity
LimitFSIZE=infinity
TimeoutStopSec=0
KillSignal=SIGTERM
KillMode=process
SendSIGKILL=no
SuccessExitStatus=143

TimeoutStartSec=120
MemoryLimit=2G

[Install]
WantedBy=multi-user.target

这些配置根据自己的需求来设定,比如 MemoryLimit 根据自己系统来设置,TimeoutStartSec 可以设置更小一些。

重新加载 systemd 的配置: systemctl daemon-reload

启动服务:systemctl start elasticsearch

4.5 增加密码

这样配置的 elasticsearch 是能启动的,但是因为配置中要求使用密码,所以数据库是不能使用的。需要给 elasticsearch 服务的默认用户 elastic 设置密码,可以用以下命令随机生成一个密码。

命令:/usr/share/elasticsearch-8.15.1/bin/elasticsearch-reset-password -u elastic

密码会打印到屏幕上。由于当前终端使用的JAVA环境不一样,可能会有一些告警,不过一般不会影响设置密码功能。

第五步,测试

创建索引:tt01

命令:curl -XPUT -k -u "elastic:_EiWAUqcsMKlD11E4efQ" https://127.0.0.1:9200/tt01

发现索引的健康状态是 yellow 这是因为只有一个节点,索引要求副本数为 1,如下图索引的 settings 所示。 但是咱们部署的 elasticsearch 只有一个节点,所以索引状态是黄色,但是并不影响使用。

消除 yellow 状态,可通过设置索引的副本数量为 0

命令:curl -XPUT -H "content-type: application/json" -k -u "elastic:_EiWAUqcsMKlD11E4efQ" https://127.0.0.1:9200/tt01/_settings -d '{"index":{"number_of_replicas": 0}}'

再次查看状态:

命令:curl -k -u "elastic:_EiWAUqcsMKlD11E4efQ" https://127.0.0.1:9200/tt01/_settings | jq .

命令:curl -k -u "elastic:_EiWAUqcsMKlD11E4efQ" https://127.0.0.1:9200/_cat/indices?v


elasticsearch集群部署参看文章:elasticsearch集群部署及加密通讯 -- 无敌牛

elasticsearch基本操作参看文章:Elasticsearch基本操作 -- 无敌牛

相关推荐
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
大志哥1231 天前
ES和Logstash日志链路系统上线后遭遇切片爆炸(解决)
大数据·elasticsearch
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工1 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智1 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_1 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
TableRow1 天前
参数化搜索的实现原理:从多维索引到查询优化
elasticsearch·全文检索
施努卡机器视觉1 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦1 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw