最近在学习ES数据库,所以将一些东西记录一下。
以下所有的都是基于es7.8.0版本进行的
下载安装ES数据库
安装本体
下载地址 :
linux
mac os
windows
es的安装非常简单,基本都是解压然后运行就行了。这里我们就以linux版本为例子
# 新建一个文件夹
mkdir elasticSearch
# 进入文件夹
cd elasticSearch/
# 下载安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz
# 解压安装包
gzip -d elasticsearch-7.8.0-linux-x86_64.tar.gz
tar -vxf elasticsearch-7.8.0-linux-x86_64.tar
# 进入解压后的目录
cd elasticsearch-7.8.0
# 添加跨域
vim config/elasticsearch.yml
# 将以下两段话插入文档最底下
http.cors.enabled: true
http.cors.allow-origin: "*"
# 因为linux下不支持root用户启动所以我们要创建一个es用户
# window和mac不需要此步骤可以直接启动数据库
# 创建linux的es用户
adduser es
# 设置密码 输入两次密码
passwd es
# 给es用户赋予权限 后面的是es安装的目录
chown es /usr/local/elasticSearch/ -R
# 切换到es用户
su es
# 启动es数据库
cd bin/
./elasticsearch -d
# 启动访问本地的9200端口查看是否启动成功
# 出现如所示则启动成功
curl http://127.0.0.1:9200
![image-20211213134106467](https://img-blog.csdnimg.cn/img_convert/7dfd57f7a5a9a9694d965cd6aef00729.png)
安装IK分词器
IK分词器是专门进行中文分词的插件
安装过程如下
下载插件下载地址
将插件解压之后放入elasticSearch目录的plugins文件夹中
![image-20211213134922635](https://img-blog.csdnimg.cn/img_convert/1d4d7ef9c1f22c0dec05398519b91f93.png)
然后重启ElasticSearch即可
可以看到启动日志中显示已经加载了IK分词器
![image-20211213134852300](https://img-blog.csdnimg.cn/img_convert/3dd7d1092083d556443b62b8661f32c9.png)
下载安装Kibana
Kibana 是一个免费且开放的用户界面,能够让您对 Elasticsearch 数据进行可视化,并让您在 Elastic Stack 中进行导航。您可以进行各种操作,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成。
下面我们就安装下kibana
下载地址
windows
mac os
linux
# 下载kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-linux-x86_64.tar.gz
# 解压kibana
tar -xvf kibana-7.8.0-linux-x86_64
# 进入config文件夹设置kibana.yml文件
server.port: 5601
server.host: "localhost"
server.basePath: "/kibana"
server.name: "kibana"
elasticsearch.hosts: ["http://localhost:9200"]
# 启动kibana
cd kibana-7.8.0-linux-x86_64/bin/
./kibana
# 后台启动
nohup ./kibana &
# 访问本地 5601接口即可
设置kibana密码
首先需要设置ES权限验证,可以参考下文设置ElasticsSearch访问权限(密码)
1、 修改kibana安装文件下的config的kibana.yml文件,打开
#elasticsearch.username: "kibana_system"
#elasticsearch.password: "pass"
#修改成
elasticsearch.username: "kibana"
# abcd1234 = es密码
elasticsearch.password: "abcd1234"
修改前
![image-20211213141815606](https://img-blog.csdnimg.cn/img_convert/ed123a3929538deb74f89d09bea25bea.png)
修改后
![image-20211213141758382](https://img-blog.csdnimg.cn/img_convert/cfeae7b57ee66f310408e5fd37b6bb40.png)
保存启动即可。
启动之后输入
用户名:elastic
密 码:自己设置的
![image-20211213142442273](https://img-blog.csdnimg.cn/img_convert/10f368d4830d7c8dbb22184251ff29a8.png)
点击设置的用户可创建一个新的用户
![image-20211213142615317](https://img-blog.csdnimg.cn/img_convert/59a24cfecb1fc2b5d1ed542c35b69a40.png)
![image-20211213142647807](https://img-blog.csdnimg.cn/img_convert/0918462e0ab0d76fc70e6179c6d3035e.png)
![image-20211213142721456](https://img-blog.csdnimg.cn/img_convert/73ce44d5e850d2cf3ca256765cb08892.png)
设置ElasticsSearch访问权限(密码)
由于上线需要设置用户名和密码,发现ES7.7以后的版本将安全认证功能免费开放了。并将X-pack插件集成了到了开源的ElasticSearch版本中。下面将图文介绍如何利用X-pack给ElasticSearch相关组件设置用户名和密码。
1、进入ES的安装目录config下的elasticsearch.yml文件在最后一行添加xpack.security.enabled: true=开启密码验证
![image-20211213135800069](https://img-blog.csdnimg.cn/img_convert/50d559b5b079c2a532165e66b74d9517.png)
![image-20211213135820890](https://img-blog.csdnimg.cn/img_convert/44b1c08504d8dfb2fdab348066ac4614.png)
2、重启了Es数据库。只有重启之后才可以设置用户名和密码、
# 启动ES
./elasticsearch -d
# 设置用户名密码
./elasticsearch-setup-passwords interactive
# 为ES很多预设的用户设置密码,如果记不住最好都设为一样。
![image-20211213140350924](https://img-blog.csdnimg.cn/img_convert/e80c5e65f05d8f35f6ccff94e50c8bbf.png)
4.到此已经完成ES及相关组件的加密了,后续访问和使用相关组件都需要验证用户名和密码了。
使用curl会报错
![image-20211213140505418](https://img-blog.csdnimg.cn/img_convert/b88c40cf29b2d4c760fe93aa4f20520a.png)
使用curl localhost:9200 -u elastic:{password}
如下方式访问则正常:
![image-20211213140559509](https://img-blog.csdnimg.cn/img_convert/c6046df1d772b29449166d6c364648a2.png)
如果你觉得之前用户的密码设置的太简单了,你想修改密码可以采用如下方式:
curl -XPOST -u elastic "localhost:9200/_security/user/elastic/_password" -H 'Content-Type: application/json' -d'{"password" : "abcd1234"}'
![image-20211213140936208](https://img-blog.csdnimg.cn/img_convert/66585df07ff735626afd6b3c79dbd95d.png)
这种方式修改密码需要注意的是:(1)之前设置过elastic的用户密码;(2)还记的用户elastic用户的密码。
如果忘记之前elastic用户的密码,这个时候又要用到ES的加密功能,那需要重置ES的密码认证;详细步骤如下:
- 修改
config/elasticsearch.yml
;注释掉 xpack.security.enabled: true
这一行;
- 重启ES,查看下索引,发现多了一个
.security-7
![img](https://img-blog.csdnimg.cn/img_convert/545ab27cc395751cfcf9e779a3bd8386.png)
![img](https://img-blog.csdnimg.cn/img_convert/0fa2677aefd67fa1bdbe96614a91ee06.png)
ES常见启动错误
错误一
ERROR: [4] bootstrap checks failed
[1]: max number of threads [1024] for user [es] is too low, increase to at least [4096]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[3]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
[4]: 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
![image-20211213144312172](https://img-blog.csdnimg.cn/img_convert/8e8846f730909fe5c139e34dd2bc0536.png)
解决办法
1.切换至root用户
su root
-
修改limits.d目录下的配置文件,然后重启es即可
vi /etc/security/limits.d/90-nproc.conf
![image-20211213144427110](https://img-blog.csdnimg.cn/img_convert/e78343c4617b47b705e779002ed581a4.png)
错误的修改的4096根据错误提示而定
![image-20211213144509842](https://img-blog.csdnimg.cn/img_convert/f9e75c1e5245d33759cc198b8bce61b7.png)
错误二
ERROR: [3] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
[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
![image-20211213144805252](https://img-blog.csdnimg.cn/img_convert/f5dcd806ad1c5005c8d4ff4c9765e680.png)
解决办法
# 修改sysctl.conf文件
vim /etc/sysctl.conf
# 在文件最后添加
vm.max_map_count=262144
# 生效文件
/sbin/sysctl -p
![image-20211213144935779](https://img-blog.csdnimg.cn/img_convert/2d7cb7232f9d12c19eae23c4da6850cb.png)
![image-20211213145044215](https://img-blog.csdnimg.cn/img_convert/4b8b85cae8141eb29cf1e46de9a7e89a.png)
再次启动ES即可解决
问题三
ERROR: [2] bootstrap checks failed
[1]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
[2]: 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
解决办法
打开elasticsSearch.yml文件添加
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
重启ES即可
问题四
ERROR: [1] bootstrap checks failed
[1]: 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
解决办法
打开elasticsSearch.yml打开
cluster.name: my-application
node.name: node-1
# 打开并修改
cluster.initial_master_nodes: ["node-1"]
重启ES即可