[整理] ElasticSearch 01:介绍、安装(Docker、Windows、Linux)
1.介绍
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。
Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。
2.安装
Docker安装ElasticSearch
下载镜像:
docker pull elasticsearch:7.10.1
说明:不确定版本时,可以到 http://hub.docker.com 去查看
运行镜像:
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.10.1
如果有错误,可以查看容器:
docker ps # 列出正在运行的容器
docker ps -a # 列出所有容器,包括未运行的
docker logs 676164fb24b3 # 查看某个容器的日志
如果日志中发现内存不足,可以
docker run -d -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.10.1
进入容器:
docker exec -it es2 /bin/bash
如果要修改配置文件
cd config
vim elasticsearch.yml
Windows安装ElasticSearch
下载安装包
地址:https://www.elastic.co/cn/downloads/elasticsearch
创建Keystore
执行命令:elasticsearch-keystore create
运行ElasticSearch
切换到bin目录 执行命令:elasticsearch
设置密码:
elasticsearch-setup-passwords interactive
配置文件信息修改
切换到 config/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
cluster.name: robin-elasticsearch
node.name: robin-node
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
cluster.initial_master_nodes: ["robin-node"]
docker方式安装kibana
docker pull kibana:7.10.1
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://127.0.0.1:9200 -p 5601:5601 -d kibana:7.10.1
然后访问页面
http://自己的IP地址:5601/app/kibana
Docker搭建kibana访问出现[Kibana server is not ready yet]的问题
原因是因为 ELASTICSEARCH_URL 配置的应该是容器的 ip,而不是本地ip。
- 首先我们查看 ElasticSearch 的容器内部 ip:
$ docker inspect 容器ID
看NetworkSettings.IPAddress
- 然后进入 Kibana 容器内部,修改 kibana.yml 中的ip
$ docker exec -it kibana容器id /bin/bash
$ cd config
$ vi kibana.yml
#
# ** THIS IS AN AUTO-GENERATED FILE **
#
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
只需要将上面的 "http://elasticsearch:9200" 中的 elasticsearch 替换成上一步的es容器内部ip就可以了。
- 修改完成之后退出容器,重新启动即可