最近在学习ES数据库,所以将一些东西记录一下。
以下所有的都是基于es7.8.0版本进行的
下载地址 :
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
IK分词器是专门进行中文分词的插件
安装过程如下
下载插件下载地址
将插件解压之后放入elasticSearch目录的plugins文件夹中
然后重启ElasticSearch即可
可以看到启动日志中显示已经加载了IK分词器
Kibana 是一个免费且开放的用户界面,能够让您对 Elasticsearch 数据进行可视化,并让您在 Elastic Stack 中进行导航。您可以进行各种操作,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成。
下面我们就安装下kibana
下载地址
# 下载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接口即可
首先需要设置ES权限验证,可以参考下文设置ElasticsSearch访问权限(密码)
1、 修改kibana安装文件下的config的kibana.yml文件,打开
#elasticsearch.username: "kibana_system"
#elasticsearch.password: "pass"
#修改成
elasticsearch.username: "kibana"
# abcd1234 = es密码
elasticsearch.password: "abcd1234"
修改前
修改后
保存启动即可。
启动之后输入
用户名:elastic
密 码:自己设置的
点击设置的用户可创建一个新的用户
由于上线需要设置用户名和密码,发现ES7.7以后的版本将安全认证功能免费开放了。并将X-pack插件集成了到了开源的ElasticSearch版本中。下面将图文介绍如何利用X-pack给ElasticSearch相关组件设置用户名和密码。
1、进入ES的安装目录config下的elasticsearch.yml文件在最后一行添加xpack.security.enabled: true=开启密码验证
2、重启了Es数据库。只有重启之后才可以设置用户名和密码、
# 启动ES
./elasticsearch -d
# 设置用户名密码
./elasticsearch-setup-passwords interactive
# 为ES很多预设的用户设置密码,如果记不住最好都设为一样。
4.到此已经完成ES及相关组件的加密了,后续访问和使用相关组件都需要验证用户名和密码了。
使用curl会报错
使用curl localhost:9200 -u elastic:{password}
如下方式访问则正常:
如果你觉得之前用户的密码设置的太简单了,你想修改密码可以采用如下方式:
curl -XPOST -u elastic "localhost:9200/_security/user/elastic/_password" -H 'Content-Type: application/json' -d'{"password" : "abcd1234"}'
这种方式修改密码需要注意的是:(1)之前设置过elastic的用户密码;(2)还记的用户elastic用户的密码。
如果忘记之前elastic用户的密码,这个时候又要用到ES的加密功能,那需要重置ES的密码认证;详细步骤如下:
config/elasticsearch.yml
;注释掉 xpack.security.enabled: true
这一行;.security-7
.security-7
索引: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
解决办法
1.切换至root用户
su root
修改limits.d目录下的配置文件,然后重启es即可
vi /etc/security/limits.d/90-nproc.conf
错误的修改的4096根据错误提示而定
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
解决办法
# 修改sysctl.conf文件
vim /etc/sysctl.conf
# 在文件最后添加
vm.max_map_count=262144
# 生效文件
/sbin/sysctl -p
再次启动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即可