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

相关推荐
一只小爪子2 分钟前
通过 ulimit 和 sysctl 调整Linux系统性能
linux·运维·前端
Antonio9151 小时前
【Linux】环境变量
linux·运维·服务器
guihong0041 小时前
Dubbo 关键知识点解析:负载均衡、容错、代理及相关框架对比
运维·负载均衡·dubbo
乌南竹1 小时前
六十三:七层负载均衡做了些什么?
运维·负载均衡
wanhengidc2 小时前
关于常见的负载均衡方法都有什么?
运维·负载均衡
小句2 小时前
一个使用 Nginx 进行反向代理和负载均衡的示例配置
运维·nginx·负载均衡
小蜗牛爱远行2 小时前
软件开发为什么要用CI/CD方法
linux·运维·ci/cd
法迪2 小时前
初学Linux电源管理
linux·运维·服务器·功耗
超级无敌暴龙战士(solider)2 小时前
OkHttp接口自动化之断言
运维·okhttp·自动化
玉成2262 小时前
Elasticsearch:聚合操作
大数据·elasticsearch·搜索引擎