测试部署环境
部署节点 1
操作系统 centos 7.5
硬件配置 2核 4G 100G
0.ES7.0重要改进
-
彻底废弃多type支持,包括api层面,之前版本可在一个索引库下创建多个type。
-
彻底废弃_all字段支持,为提升性能默认不再支持全文检索,即7.0之后版本进行该项配置会报错。
-
新增应用程序主动监测功能,搭配对应的kibana版本,用户可监测应用服务的健康状态,并在出现问题后及时发出通知。
-
取消query结果中hits count的支持(聚合查询除外),使得查询性能大幅提升(3x-7x faster)。这意味着,每次查询后将不能得到精确的结果集数量。
-
新增intervals query ,用户可设置多字符串在文档中出现的先后顺序进行检索。
-
新增script_core ,通过此操作用户可以精确控制返回结果的score分值。
-
优化集群协调子系统,缩减配置项提升稳定性。
-
新增 alias、date_nanos、features、vector等数据类型。
-
7.0自带java环境,所以我们在安装es时不再需要单独下载和配置java_home。
-
7.0将不会再有OOM的情况,JVM引入了新的circuit breaker(熔断)机制,当查询或聚合的数据量超出单机处理的最大内存限制时会被截断,并抛出异常(有点类似clickhouse)
1.安装ES7.x
创建es运行用户
# elasticsearch禁止使用root账户运行
groupadd es # 创建es用户组
useradd es -g elsearch # 创建es用户
passwd es # 修改es用户密码
chmod -v u+w /etc/sudoers # 获取sudoers写权限
vi /etc/sudoers # 修改 sudoers
es ALL=(ALL) ALL# 增加一行
:wq # 保存退出
su es # 切换为es用户
1.1. 解压
tar -xvf elasticsearch-7.0.0-linux-x86_64.tar.gz
1.2. ElasticSearch配置
- elasticsearch配置
# vi elasticsearch-7.0.0/config/elasticsearch.yml
# 集群名称(默认elasticsearch)
cluster.name: udm-cluster
# 节点名称(默认hostname)
node.name: node-1
# 是否可以成为master节点
node.master: true
# 是否允许该节点存储数据,默认开启
node.data: true
# 数据存放目录
path.data: /data/es
# 绑定IP(默认127.0.0.1)0.0.0.0支持外网访问
network.host: 0.0.0.0
# 服务端口(默认9200)
http.port: 9200
# 集群发现种子节点列表(集群部署配多个),默认["127.0.0.1", "[::1]"]
# discovery.seed_hosts: ["127.0.0.1"]
# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算(可配多个)
cluster.initial_master_nodes: ["node-1"]
- JVM配置(根据硬件环境配置,推荐保留一半内存给数据缓存,最大不建议超过32g)
# vi elasticsearch-7.0.0/config/jvm.options
-Xms2g # 初始JVM堆内存大小
-Xmx2g # 最大JVM堆内存代销
- 日志配置
# vi elasticsearch-7.0.0/config/log4j2.properties
# 略
1.3.系统配置
ulimit
在Linux系统上,ulimit可用于临时更改资源限制。在切换到运行ElasticSearch的用户之前,通常需要将限制设置为root。例如,要将打开的文件句柄数(ulimit-n)设置为65536,可以执行以下操作:
sudo su # 切换为root用户
ulimit -n 65535 # 修改ulimit配置
su elasticsearch # 切换为es用户
上边的命令只在当前回话有效,永久配置需要修改配置文件:/etc/security/limits.conf
es - nofile 65535
vm.max_map_count
启动报错:vm.max_map_count [65530] is too low, increase to at least [262144]
修改配置sysctl.conf
sudo vi /etc/sysctl.conf
增加
vm.max_map_count=655360
执行
sysctl -p
1.4. 中文分词器安装
- 下载对应版本插件
- 解压–>将文件复制到es的安装目录/plugins/ik下面即可
- 如果es已启动,需重启es
1.5. 启动/关闭(es用户运行)
# 测试运行elasticsearch
# ./bin/elasticsearch
# 默认elasticsearch是前台运行,输出日志到终端,Ctrl+c 退出
# 后台运行elastucsearch,日志输出到logs
./bin/elasticsearch -d -p pid
# 关闭
pkill -F pid
1.6.访问测试
http://IP:9200/
返回结果:
{
name: "node-1",
cluster_name: "udm-cluster",
cluster_uuid: "MxrRBRV7QcC1ljugIHPh8w",
version: {
number: "7.0.0",
build_flavor: "default",
build_type: "tar",
build_hash: "b7e28a7",
build_date: "2019-04-05T22:55:32.697037Z",
build_snapshot: false,
lucene_version: "8.0.0",
minimum_wire_compatibility_version: "6.7.0",
minimum_index_compatibility_version: "6.0.0-beta1"
},
tagline: "You Know, for Search"
}
2.kibana安装
2.1.tar包安装
1.解压
tar -zxvf kibana-7.0.0-linux-x86_64.tar.gz
2.启动/关闭
# 启动
./bin/kibana
# 后台启动
nohup ./bin/kibana &
# 查找kibana进程
ps -ef|grep node
# 关闭
kill -9 xxx
3.配置汉化
# 配置文件 kibana.yml 中加入
i18n.locale: "zh-CN"
重启kibana生效