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基本操作 -- 无敌牛

相关推荐
云动雨颤1 小时前
Linux下PXE服务器搭建
linux·运维·服务器
wanhengidc1 小时前
云手机会占用本地手机内存吗?
运维·服务器·网络·安全·智能手机
blasit1 小时前
Ubuntu 20.04.6交叉编译得到Ubuntu 16.04.6的可执行文件
linux·运维·ubuntu
徐sir(徐慧阳)2 小时前
国产存储分布式raid更换故障硬盘
运维·服务器
Jayyih3 小时前
嵌入式系统学习Day23(进程)
linux·运维·服务器
小王努力学编程4 小时前
从零开始的 Docker 之旅
linux·运维·服务器·docker·容器·容器编排·镜像制作
神秘人X7074 小时前
Ansible自动化运维介绍与安装
运维·自动化·ansible
東雪蓮☆6 小时前
深入理解 iptables:Linux 防火墙从入门到精通
linux·运维·网络
努力学习的小廉6 小时前
深入了解linux系统—— 线程互斥
linux·运维·服务器
JioJio~z7 小时前
PLC通讯中遇到的实际场景
运维·服务器·网络