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

相关推荐
java1234_小锋2 小时前
Elasticsearch在部署时,对Linux的设置有哪些优化方法?
大数据·elasticsearch·搜索引擎
xnuscd2 小时前
els学习
运维·学习·jenkins
0110编程之路3 小时前
ubuntu 安装proxychains
linux·运维·ubuntu
IT-民工211104 小时前
使用Ansible/SaltStack编写自动化运维脚本
运维·ansible·saltstack
白衣神棍5 小时前
ES更新问题 Failed to close the XContentBuilder异常
java·elasticsearch
G皮T5 小时前
【Linux】常用系统工作命令
linux·运维·服务器·ps·top·kill
omage5 小时前
如何在ubuntu上调试core dump
linux·运维·服务器