1.拉取鏡像
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.2.2
2.啟動(dòng)容器,設(shè)置部分參數(shù)是為了支持跨域訪問(wèn)。
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e http.cors.enabled=true -e http.cors.allow-origin="*" -e http.cors.allow-headers=X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization -e http.cors.allow-credentials=true docker.elastic.co/elasticsearch/elasticsearch:6.2.2
3.通過(guò)ip:9200 訪問(wèn),會(huì)返回集群狀態(tài)信息,證明安裝成功。
{
"name" : "2pH4SYF",
"cluster_name" : "es-test",
"cluster_uuid" : "wvB794uYQ0OJVBAkRshU0w",
"version" : {
"number" : "6.2.2",
"build_hash" : "10b1edd",
"build_date" : "2018-02-16T19:01:30.685723Z",
"build_snapshot" : false,
"lucene_version" : "7.2.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
5.此刻你會(huì)發(fā)現(xiàn)Elasticsearch是裸奔的,現(xiàn)在添加基本安全驗(yàn)證。
5.1 進(jìn)入容器
docker ps
docker exec -it 容器ID bash
5.2 進(jìn)入到Elasticsearch安裝目錄
cd /usr/share/elasticsearch
5.3使用下列命令生成證書(shū),證書(shū)生成后在config下
bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
此時(shí)/usr/share/elasticsearch/config目錄下會(huì)多出2個(gè)文件:elastic-certificates.p12 和 elasticsearch.keystore。
修改文件所屬用戶和權(quán)限:
chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/config/
5.4 修改配置,打開(kāi)config/elasticsearch.yml,添加以下內(nèi)容:
vi /usr/share/elasticsearch/config/elasticsearch.yml
cluster.name: es-test
network.host: 0.0.0.0
discovery.zen.minimum_master_nodes: 1
xpack.license.self_generated.type: basic
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
5.5 重啟容器
docker restart 容器ID
5.6 進(jìn)入容器
docker exec -it 容器ID bash
6.安裝分詞器
進(jìn)入到docker容器內(nèi)
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.0/elasticsearch-analysis-ik-6.2.2.zip
安裝完成后查看
elasticsearch-plugin list
刪除分詞器
elasticsearch-plugin remove analysis-ik
7安裝kabana
7.1拉取kabana鏡像
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.2.2
7.2啟動(dòng)kibana
docker run --name kibana -p 5601:5601 -d --privileged=true docker.elastic.co/kibana/kibana:6.2.2
7.3修改elasticsearch配置
進(jìn)入到容器
docker exec -it ac016117a18d bash
修改/usr/share/kibana/config/kibana.yml
server.name: kibana
server.host: "0"
elasticsearch.url: http://10.9.251.141:9200
elasticsearch.username: elastic
elasticsearch.password: changeme
xpack.monitoring.ui.container.elasticsearch.enabled: true
退出重啟kibana
然后瀏覽器訪問(wèn)ip:5601就能進(jìn)入kibana,賬號(hào)密碼為elsticsearch的賬號(hào)密碼
7.4驗(yàn)證IK分詞器是否配置成功
在elk的dev-tools輸入,提示如下
POST /_analyze
{
"analyzer": "ik_max_word",
"text": "我是Joey"
}
注意使用spring-data-elasticsearch,spring-boot版本是2.1.5,yml配置如下:
spring:
data:
elasticsearch:
cluster-nodes: x.x.x.141:9300
repositories:
enabled: true
properties:
transport:
tcp:
connect_timeout: 120s
# 集群名稱
cluster-name: es-test
注意端口好事9300而不是9200,cluster-name要合elasticsearch.yml里面設(shè)置一樣