1 自动安装
1.1 介绍
Elasticsearch 的 docker 镜像基于 centos:7,下载地址:https://www.docker.elastic.co。
可用镜像:
- elasticsearch 官网的:
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.8.0
- docker hub 里的:
docker pull elasticsearch:6.8.0
1.2 部署ES前,请先设置宿主主机的 vm.max_map_count
vm.max_map_count 至少需要设置为 262144 才能用于生产环境。
切换到root用户,修改 /etc/sysctl.conf
,添加:
vm.max_map_count=655360
然后执行命令:sudo sysctl -p
注意:如果是 docker-compose部署,j改的是docker所在的宿主主机。
其他注意事项,可参考下面文章的“Notes for production use and defaults”一节:
https://www.elastic.co/guide/en/elasticsearch/reference/7.1/docker.html#docker-prod-cluster-composefile
1.3 docker用户
默认情况下,Elasticsearch容器使用的是 elasticsearch 用户,这个用户的 uid:gid 为 1000:1000。但 openshift 例外,openshift使用任意分配的用户ID。
1.4 docker-compose.yml
# ./docker-compose.yml version: '3' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:6.8.0 environment: - cluster.name=docker-cluster-elasticsearch # 为了提高性能和节点稳定性,禁用交换:https://www.elastic.co/guide/en/elasticsearch/reference/7.1/docker.html#docker - bootstrap.memory_lock=true # 设置堆大小,需要双引号 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 ports: - "9200:9200" - "9300:9300" volumes: - "esdata:/usr/share/elasticsearch/data" # 映射出来配置有时候会报错:nosuchfileexception /usr/share/elasticsearch/config/jvm.options # - "esconfig:/usr/share/elasticsearch/config" networks: - esnet kibana: image: docker.elastic.co/kibana/kibana:6.8.0 ports: - "5601:5601" networks: - esnet volumes: esdata: # esconfig: networks: esnet: driver: overlay
其他配置,可参考Demo:https://github.com/jakubhajek/elasticsearch-docker-swarm/blob/master/stack-elastic.yml
2 手动安装
2.1 下载并解压 elasticsearch-6.2.4.zip
(1)首先将Windows上的 elasticsearch-6.2.4.zip 拷贝到 Centos上(在windos上安装git,执行下面命令,请使用root用户:)
# scp “/C/Users/yeesec/Desktop/ElasticSearch/elasticsearch-6.2.4.zip” root@192.168.1.112:/opt
(2)由于一般我们不直接使用root用户,因此我们假设已经创建了一个admin用户,现在我们要用admin用户登录来安装这个 elasticsearch-6.2.4.zip,
但是这个文件的拥有者是root,因此首先要做的是将这个文件的拥有者改为 admin 用户:
# su root
# chown admin /opt/elasticsearch-6.2.4.zip
# chmod 777 /opt/elasticsearch-6.2.4.zip
# ll(结果:”drwxrwxrwx. 1 admin root 29095682 May 18 16:50 elasticsearch-6.2.4.zip”)
(3)通过ll命令,文件拥有者已改为admin了,但时执行”unzip elasticsearch-6.2.4.zip”发现还是报错,这是因为默认会把文件
解压到你当前所在的目录(opt所显示的目录),当你对该目录没有写权限时,就会出现了权限问题。那接来下就是修改opt目录的权限了
# chown admin /opt/
# chmod 777 /opt/
# ll(结果:”drwxrwxrwx. 5 admin root 4096 May 18 18:44 opt”)
(4)opt目录已有写入(w)权限,接着可以用 admin 解压了
# su admin
$ unzip elasticsearch-6.2.4.zip
2.2 运行 bin/elasticsearch
cd /opt/elasticsearch-6.2.4/ # 默认运行在端口9200,若要后台运行那么可以在后面添加参数 -d ./bin/elasticsearch () # 测试是否启动成功,可以打开另一个终端,执行这条命令 curl 'http://localhost:9200/?pretty'
注意:因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户(创建新用户这里不讲了,这里假设已创建了 admin 用户)。
2.3 elasticsearch 外网访问配置
修改 “config/elasticsearch.yml”,添加: network.host: 192.168.1.112
备注:修改后,运行 elasticsearch 会报”bootstrap checks failed”的错误,具体解决这里略,请看笔记。
重要:对于docker部署来说,值为:network.host: 0.0.0.0,因此不需要去改。还请确认???
2.4 安装 Kibana
Kibana 让您能够可视化 Elasticsearch 中的数据并操作 Elastic Stack。
Kibana 的安装过程和 elasticsearch-6.2.4.zip 差不多。解压后,如有必要,可以修改下 config 目录下的 kibana.yml 配置文件,添加如下配置:
#配置本机ip
将 server.host: “localhost” 改为 server.host: “192.168.1.112”
#配置es集群url
将 elasticsearch.url:”http://localhost:9200″ 改为 elasticsearch.url:”http://192.168.1.112:9200″
如果不改 server.host,除了localhost那台机器,其他机器无法访问Kibana站点。
$ bin/kibana(Kibana默认运行在端口 5601,启动后可以访问Kibana网站了:http://localhost:5601)
2.5 安装 Sense
Sense 是一个 Kibana 应用 它提供交互式的控制台,通过你的浏览器直接向 Elasticsearch 提交请求,
你不必安装 Sense,但是它允许你在本地的 Elasticsearch 集群上测试示例代码,从而使本书更具有交互性。
提示:目前我没有安装。