部署与集成
基于ES7+版本
单机ES
安装Elasticsearch7.1
节点
10.255.175.93
用户及目录创建
es不能用root用户启动
-
操作
-
0.创建es专门用户
# 用root操作 $ useradd es $ passwd es # 密码 es $ visudo 在root ALL=(ALL) ALL下边添加 es ALL=(ALL) ALL
-
1.创建存放es的目录(自定义)
# 用root操作 $ mkdir -p /export/es_standalone $ chown -R es:es /export/es_standalone
-
安装JDK
说明 : 各版本对Java的依赖
ES5 Java8及以上
ES6.5 支持Java11
ES7 内置Java环境 无需安装
安装ES
-
操作
-
下载安装
-
0.浏览器访问下载安装包
# 浏览器访问 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.0-linux-x86_64.tar.gz
-
1.上传安装包
上传到目录 /export/es_standalone
-
2.确保安装包及目录归属es用户
$ chown -R es:es elasticsearch-7.1.0-linux-x86_64.tar.gz
-
3.解压
# 切换为es用户 $ su es # 解压 $ tar -zxvf elasticsearch-7.1.0-linux-x86_64.tar.gz
-
-
配置es的JVM
$ cd /opt/wsysoftware/elasticsearch-7.1.0/config $ vi jvm.options 将 Xmx和Xms 设置成一样 且 Xmx不超内存50% 且 不超30G # 默认1G
-
配置es
$ cd /opt/wsysoftware/elasticsearch-7.1.0/config $ vi elasticsearch.yml cluster.name: my-application # 默认 my-application node.name: node-1 # 默认 node-1 bootstrap.memory_lock: false network.host: 10.255.175.93 http.port: 9200 # 默认9200 discovery.seed_hosts: ["10.255.175.93"] cluster.initial_master_nodes: ["node-1"]
-
-
es文件目录结构
-
bin – 描述 : 脚本文件(启动es 安装插件 统计数据等命令)
-
config – 描述 : 配置文件
-
elasticsearch.yml – 描述 : 集群配置文件(user role based配置)
-
jvm.options – 描述 : 修改jvm配置 – ES7.1默认1GB
-
-
data – 描述 : 数据文件(是path.data的默认目录)
-
jdk – 描述 : 内置Java运行环境
-
lib – 描述 : Java类库
-
logs – 描述 : 日志文件(是path.log的默认目录)
-
modules – 描述 : 包含所有es模块
-
plugins – 描述 : 所有已安装插件
-
启动
-
启动服务
$ su es $ cd /export/es_standalone/elasticsearch-7.1.0 $ ./bin/elasticsearch
-
测试启动成功
# 浏览器访问es网页 10.255.175.93:9200
-
启动常见问题
-
0.修改系统虚拟内存
-
启动报错 : max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
-
原因 : 系统的最大虚拟内存太小 应调大
-
解决 : 永久更改系统配置 重启服务器依然生效
- 0.调大系统虚拟内存
$ sudo vi /etc/sysctl.conf 在最后一行添加 vm.max_map_count=262144
- 1.重新加载配置文件
$ sudo sysctl -p
- 2.重启ES服务
- 0.调大系统虚拟内存
-
-
1.修改打开文件数限制
-
启动报错 : max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
-
原因 : ES因为需要大量的创建索引文件 需要打开大量系统文件 应解除系统的打开文件的最大数目限制
-
解决
$ sudo vi /etc/security/limits.conf 结尾追加如下两行 * soft nofile 65536 * hard nofile 65536
-
有时重新连接Secure才生效
-
测试是否生效
$ ulimit -n # 结果是 65536 即生效 ; 结果是1024 这是默认值 即未生效
-
-
-
2.修改可用最大线程数
-
启动报错 : max number of threads [1024] for user [es] likely too low, increase to at least [4096]
-
原因 : 用户最大可创建线程数太小 无法创建本地线程
-
解决
$ sudo vi /etc/security/limits.conf 结尾追加如下两行 * soft nproc 4096 * hard nproc 4096
- 有时重新连接Secure才生效
-
-
3.ES的一个bug
-
启动报错 : system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
-
原因 :因为Centos不支持SecComp 而ES默认bootstrap.system_call_filter为true进行检测 检测失败 导致ES不能启动
-
解决
$ vi elasticsearch.yml bootstrap.system_call_filter: false bootstrap.memory_lock: false
-
-
4.discovery相关报错
-
启动报错 : org.elasticsearch.discovery.MasterNotDiscoveredException
-
原因 : 主节点未被发现 elasticsearch.yml集群配置有问题
-
解决
$ vi elasticsearch.yml discovery.seed_hosts: ["10.255.175.93"] cluster.initial_master_nodes: ["node-1"]
-
-
关闭服务/删除进程
$ ps | grep elasticsearch
$ kill pid
单机ES集群
在一台服务器上 用docker部署2个ES实例的容器 使2个容器形成2个节点的ES集群 ; 同时在其中一个ES容器中部署kibana 和 cerebro
版本ES7.2.0 kibana7.2.0 cerebro0.8.3
一键部署单机ES集群+kibana+cerebro
使用docker-compose一键部署
节点
10.255.175.93
安装docker
见