赞
踩
可以自行安装,es安装包中自带了jdk
7.0版本以后不需要按jdk,将jdk封装在包内了
useradd es
passwd es //设置密码
上传包 tar zxvf /usr/local/package/elasticsearch-7.13.2-linux-x86_64.tar.gz -C /usr/local/ mv /usr/local/elasticsearch-7.13.2 /usr/local/es vim /usr/local/es/config/elasticsearch.yml cluster.name: bjbpe01-elk cluster.initial_master_nodes: ["10.3.145.14","10.3.145.56","10.3.145.57"] # 单节点模式这里的地址只填写本机地址 node.name: elk01 node.master: true node.data: true path.data: /data/elasticsearch/data path.logs: /data/elasticsearch/logs bootstrap.memory_lock: false bootstrap.system_call_filter: false network.host: 0.0.0.0 http.port: 9200 transport.tcp.port: 9300 # 单节点模式下,将discovery开头的行注释 discovery.seed_hosts: ["10.3.145.56","10.3.145.57"] discovery.zen.minimum_master_nodes: 2 discovery.zen.ping_timeout: 150s discovery.zen.fd.ping_retries: 10 client.transport.ping_timeout: 60s http.cors.enabled: true http.cors.allow-origin: "*" # 由于我们的笔记本性能有限,如果要使用单节点多实例的话,添加在原有配置中添加 node.max_local_storage_nodes: 这个配置限制了单节点上可以开启的ES存储实例的个数
cluster.name 集群名称,各节点配成相同的集群名称。 cluster.initial_master_nodes 集群ip,默认为空,如果为空则加入现有集群,第一次需配置 node.name 节点名称,各节点配置不同。 node.master 指示某个节点是否符合成为主节点的条件。 node.data 指示节点是否为数据节点。数据节点包含并管理索引的一部分。 path.data 数据存储目录。 path.logs 日志存储目录。 bootstrap.memory_lock 内存锁定,是否禁用交换,测试环境建议改为false。 bootstrap.system_call_filter 系统调用过滤器。 network.host 绑定节点IP。 http.port rest api端口。 discovery.seed_hosts 提供其他 Elasticsearch 服务节点的单点广播发现功能,这里填写除了本机的其他ip discovery.zen.minimum_master_nodes 集群中可工作的具有Master节点资格的最小数量,官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量。 discovery.zen.ping_timeout 节点在发现过程中的等待时间。 discovery.zen.fd.ping_retries 节点发现重试次数。 http.cors.enabled 是否允许跨源 REST 请求,用于允许head插件访问ES。 http.cors.allow-origin 允许的源地址。
sed -i 's/## -Xms4g/-Xms4g/' /usr/local/es/config/jvm.options
sed -i 's/## -Xmx4g/-Xmx4g/' /usr/local/es/config/jvm.options
注意:
确保堆内存最小值(Xms)与最大值(Xmx)的大小相同,防止程序在运行时改变堆内存大小。
如果系统内存足够大,将堆内存最大和最小值设置为31G,因为有一个32G性能瓶颈问题。
堆内存大小不要超过系统内存的50%
mkdir -p /data/elasticsearch/data (/data/elasticsearch)
mkdir -p /data/elasticsearch/logs (/log/elasticsearch)
chown -R es.es /data/elasticsearch
chown -R es.es /usr/local/es
永久生效方法:
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* soft nproc 65536" >> /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
更多的参数调整可以直接用这个
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
memory locking requested for elasticsearch process but memory is not locked elasticsearch.yml文件 bootstrap.memory_lock : false /etc/sysctl.conf文件 vm.swappiness=0 错误: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] 意思是elasticsearch用户拥有的客串建文件描述的权限太低,知道需要65536个 解决: 切换到root用户下面, [root@elk ~]# vim /etc/security/limits.conf 在最后添加 * hard nofile 65536 #最大文件打开数 * hard nproc 65536 #进程 重新启动elasticsearch,还是无效? 必须重新登录启动elasticsearch的账户才可以,例如我的账户名是elasticsearch,退出重新登录。 另外*也可以换为启动elasticsearch的账户也可以,* 代表所有,其实比较不合适
第二个问题
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
意思是:elasticsearch用户拥有的内存权限太小了,至少需要262114。这个比较简单,也不需要重启,直接执行
sysctl -w vm.max_map_count=262144
就可以了
su - es -c "cd /usr/local/es && nohup bin/elasticsearch &" #root不能启动es要切换用户
测试:浏览器访问http://ip:9200
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。