最近在学习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

安装IK分词器

IK分词器是专门进行中文分词的插件

安装过程如下

下载插件下载地址

将插件解压之后放入elasticSearch目录的plugins文件夹中

image-20211213134922635

然后重启ElasticSearch即可

可以看到启动日志中显示已经加载了IK分词器

image-20211213134852300

下载安装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

修改后

image-20211213141758382

保存启动即可。

启动之后输入

用户名:elastic

密 码:自己设置的

image-20211213142442273

点击设置的用户可创建一个新的用户

image-20211213142615317

image-20211213142647807

image-20211213142721456

设置ElasticsSearch访问权限(密码)

由于上线需要设置用户名和密码,发现ES7.7以后的版本将安全认证功能免费开放了。并将X-pack插件集成了到了开源的ElasticSearch版本中。下面将图文介绍如何利用X-pack给ElasticSearch相关组件设置用户名和密码。

1、进入ES的安装目录config下的elasticsearch.yml文件在最后一行添加xpack.security.enabled: true=开启密码验证

image-20211213135800069

image-20211213135820890

2、重启了Es数据库。只有重启之后才可以设置用户名和密码、

# 启动ES
./elasticsearch -d
# 设置用户名密码
./elasticsearch-setup-passwords interactive
# 为ES很多预设的用户设置密码,如果记不住最好都设为一样。

image-20211213140350924

4.到此已经完成ES及相关组件的加密了,后续访问和使用相关组件都需要验证用户名和密码了。

使用curl会报错

image-20211213140505418

使用curl localhost:9200 -u elastic:{password}如下方式访问则正常:

image-20211213140559509

如果你觉得之前用户的密码设置的太简单了,你想修改密码可以采用如下方式:

curl -XPOST -u elastic "localhost:9200/_security/user/elastic/_password" -H 'Content-Type: application/json' -d'{"password" : "abcd1234"}'

image-20211213140936208

这种方式修改密码需要注意的是:(1)之前设置过elastic的用户密码;(2)还记的用户elastic用户的密码。

如果忘记之前elastic用户的密码,这个时候又要用到ES的加密功能,那需要重置ES的密码认证;详细步骤如下:

  • 修改config/elasticsearch.yml;注释掉 xpack.security.enabled: true这一行;
  • 重启ES,查看下索引,发现多了一个.security-7

img

  • 删除掉.security-7索引:

img

  • 到此就回到ES没有设置密码的阶段了

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

解决办法

1.切换至root用户

su root
  1. 修改limits.d目录下的配置文件,然后重启es即可
vi /etc/security/limits.d/90-nproc.conf

image-20211213144427110

错误的修改的4096根据错误提示而定

image-20211213144509842

错误二
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

解决办法

# 修改sysctl.conf文件
vim /etc/sysctl.conf
# 在文件最后添加
vm.max_map_count=262144
# 生效文件
/sbin/sysctl -p 

image-20211213144935779

image-20211213145044215

再次启动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即可

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐