原文地址: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基本操作 -- 无敌牛