【Elasticsearch入门】容器配置环境
这篇文章的目标是什么?
针对希望学习Elasticsearch的人,我将整理Elasticsearch和Kibana的环境搭建方法。
is that you only need one option to paraphrase the following natively in Chinese:
前提
请确保 Docker 处于可用状态。
版本等
-
- Elasticsearch: 7.6.2
- kibana: 7.6.2
使用的东西
-
- docker
-
- Elastic Stack
Elasticsearch
Kibana
构建容器环境
我打算创建「Elasticsearch」和「Kibana」容器。
虽然Elastic公司提供了每个产品的容器映像,但这次我打算创建CentOS容器并在其上安装这两个产品。
构建Docker网络
由于需要在容器之间进行通信,因此需要创建docker网络。
$ docker network create elasticstack
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
39612814bc52 bridge bridge local
b5c7f801ff0b elasticstack bridge local
b6ca1bb92159 host host local
0dc929d2724d none null local
创建容器
根据之前的说明,我们将实际创建容器。本次将创建三个容器,每个容器的要求如下述所示。
-
- elasticsearchコンテナ
name: elasticsearch
network: elasticstack
port: 9200:9200
イメージ: centos:centos7
kibanaコンテナ
name: kibana
network: elasticstack
port: 5601:5601
イメージ: centos:centos7
在考虑每个设置的基础上创建容器。
$ docker run -it -d --network elasticstack -p 9200:9200 --name elasticsearch --privileged centos:centos7 /sbin/init
$ docker run -it -d --network elasticstack -p 5601:5601 --name kibana --privileged centos:centos7 /sbin/init
您可以通过以下命令来确认所提到的事项。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
479654a004cb centos:centos7 "/sbin/init" 4 minutes ago Up 4 minutes 0.0.0.0:5601->5601/tcp kibana
977d952a52a8 centos:centos7 "/sbin/init" 4 minutes ago Up 4 minutes 0.0.0.0:9200->9200/tcp elasticsearch
弹性堆栈的构建
我们将对每个容器进行设置。
弹性搜索容器
搭建Elasticsearch
使用以下命令进入容器并进行工作。
$ docker exec -it elasticsearch /bin/bash
我们将安装Java和Elasticsearch的RPM包。在安装RPM包时,需要获取用于安装Elasticsearch的RPM包,因此还需安装wget工具。本次我们将使用Java 11和Elasticsearch 7.6.2版本。
# yum install -y java-11-openjdk
# yum install -y wget
# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-x86_64.rpm
# rpm --install elasticsearch-7.6.2-x86_64.rpm
Elasticsearch的配置
由于本次结构的设置中,Elasticsearch作为单一集群并在容器上运行,因此需要对Elasticsearch进行一些配置。在这里我们将进行这些配置。
elasticsearch.yml的配置设置
请打开elasticsearch.yml文件。
# vi /etc/elasticsearch/elasticsearch.yml
请在elasticsearch.yml 文件的最后一行添加以下内容。
cluster.name: my_cluster
node.name: elasticsearch
network.host: _site_
cluster.initial_master_nodes: ["elasticsearch"]
由于这次是单一集群,所以没有太多必要设置 cluster.name 和 node.name。但是为了以后方便,我会自己进行设置。
network.host 指定要监听的主机。本次选择的是链接本地地址,所以会指定 site。
cluster.initial_master_nodes 是单一集群配置所必需的设置,请进行设定。简单说,是在这里指定最低限度需要的节点,以选择主节点。
完成设置之后,尝试启动elasticsearch。
# systemctl restart elasticsearch.service
您可以确认通过输入以下命令进行启动。
# curl elasticsearch:9200
{
"name" : "elasticsearch",
"cluster_name" : "my_cluster",
"cluster_uuid" : "l_xjt09CSu-43BUdBM4fkg",
"version" : {
"number" : "7.6.2",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
"build_date" : "2020-03-26T06:34:37.794943Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Kibana容器
建立Kibana
请使用以下命令进入容器并进行操作。
$ docker exec -it kibana /bin/bash
安装Java并安装Kibana的rpm包。在安装rpm包时,需要获取用于Kibana安装的rpm包,因此还需要安装wget来获取它。
本次我们将使用Java 11和Kibana 7.6.2来进行安装。
# yum install -y java-11-openjdk
# yum install -y wget
# wget https://artifacts.elastic.co/downloads/kibana/kibana-7.6.2-x86_64.rpm
# rpm --install kibana-7.6.2-x86_64.rpm
Kibana的设置
我们需要在运行中的容器上对Kibana进行一些配置。在这里,我们将进行这些设置。
kibana.yml文件的配置
打开kibana.yml文件。
# vi /etc/kibana/kibana.yml
请找到kibana.yml文件中相应的部分,并将其更改为以下设置。
server.host: 0.0.0.0
elasticsearch.hosts: ["http://elasticsearch:9200"]
完成设置后,我将启动Elasticsearch进行尝试。
# systemctl restart kibana.service
当达到这一步,您就可以启动Kibana了。请访问以下网址进行连接测试。
http://localhost:5601
请点击连接Kibana后左侧的侧边栏中的“Dev Tools”选项。
然后控制台界面将会出现,请在那里输入以下内容,然后尝试点击播放按钮。
GET /
如果出现以下屏幕,说明Kibana和Elasticsearch的连接已完成。
这是搭建Kibana+Elasticsearch试用环境的方法。
推荐学习材料
-
- はじめてのElasticsearch
- はじめてのKibana