使用docker安装ES+Kibana+IK+Logstash

1、创建网络,让es和kibana容器可以通信互联

docker network create es-net

2、拉取镜像

docker pull elasticsearch:7.12.1

docker pull kibana:7.12.1

注意上面这两个版本要一致

docker pull docker.elastic.co/logstash/logstash:8.8.1

3、创建目录

mkdir -p /home/data/es

cd /home/data/es

mkdir es-data

mkdir es-logs

mkdir es-plugins

4、创建es容器

docker run -d \
  --name es \
    -e "ES_JAVA_OPTS=-Xms16G -Xmx16G" \
    -e "discovery.type=single-node" \
    -v /home/data/es/es-data:/usr/local/elasticsearch7.12.1/data \
    -v /home/data/es/es-plugins:/usr/local/elasticsearch7.12.1/plugins \
    -v /home/data/es/es-logs:/usr/local/elasticsearch7.12.1/logs \
    --privileged \
    --network es-net \
    -p 9200:9200 \
    -p 9300:9300 \
    --restart=always \
elasticsearch:7.2.1

访问:http://localhost:9200

如图:

 4.1如果es是8版本的话 启动后不能用http访问 而需要使用https来访问

https://localhost:9200

并且登录进来后需要输入用户和密码

如图:

4.1.1默认用户名为:elastic

4.1.2密码重新设置一个

4.1.3首先进入容器

docker exec -it es /bin/bash

cd bin/

输入命令

elasticsearch-reset-password -u elastic

然后输入Y后就可以看到有一个密码

如图

 那么用户名则为:elastic

密码为:fAD-JcoKSQ_s*=H8cO1* 

输入后即可登录进来

如果是生产环境建议开启 如果是测试环境可以关闭

4.2关闭https和验证

进入容器

docker exec -it es /bin/bash

4.3进入config目录

cd config/

4.4修改elasticsearch.yml文件

xpack.security.enabled: true 改为 xpack.security.enabled: false

修改后:

 

4.5重启es容器 访问http://localhost:9200即可

docker restart es

5、创建kibana容器

kibana 是ES数据的可视化面板

docker run -d \
  --name kibana \
    -e ELASTICSEARCH_HOSTS="http://172.16.112.3:9200" \
    --network=es-net \
    -p 5601:5601 \
kibana:7.12.1

 

访问页面

http://localhost:5601/app/home

 

5.1如果es是8版本 那么kibana也应该是8版本

假设版本为8.8.1

那么启动命令就应修改为:

docker run -itd --name kibana --net es-net -p 5601:5601 --restart=always kibana:8.8.1

访问页面

http://localhost:5601/app/home

 

 5.2kibana配置中文

将kibana.yml 文件拷贝出来进行修改

docker cp kibana:/usr/share/kibana/config/kibana.yml ./

vim kibana.yml

默认配置:

 添加两行配置

#设置中文

i18n.locale: "zh-CN"

#关闭csp

csp.strict: false

 

 

 5.3将kibana.yml 文件拷贝到容器里

docker cp kibana.yml  kibana:/usr/share/kibana/config/

5.4重启kibana容器

docker restart kibana

5.5访问

 5.6进入es容器输入上面提示的命令

docker exec -it es /bin/bash

bin\elasticsearch-create-enrollment-token.bat --scope kibana

发现报错

 cd /bin

查看没有elasticsearch-create-enrollment-token.bat文件

但是有elasticsearch-create-enrollment-token文件

 输入命令

elasticsearch-create-enrollment-token --scope kibana

发现得到

 复制一下输入到kibana面板上

 发现又出现这个界面

 5.7进入kibana容器

docker exec -it kibana /bin/bash

输入上面提示的命令

bin\kibana-verification-code.bat

发现报错
bash: binkibana-verification-code.bat: command not found

 cd bin

查看

 同样发现没有binkibana-verification-code.bat文件

但是有binkibana-verification-code文件

输入kibana-verification-code 

得到一个代码

 输入代码454224

可以转到这个界面

 输入

用户名:elastic
密码:TQ0T3qRUwr2F9oEyiMsV

登录成功

 

 

6、安装IK分词器

6.1进入es容器

docker exec -it es /bin/bash

6.2cd到bin

cd /usr/share/elasticsearch/bin

6.3下载安装

./elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip

安装会让输入yes

然后重启es容器

如图:

6.3.1如果是8版本的话 那么命令为

elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.8.1/elasticsearch-analysis-ik-8.8.1.zip

 6.4退出并重启es容器

exit

docker restart es

7、测试

登录kibana

选择 Develop Tools

 把左侧原先的内容删掉

输入

GET _analyze
{
  "analyzer": "ik_smart",
  "text": "用于测试是否可以成功显示哈哈哈"
}

 

点击开始 

即可看到以下内容证明成功

 8、安装Logstash

安装前提是ES关闭SSL

也就是访问es的话是http://localhost:9200

至于ES开启SSL如何安装Logstash 暂不清楚 以后搞下

8.1创建目录

mkdir -p /home/data/logstash/config

cd /home/data/logstash/config

8.2编辑logstash.conf配置文件

vim /home/data/logstash/config/logstash.conf

input {  
  tcp {  
    mode => "server"  
    host => "0.0.0.0"  
    port => 5044  
    codec => json_lines  
  }  
}  
  
output {  
  elasticsearch {  
    hosts => ["http://172.16.112.3:9200"]  
    index => "%{[spring.application.name]}-%{+YYYY.MM.dd}"  
    ssl_certificate_verification => false
  }  
}

8.3编辑logstash.yml配置文件

vim /home/data/logstash/config/logstash.yml

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: ["http://172.16.112.3:9200"]
xpack.monitoring.elasticsearch.ssl.verification_mode: none

8.4创建容器

docker run -d --name logstash --net es-net --restart=always -p 5044:5044 -p 9600:9600 --privileged=true -e ES_JAVA_OPTS="-Duser.timezone=Asia/Shanghai" -v /home/data/logstash/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf -v /home/data/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml docker.elastic.co/logstash/logstash:8.8.1

posted @ 2024-04-01 09:37  宝英姐姐  阅读(351)  评论(0编辑  收藏  举报