即全文检索解决方案ELK中的E和K
这是之间安装版,较简单,回头补上docker swarm集群先搭建教程
目录
linux Centos7 安裝搭建elasticsearch7.6.2+kibana7.6.2
一、安装elasticsearch
1、安装包下载:
2、将安装包上传至服务器中,
3、配置elasticsearch
修改es配置文件
修改内存配置:
4、创建es专用账号,
设置一些用户相关的限制
使配置生效:
用户添加sudo权限
5、启动elasticsearch
后台启动
后台启动的程序关闭操作:
二、安装kibana
修改配置文件
启动kibana
后台启动
三、中文分词
1、下载中文分词插件包
重启es
分词器使用
kibana查询结果对照:
# 添加分词后--简单分词
# 添加分词后--最大化分词
So ,that's perfect,Enjoy yourself!
elastic产品下载地址:https://www.elastic.co/cn/downloads/
elasticsearch:https://www.elastic.co/cn/downloads/elasticsearch
kibana:https://www.elastic.co/cn/downloads/kibana
将主角最新版下载到本地(我喜欢用迅雷下载,然后上传服务器,感觉这样会快很多)
版本选linux:
例如:/usr/local/bin/es-groot下并解压,可以用上传工具xftp或者finalshell
解压命令:
tar -avxf elasticsearch-7.6.2
tar -avxf kibana-7.6.2-linux-x86_64
# 进入es目录
cd elasticsearch-7.6.2/
# 创建目录存放es数据
mkdir data
vim config/elasticsearch.yml
添加以下内容:
cluster.name: grootes #集群名称
node.name: node-1 #节点名称
#数据和日志的存储目录
path.data: /usr/local/bin/es-groot/elasticsearch-7.6.2/data
path.logs: /usr/local/bin/es-groot/elasticsearch-7.6.2/logs
#设置绑定的ip,设置为0.0.0.0以后就可以让任何计算机节点访问到了
network.host: 0.0.0.0
http.port: 9200 #端口
#设置在集群中的所有节点名称,这个节点名称就是之前所修改的,当然你也可以采用默认的也行,目前是单机,放入一个节点即可
cluster.initial_master_nodes: ["node-1"]
:wq 保存并退出vim
如果你的内存足够大可以不改,咱是永不倒这么大内存所以降一下,由默认1G降为512m
执行:
vim ./config/jvm.options
修改为以下内容:
#-Xms1g
#-Xmx1g
-Xms512m
-Xmx512m
:wq 保存并退出vim
elasticsearch产品是不允许使用root账户启动的。
# 创建用户
adduser grootes
# 设置密码
passwd grootes
# 输入两遍密码,如果有提示密码过于简单,请设置复杂一点的密码
帐号服目录权限
# 将es和kibana目录赋权限给新建用户,/usr/local/bin/es-groot/为es所在上级目录
chown grootes /usr/local/bin/es-groot/ -R
vim /etc/security/limits.conf,在末尾加上:
grootes soft nofile 65536
grootes hard nofile 65536
grootes soft nproc 4096
grootes hard nproc 4096
vim /etc/security/limits.d/20-nproc.conf,增加:
grootes soft nproc 4096
执行sysctl -p
[root@fs_node02 bin]# sysctl -p
fs.file-max = 65536
vm.max_map_count = 262144
为了方便操作为grootes用户添加sudo权限
vim /etc/sudoers
找到“root ALL=(ALL) ALL”一行,在下面插入新的一行,(插入后效果)
root ALL=(ALL) ALL
grootes ALL=(ALL) ALL
然后在vim键入命令“:wq!”保存并退出。
切换用户:
su grootes
启动es:
./bin/elasticsearch
无报错的话,
浏览器输入服务器地址+es中配置的port9200,如:10.10.*.122:9200,出现如下json即成功了。
ctrl+c停止es运行,重新执行后台启动命令:
nohup ./bin/elasticsearch > nohup.out 2>&1 &
启动日志将输出至执行命令的文件夹下的nohup.out文件中:如下
# 查询进程
ps -aef|grep elasticsearch
# kill -9 pid杀死进程
kill -9 3718285
如下:
kibana安装就简单多了,
在第一不中已经下载并解压好了压缩包,这里掠过。
# 切换到kibana目录下
cd ../kibana-7.6.2-linux-x86_64/
# 编辑配置文件
vim config/kibana.yml
# 添加一下内容:
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
./bin/kibana
无报错即可。
浏览器输入服务器地址ip+端口5601查看如下:
根据自己的情况选择,这里选第二项直接进入我们的es交互界面
好了,尽情的耍吧。kibana详细使用教程就略过了。
# ctrl+c结束进程
# 执行后台启动命令,日志将输出至nohup.out文件
nohup ./bin/kibana > nohup.out 2>&1 &
elasticsearch本身自带的中文分词,就是单纯把中文一个字一个字的分开,根本没有词汇的概念。但是实际应用中,用户都是以词汇为条件,进行查询匹配的,如果能够把文章以词汇为单位切分开,那么与用户的查询条件能够更贴切的匹配上,查询速度也更加快速。
分词器下载网址:https://github.com/medcl/elasticsearch-analysis-ik/releases
下载好相应版本的zip包,解压后放到elasticsearch/plugins/下,然后需要删除原压缩包文件。
一下命令使用的grootes用户,非root用户。如果使用了root用户请将ik目录赋权限给grootes。
切换到plugins目录:cd /usr/local/bin/es-groot/elasticsearch-7.6.2/plugins/
创建ik目录:mkdir ik
将文件分词器文件解压到ik下:unzip -d ik/ elasticsearch-analysis-ik-7.6.2.zip
删除原zip包命令:rm -rf elasticsearch-analysis-ik-7.6.2.zip
实例操作如下:
[root@fs_node02 ~]# cd /usr/local/bin/es-groot/elasticsearch-7.6.2/plugins/
[grootes@fs_node02 plugins]$ mkdir ik
[grootes@fs_node02 plugins]$ ls
elasticsearch-analysis-ik-7.6.2.zip ik
[grootes@fs_node02 plugins]$ unzip -d ik/ elasticsearch-analysis-ik-7.6.2.zip
Archive: elasticsearch-analysis-ik-7.6.2.zip
creating: ik/config/
inflating: ik/config/main.dic
inflating: ik/config/quantifier.dic
inflating: ik/config/extra_single_word_full.dic
inflating: ik/config/IKAnalyzer.cfg.xml
inflating: ik/config/surname.dic
inflating: ik/config/suffix.dic
inflating: ik/config/stopword.dic
inflating: ik/config/extra_main.dic
inflating: ik/config/extra_stopword.dic
inflating: ik/config/preposition.dic
inflating: ik/config/extra_single_word_low_freq.dic
inflating: ik/config/extra_single_word.dic
inflating: ik/elasticsearch-analysis-ik-7.6.2.jar
inflating: ik/httpclient-4.5.2.jar
inflating: ik/httpcore-4.4.4.jar
inflating: ik/commons-logging-1.2.jar
inflating: ik/commons-codec-1.9.jar
inflating: ik/plugin-descriptor.properties
inflating: ik/plugin-security.policy
[grootes@fs_node02 plugins]$ cd ik
[grootes@fs_node02 ik]$ ll
total 1428
-rw-r--r-- 1 grootes grootes 263965 May 6 2018 commons-codec-1.9.jar
-rw-r--r-- 1 grootes grootes 61829 May 6 2018 commons-logging-1.2.jar
drwxr-xr-x 2 grootes grootes 299 Dec 25 20:20 config
-rw-r--r-- 1 grootes grootes 54599 Apr 1 10:25 elasticsearch-analysis-ik-7.6.2.jar
-rw-r--r-- 1 grootes grootes 736658 May 6 2018 httpclient-4.5.2.jar
-rw-r--r-- 1 grootes grootes 326724 May 6 2018 httpcore-4.4.4.jar
-rw-r--r-- 1 grootes grootes 1805 Apr 1 10:25 plugin-descriptor.properties
-rw-r--r-- 1 grootes grootes 125 Apr 1 10:25 plugin-security.policy
[grootes@fs_node02 ik]$ cd ../
[grootes@fs_node02 plugins]$ ls
elasticsearch-analysis-ik-7.6.2.zip ik
[grootes@fs_node02 plugins]$ ll
total 4400
-rw-r--r-- 1 root root 4504473 Apr 21 18:20 elasticsearch-analysis-ik-7.6.2.zip
drwxrwxr-x 3 grootes grootes 243 Apr 21 18:23 ik
[grootes@fs_node02 plugins]$ rm -rf elasticsearch-analysis-ik-7.6.2.zip
[grootes@fs_node02 plugins]$ ls
ik
[grootes@fs_node02 plugins]$ ll
total 0
drwxrwxr-x 3 grootes grootes 243 Apr 21 18:23 ik
按照上边布局中的操作kill调es进程后重启es。打开kibana测试分词效果。
分词语句实例(gogo是随便创建的索引):
# 添加中文分词前
GET gogo/_analyze
{
"text": "我爱祖国"
}
# 添加分词后--简单分词
GET gogo/_analyze
{ "analyzer": "ik_smart",
"text": "我爱祖国"
}
# 添加分词后--最大化分词
GET gogo/_analyze
{ "analyzer": "ik_max_word",
"text": "我爱祖国"
}
# 添加中文分词前
我的其他相关es的文章:
Java+springboot+elasticsearch7.6.2实现分组查询(平级+层级)并实现script多字段拼接查询以及大于小于等条件关系查询的实现
docker swarm集群下部署elasticsearch7.6.2集群+kibana7.6.2+es-head+中文分词