ElasticSearch 安装
下载地址
历史版本下载地址
单机版安装
安装环境
操作系统 CentOS 7.7 64位
ElasticSearch 6.8.6
Kinbana 6.8.6
JDK 1.8.0_162
创建账号
由于ElasticSearch
默认不支持root
账号权限启动,所以先创建一个账号
创建一个ElasticSearch
运行的组yangqi
:
[root@xiaoer ~]# groupadd yangqi
在yangqi
组中创建用户:
[root@xiaoer ~]# useradd yangqi -g yangqi
设置yangqi
用户密码:
[root@xiaoer ~]# passwd yangqi
给解压缩的包授予权限:
[root@xiaoer ~]# chown -R yangqi:yangqi /opt/apps/elasticsearch-6.8.6
修改配置文件
修改elasticsearch-6.8.6
目录下的config
目录下,修改elasticsearch.yml
文件内容,修改里面的配置如下:
# 集群的名称
cluster.name: Yankee
# 当前节点名称
node.name: elastic-1
# 索引数据的存储路径
path.data: /opt/apps/elasticsearch-6.8.6/data
# 日志文件的存储路径
path.logs: /opt/apps/elasticsearch-6.8.6/data
# 当前节点所绑定的地址,绑定为0.0.0.0是允许所有访问
network.host: 0.0.0.0
# 对外提供服务的端口号
http.port: 9200
如果有需要,可以修改jvm.options
文件的相关设置:
# JVM最小和最大堆内存
-Xms1g
-Xmx1g
启动测试
直接执行./bin/elasticsearch
,启动出错:
[yangqi@xiaoer elasticsearch-6.8.6]$ ./bin/elasticsearch
解决方法
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
编辑/etc/security/limits.conf
,追加以下内容(需要注意的是修改完之后需要重新登录):
* soft nofile 65536
* hard nofile 65536
[2]:max virtual memory areas vm.max_map_count [6530] is too low, increase to at least [262144]
编辑/etc/sysctl.conf
文件,追加以下内容(需要注意的是修改完成后执行sysctl -p
使修改生效):
vm.max_map_count=262144
[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
修改config/elasticsearch.yml
文件,修改以下内容:
cluster.initial_master_nodes: ["elastic-1"]
重新启动,没有报错,访问ip:9200
,可以看到集群的节点信息:
安装Kibana
将Kibana
解压后,修改目录名称为kibana-6.8.6
,之后修改kibana.yml
文件:
[yangqi@xiaoer kibana-6.8.6]$ vi ./confi1g/kibana.yml
修改以下内容:
# 设置服务器端口
server.port: 5601
# 设置服务器访问 ip
server.host: "0.0.0.0"
# 设置访问url
elasticsearch.hosts: ["http://0.0.0.0:9200"]
# 设置服务器用户名和密码
elasticsearch.username: "xiaoer"
elasticsearch.password: "yangqi"
# 设置界面语言
i18n.locale: "zh-CN"
通过bin/kibana
启动:
# 首先将elasticsearch挂到后台启动
[yangqi@xiaoer elasticsearch-6.8.6]$ nohup bin/elasticsearch &
# 将kibana挂到后台启动
[yangqi@xiaoer kibana-6.8.6]$ nohup bin/kibana &
启动成功后访问ip:5601
会看到如下界面:
集群版安装
安装环境
操作系统 CentOS 7.7 64位机器三台[xiaoer, yangqi1, yangqi2]
ElasticSearch 6.8.6
Kinbana 6.8.6
JDK 1.8.0_162
修改配置文件
# 集群的名称(必须一样)
cluster.name: Yankee
# 当前节点名称,其余两个节点分别为 elastic-2 和 elastic-3
node.name: elastic-1
# 指定该节点是否有资格被选举成为 master 节点,默认是 true,es 是默认集群中的第一台机器为 master,如果这台机挂了就会重新选举 master
node.master: true
# 允许该节点存储数据(默认开启)
node.data: true
# 索引数据的存储路径
path.data: /opt/apps/elasticsearch-6.8.6/data
# 日志文件的存储路径
path.logs: /opt/apps/elasticsearch-6.8.6/logs
# 设置为true来锁住内存。因为内存交换到磁盘对服务器性能来说是致命的,当 jvm 开始 swapping 时 es 的效率会降低,所以要保证它不 swap
bootstrap.memory_lock: true
# 绑定的ip地址
network.host: 0.0.0.0
# 设置对外服务的http端口,默认为 9200
http.port: 9200
# 设置节点间交互的tcp端口,默认是 9300
transport.tcp.port: 9300
# Elasticsearch 将绑定到可用的环回地址,并将扫描端口 9300 到 9305 以尝试连接到运行在同一台服务器上的其他节点。
# 这提供了自动集群体验,而无需进行任何配置。数组设置或逗号分隔的设置。每个值的形式应该是 host:port 或 host
#(如果没有设置,port 默认设置会 transport.profiles.default.port 回落到 transport.tcp.port)。
# 请注意,IPv6 主机必须放在括号内。默认为 127.0.0.1, [::1]
discovery.zen.ping.unicast.hosts: ["xiaoer", "yangqi1", "yangqi2"]
# 如果没有这种设置,遭受网络故障的集群就有可能将集群分成两个独立的集群 - 分裂的大脑 - 这将导致数据丢失
discovery.zen.minimum_master_nodes: 2
启动测试
直接执行./bin/elasticsearch
,启动出错:
[yangqi@xiaoer elasticsearch-6.8.6]$ ./bin/elasticsearch
[yangqi@yangqi1 elasticsearch-6.8.6]$ ./bin/elasticsearch
[yangqi@yangqi2 elasticsearch-6.8.6]$ ./bin/elasticsearch
解决方法
[1]: memory locking requested for elasticsearch process but memory is not locked
编辑/etc/security/limits.conf
,追加以下内容(需要注意的是修改完之后需要重新登录):
yangqi soft memlock unlimited
yangqi hard memlock unlimited
如果修改完成后运行./bin/elasticsearch
后,提示已杀死,一般情况下是由于内存无法分配导致的,可以查看日志信息:
此时可以修改./cofig/jvm.options
文件(根据自己的内存大小进行调整):
-Xms512M
-Xmx512M
[2]: max number of threads [3795] for user [yangqi] is too low, increase to at least [4096]
通过ulimit -a
查看用户进程数限制,发现最大进程数被限制为3795,编辑/etc/security/limits.conf
追加以下内容(需要注意的是修改完之后需要重新登录):
* soft nproc 4096
* hard nproc 4096
重新启动,没有报错,访问ip:9200/_cluster/health?pretty
,可以看到集群的节点信息(green
表示集群健康):
ElasticSearch
的使用
ElasticSearch
安装插件的命令
# 安装插件,可以是本地地址也可以是远程地址
bin/elasticsearch-plugin install [地址]
# 列出所有安装的插件
bin/elasticsearch-plugin list
# 移除已经安装的插件
bin/elasticsearch-plugin remove [插件名称]
Bigdesk
安装
下载地址
下载源码的压缩包即可,下载下来是bigdesk-master.zip
,可以在windows
解压之后上传到elasticsearch
集群的elasticsearch-6.8.6/plugins
目录下
安装
进入bigdesk-master/_site
目录下,执行以下命令:
[yangqi@xiaoer _site]$ python -m SimpleHTTPServer
将bigdesk
后台启动:
[yangqi@xiaoer _site]$ nohup python -m SimpleHTTPServer &
可以使用ps -ef | grep bigdesk
命令查看后台运行状态:
[yangqi@xiaoer _site]$ ps -ef | grep SimpleHTTPServer
连接elasticsearch
此时可能会出现连接不上的情况,需要关掉bigdesk
,然后修改elasticsearch.yml
配置文件,添加以下内容:
http.cors.enabled: true
http.cors.allow-origin: "*"
之后关掉elasticsearch
,重新启动,可能会看到如下的错误信息:
这是因为不能将bigdesk-master
目录放到plugins
目录中,可以将bigdesk-master
放到elasticsearch-6.8.6
的安装目录中:
[yangqi@xiaoer elasticsearch-6.8.6]$ mv ./plugins/bigdesk-master ./
重新启动elasticsearch
,访问ip:8000
,点击Connect
即可
elasticsearch-head
安装
下载地址
下载源码的压缩包即可,下载下来是elasticsearch-head-master.zip
,可以在windows
解压之后上传到elasticsearch
集群的elasticsearch-6.8.6
目录下
安装
安装nodejs
[yangqi@xiaoer ~]$ sudo yum install epel-release
[yangqi@xiaoer ~]$ sudo yum install nodejs npm
下载elasticsearch-head
并上传到ealsticseaarch-6.8.6
的目录下,进入elasticsearch-head-master
目录中,执行以下命令:
[yangqi@xiaoer elasticsearch-head-master]$ npm install
# 启动
[yangqi@xiaoer elasticsearch-head-master]$ npm run start
连接elasticsearch
之后就可以访问ip:9100
,界面如下:
此时可能会出现连接不上的情况,需要关掉bigdesk
,然后修改elasticsearch.yml
配置文件,添加以下内容:
http.cors.enabled: true
http.cors.allow-origin: "*"
重新启动elasticsearch
,访问ip:9100
,点击Connect
即可
# 后台运行
[yangqi@xiaoer elasticsearch-head-master]$ nohup npm run start &