ES只能用非root账号启动
useradd -s /sbin/nologin esuser
第一步先清空data
目录权限授权
chown -R esuser:esuser /data/es
chmod -R 777 /data/es
设置ES的内存权限大小
vim /etc/sysctl.conf
vm.max_map_count=262144
sysctl -p
启动先启动主节点.当主节点可以正常启动在启动从节点
systemctl start elasticsearch
systemctl stop elasticsearch
systemctl status elasticsearch
# 通过底下的curl判断主节点的的情况 没有设置账号密码的吧-uxxx给删除掉
curl -uelastic:aaa@bbb 192.168.110.68:9200/_cat/nodes?pretty 这个密码是不好的密码.有@符号将无法进行elasdump
curl -uelastic:aaa 192.168.110.68:9200/_cat/nodes?pretty
失败查看异常信息
journalctl -e
日志追踪
tail -f /var/log/messages
密码
如果已经是有证书的有密码的只是因为清空/es/data 目录导致的密码无效执行一下操作
1. 集群不能停止 2证书配置要开启 通过这个设置密码
.bin/elasticsearch-setup-passwords interactive
黏贴密码 回车
黏贴密码 回车
黏贴密码 回车 ...
底下的看情况可以不执行. 如果是3台es且其主节点不作为数据节点.那么这个密码只要在主节点进行设置就可以了 访问es的时候 访问主节点.密码也是一样.
好像不用执行发现密码好像同步过去了
停止这台服务
负责es/config/elasticsearch.keystore到其他节点上 节点务必要停止服务
然后就可以了
没有证书的情况下 百度证书的生成吧
配置 elasticsearch.yml
这是主节点的配置 elastcisearch8和过去的配置是不一样的
#其他节点要修改node.name node.data=true
cluster.name: application
node.name: node1
network.host: 0.0.0.0
node.master: true
node.data: false
http.port: 9200
discovery.seed_hosts: ["192.168.110.211","192.168.110.98","192.168.110.229"]
cluster.initial_master_nodes: ["node1","node2","node3"]
#action.destructive_requires_name: true
# 底下的配置是开启权限认证.如果认为es不使用账号密码可以不用配置
xpack.security.enabled: true
xpack.security.authc.accept_default_password: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /data/es/config/cert/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /data/es/config/cert/elastic-certificates.p12
elasticsearch8的配置
采用自定义的JAVA
# 可以不配置这个不过需要在 /etc/profile添加变量 ES_HOME=java路径
vim /data/es/bin/elasticsearch-env
大概73行左右
JAVA_HOME=/usr/local/java
# now set the path to java
if [ ! -z "$JAVA_HOME" ]; then
JAVA="$JAVA_HOME/bin/java"
JAVA_TYPE="JAVA_HOME"
else
if [ "$(uname -s)" = "Darwin" ]; then
# macOS has a different structure
JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
else
check_glibc_version
JAVA="$ES_HOME/jdk/bin/java"
fi
JAVA_TYPE="bundled jdk"
fi
service脚本
放在 /usr/lib/systemd/system/
重新加载 systemctl daemon-reload
[Unit]
Description=elasticsearch
[Service]
User=esuser
LimitNOFILE=100000
LimitNPROC=100000
ExecStart=/data/es/bin/elasticsearch
[Install]
WantedBy=multi-user.target
异常
There is insufficient memory for the Java Runtime Environment to continue
看一下系统的内存是多少然后修改 vim /data/es/conf/jvm.options
# -Xms1g
# -Xmx1g
-Xms256m
-Xmx256m