基本概念
ES是什么?我们可以把ES比作一个Mysql数据库,同样用来存储数据,不过比Mysql提供了更多的搜索功能,例如分词搜索,关联度搜索等,而且搜索速度也不是同一级别的, ES能够实现百万数据/秒的查询速度。接下来将ES中用到的概念和Mysql进行类比:
字段 | 解释 |
index | 索引,相当于Mysql中的一个库,例如有一个叫『orders』的库,那么里面可以建立很多表,存储不同类型的数据,而表在ES中就是type |
type | 类型,相当于Mysql中的一张表,存储json类型的数据 |
document | 文档,一个文档相当于Mysql一行的数据 |
shards | 分片,通俗理解,就是数据分成几块区域来存储,可以理解为mysql中的分库分表(不太恰当) |
replicas | 备份,就是分片的备份数,相当于mysql的备份库 |
一、准备工作
ES为了安全不允许使用root用户启动。ES5之后的都不能使用添加启动参数或者修改配置文件等方法启动了,必须要创建用户。
root用户身份创建用户es:
adduser es
passwd es_393939
二、 安装ES
es安装目录放在了root的家目录下,新用户是不能访问到的,所以即使ES属于新用户了,但目录权限原因访问不到lib里的jar包,所以找不到Java类。 把ES搬到新用户的家(home)目录以内即可。
为了避免上述麻烦,我们直接切换到新建的es用户下,然后新建目录和下载安装包。
[es@iZj6c49h0dw85252u6oxu0Z es]$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.0.tar.gz解压
[es@iZj6c49h0dw85252u6oxu0Z es]$ tar -zxvf elasticsearch-6.5.0.tar.gz
启动,通过 -d 参数,表示后台运行
[es@iZj6c49h0dw85252u6oxu0Z es]$ cd elasticsearch-6.5.0/
[es@iZj6c49h0dw85252u6oxu0Z elasticsearch-6.5.0]$ bin/elasticsearch -d
可以通过 logs/elasticsearch.log 日志,查看启动是否成功。
三、测试:
访问 http://服务器 IP:9200 后,成功返回如下 JSON 串,表示成功。
但是我开始的时候也没看到成功信息而是
[root@izuf672oio5mc4fbyj0s0jz ~]# curl http://xx.xxx.xx.xxx:9200/
curl: (7) Failed connect to xx.xxx.xx.xxx:9200; Connection refused
注:xx.xxx.xx.xxx代表我服务器的ip
修改elasticsearch.yml文件,去掉注释并修改IP:network.host: 0.0.0.0
,并开通入方向的华为云访问规则,再次启动ES就可以了。
vim config/elasticsearch.yml
其他的错误日志
[1] bootstrap checks failed
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
修改 /etc/security/limits.conf
,在此配置中修改以下内容。如果服务器已经配置好,可以不用重复配置。需要在 Root 下执行
* soft nofile 65536
* hard nofile 65536
修改完成后同时使用命令修改配置:
$ ulimit -n 65536
$ ulimit -n
65536
这些配置主要为文件系统描述符及相关的配置,具体的配置可以根据自己的系统配置调大或调小。
修改/etc/sysctl.conf
,增加如下内容(如果服务器已经配置好,可以不用重复配置。需要在 Root 下执行):
vm.max_map_count=655360
修改完成后,执行 sysctl -p
命令,使配置生效。
通过浏览器访问http://
xx.xxx.xx.xxx:9200/
,可以返回json数据证明ES可以正常运行。
为了方便操作我们安装Kibana
Kibana是什么 ?
Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。
Elasticsearch、Logstash和Kibana这三个技术就是我们常说的ELK技术栈,可以说这三个技术的组合是大数据领域中一个很巧妙的设计。一种很典型的MVC思想,模型持久层,视图层和控制层。Logstash担任控制层的角色,负责搜集和过滤数据。Elasticsearch担任数据持久层的角色,负责储存数据。而我们这章的主题Kibana担任视图层角色,拥有各种维度的查询和分析,并使用图形化的界面展示存放在Elasticsearch中的数据。
准备工作
下载地址:Past Releases of Elastic Stack Software | Elastic
注:选择跟es尽量一致的版本,因为我的es是的6.5.0版本所以这个我也选择同样的版本
我的kibana也放在了和es同样的目录(/home/es/)
下载、解压后修改kibana.yml
server.port: 5601 #kibana端口
server.host: "0.0.0.0" #所有主机都能访问,或者也可以指定一个ip
因为我在华为云上部署所以要开通入方向的华为云访问规则
启动Kikana
Kibana不能和es一样不能在root用户启动创建es用户( 如果安装es时已创建es用户并且安装在同一台服务器只需要给kibana目录授权即可 )
useradd es
#修改/etc/sudoers文件,进入超级用户,因为没有写权限,所以要先把写权限加上
chmod u+w /etc/sudoers
#编辑/etc/sudoers文件,找到这一 行
vim /etc/sudoers
root ALL=(ALL:ALL) ALL
#添加这一行 es为新添加的用户名
es ALL=(ALL) ALL
#为了安全撤销文件的写权限
chmod u-w /etc/sudoers
#给es普通用户授理访问这个文件权限
sudo chown -R es:es /usr/local/softwore/kibana
#切换到es用户
su es
启动
cd bin
./kabana
访问地址: xx.xxx.xx.xxx:5601
安装ik分词器
下载地址:
https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v6.5.0
注意:一定要安装跟自己的es相同的版本
通过工具将下载的压缩包放入服务器并在es安装目录下的plugins目录新建ik文件夹(/usr/local/elasticsearch/plugins)
cd /usr/local/elasticsearch/plugins/ik/
unzip elasticsearch-analysis-ik-6.5.0.zip
解压完后要把压缩包删掉,否则会报错
然后重新启动es即可
最后效果
全文注意:一定要将这3软件的版本一一对应。我的Linux版本是centos7.x
参考地址:https://blog.csdn.net/lxw1005192401/article/details/128041462
https://blog.csdn.net/qq_29917503/article/details/126768884
https://blog.csdn.net/u013901132/article/details/125355713