文章目录
写在前面
Elasticsearch 1 : 本文
Elasticsearch 2 : https://blog.csdn.net/a__int__/article/details/111604720
Elasticsearch 3 : https://blog.csdn.net/a__int__/article/details/111644611
Elasticsearch 4 : https://blog.csdn.net/a__int__/article/details/111875343
1、Elasticsearch初识
ES:(elasticsearch搜索引擎)是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。
本文仅适用于es 7.X版本
本文的下一章
Elasticsearch 2 : https://blog.csdn.net/a__int__/article/details/111604720
2、es包内文件
先看一下es包解压后的目录
config目录
jvm.options里面的配置内容
jvm相关参数解释:
-Xms 堆的初始大小
-Xmx 堆的最大值
这里面默认设置1G 的堆内存,我们需要根据我们自己电脑可用内存大小调节
elasticsearch.yml里可配置参数:
属性名 | 说明 |
---|---|
cluster.name | 配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称。 |
node.name | 节点名,es会默认随机指定一个名字,建议指定一个有意义的名称,方便管理 |
path.conf | 设置配置文件的存储路径,tar或zip包安装默认在es根目录下的config文件夹,rpm安装默认在/etc/ elasticsearch |
path.data | 设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开 |
path.logs | 设置日志文件的存储路径,默认是es根目录下的logs文件夹 |
path.plugins | 设置插件的存放路径,默认是es根目录下的plugins文件夹 |
bootstrap.memory_lock | 设置为true可以锁住ES使用的内存,避免内存进行swap |
network.host | 设置bind_host和publish_host,设置为0.0.0.0允许外网访问 |
http.port | 设置对外服务的http端口,默认为9200。 |
transport.tcp.port | 集群结点之间通信端口 |
discovery.zen.ping.timeout | 设置ES自动发现节点连接超时的时间,默认为3秒,如果网络延迟高可设置大些 |
discovery.zen.minimum_master_nodes | 主结点数量的最少值 ,此值的公式为:(master_eligible_nodes / 2) + 1 ,比如:有3个符合要求的主结点,那么这里要设置为2 |
3、Linux下安装
3.1、下载与配置
es官网下载:https://www.elastic.co/cn/downloads/elasticsearch
可能下载很慢,可以使用迅雷下载,linux上没迅雷自己想办法
这里我们在linux上安装
运行之前,我们需要切换成一个非root账户
因为出于安全考虑,elasticsearch默认不允许以root账号运行。
创建用户:useradd newname
设置密码:passwd newname
切换用户:su - newname
以下指令都是在newname用户下进行
准备工作:
# 解压
tar -zxvf elasticsearch.tar.gz
# 移动到我们要安装的位置
mv elasticsearch-7.10.1/ /home/newname/elasticsearch-7.10.1
# 进入elasticsearch目录下的config目录
cd config
# 修改jvm.options
vim jvm.options
# 修改elasticsearch.yml
vim elasticsearch.yml
修改jvm.options:修改默认配置:-Xms1g -Xmx1g为
-Xms512m
-Xmx512m
修改elasticsearch.yml(修改数据、日志目录、远程访问):
这一步如果不知道自己当前的具体目录,可以输入pwd显示目录
path.data: /home/newname/elasticsearch-7.10.1/data # 数据目录位置
path.logs: /home/newname/elasticsearch-7.10.1/logs # 日志目录位置
network.host: 0.0.0.0
如上指定的两个目录,在对应位置手动创建一下
mkdir data
mkdir logs
目前我们是做的单机安装,如果要做集群,只需要在这个配置文件中添加其它network.host节点信息即可。
3.2、运行
运行之前,注意下面几点:
1、需要在非root账户下运行
2、es-7.10需要安装jdk11
3、jdk需要配置环境变量
4、这个非root账户要有读写文件的权限、或者给es所在目录提权
查询es与jdk对应版本https://www.elastic.co/cn/support/matrix#matrix_jvm
非root账户提权 参考:https://blog.csdn.net/csdnzouqi/article/details/95499348
linux安装jdk1.8 参考:https://blog.csdn.net/weixin_39984161/article/details/91447727
进入elasticsearch根目录,再进入其bin目录
./elasticsearch
3.3、可能出现的报错
第一种错误:not find jdk
在这一步如果报找不到jdk的错误,可能是下列问题:
1、没使用非root账户
2、jdk没有配置环境变量
查找java安装路径:https://www.cnblogs.com/fuyuanming/p/11555427.html
配置Java环境变量:https://blog.csdn.net/panchao888888/article/details/80989349
第二种错误:unable to install syscall filter
如果用centos6(其linux内核版本为2.6 ),则会出现如下报错,原因是Elasticsearch的插件要求至少3.5以上版本。
不过没关系,我们禁用这个插件即可。修改elasticsearch.yml文件,在最下面添加如下配置:
bootstrap.system_call_filter: false
第三种错误:文件权限不足
登陆root账户,修改配置文件如下
vim /etc/security/limits.conf
添加内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
第四种错误:线程数不够
[2]: max number of threads [1024] for user [leyou] is too low, increase to at least [4096]
这是线程数不够,继续修改配置:
vim /etc/security/limits.d/90-nproc.conf
将* soft nproc 1024改为
* soft nproc 4096
第五种错误:进程虚拟内存
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
报的错误也可能是
controller process has stopped - no new native processes can be started
vm.max_map_count:限制一个进程可以拥有的VMA(虚拟内存区域)的数量,继续修改配置文件:
vim /etc/sysctl.conf
添加下面内容
vm.max_map_count=655360
完成后执行sysctl -p命令,载入sysctl配置文件;
sysctl -p
配置完成重启终端端口
第六种错误:
Exception in thread “main” SettingsException[Failed to load settings from…
出现这个错误要注意elasticsearch.yml文件是否填写有错:
在yaml文件里,”:“后面必须要加空格
或者考虑是不是该用户没有权限读取elasticsearch.yml文件
切到elasticsearch.yml目录下
执行sudo chmod 777 elasticsearch.yml
第七种错误:Exception in thread “main” java.nio.file.AccessDeniedException:
这个还是文件权限不足
解决方法: chown -R 用户名:用户名 文件(目录)名
尽量将整个elasticsearch所在目录都放权
例
sudo chown -R leyou:leyou /home/leyou/elasticsearch-7.10.1
第八种错误:bootstrap checks failed
解决方案:
在elasticsearch的config目录下,修改elasticsearch.yml配置文件,将下面的配置加入到该配置文件中:
ip替换host1等,多节点请添加多个ip地址,单节点可写按默认来
#配置以下三者,最少其一
#[discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes]
cluster.initial_master_nodes: [“node-1”] #这里的node-1为node-name配置的值
具体参考:https://my.oschina.net/openplus/blog/1582122
3.4、访问客户端
运行成功后可以看到:
- 9300:集群节点间通讯接口
- 9200:客户端访问接口
通过主机ip+9200可以访问客户端,但是要确保你的linux防火墙9200端口开放
centos开放9200端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --reload
访问
4、windows下安装
es下载网址:https://www.elastic.co/cn/downloads/elasticsearch
直接下载很慢:用迅雷下载
这里我使用的版本:
es 版本 7.10
jdk 版本 1.8
下载完解压
进入bin目录,双击elasticsearch.bat就可以运行
运行成功后可以看到:
- 9300:集群节点间通讯接口
- 9200:客户端访问接口
访问:http://127.0.0.1:9200/
4.1、配置
进入config目录,修改elasticsearch.yml文件,添加如下两个路径,记得也要创建对应的文件夹
进入config目录,修改jvm.options文件,根据我电脑的内存,我将堆内存改成了512m
进入bin目录,双击elasticsearch.bat启动
如果不出问题的话,es就开始运行了,如果出现问题,比如闪退了,
可以打开一个cmd窗口运行elasticsearch.bat,查看错误是什么
5、安装可视化界面head
安装head之前需要安装node.js
参考:https://www.cnblogs.com/jianguo221/p/11487532.html
注意:node.js依赖于python,所以你可能还需安装python:https://www.cnblogs.com/huys/p/10043436.html
当然node.js官网最新版,安装时会自动帮你安装python环境
下载head插件:https://github.com/mobz/elasticsearch-head
下载完成,进入解压目录,打开对应的cmd
输入npm install 安装依赖
如果npm安装太慢,可以使用cnpm指令安装,参考:https://www.cnblogs.com/liyuspace/p/10338570.html
依赖安装完成,输入npm run start
访问页面
由于es的端口是9200,这里使用head连接的话就跨域了,所以我们在es里面配置一下跨域
在es目录,找到config目录下的elasticsearch.yml
添加下面配置
http.cors.enabled: true
http.cors.allow-origin: "*"
保存后,重启es、head
连接
6、安装数据分析工具Kibana
Kibana :可以进行数据查看、数据分析、数据可视化
kibana在很多日志系统中,用来做日志分析,我们使用kibana进行请求测试
Kibana下载:https://www.elastic.co/cn/downloads/kibana
下载的时候需要注意:Kibana 和 es版本要一致
下载完成解压很慢
解压完成找到kibana.bat双击运行
访问web端
打开它的控制台
6.1、Kibana配置
Kibana汉化:
找到config目录下的kibana.yml,在里面添加下面内容:
i18n.locale: "zh-CN"
改完重启生效,
如果你想自定义汉化内容,你可以修改下列文件
位置:kibana根目录\x-pack\plugins\translations\translations
7、总结
仅windows下
7.1、elasticsearch
下载:https://www.elastic.co/cn/downloads/elasticsearch
运行:双击bin/elasticsearch.bat
访问:http://localhost:9200/
7.2、head
下载:https://github.com/mobz/elasticsearch-head
运行:npm install (下载依赖)、npm run start(运行)
访问:http://localhost:9100/
7.3、Kibana
下载:https://www.elastic.co/cn/downloads/kibana
运行:双击bin/kibana.bat
访问:http://localhost:5601/
7.4、利用镜像下载
下载太慢的同学,还可以从华为镜像下载
ElasticSearch: https://mirrors.huaweicloud.com/elasticsearch/?C=N&O=D
logstash: https://mirrors.huaweicloud.com/logstash/?C=N&O=D
kibana: https://mirrors.huaweicloud.com/kibana/?C=N&O=D