因为 前面 Elasticsearch 用的 7.9.3 版本,所以 kibana-7.9.3、logstash-7.9.3 都用 7.9.3 版本
安装配置 Elasticsearch
修改Elasticsearch配置,可以到容器内部修改,为了方便环境迁移将配置映射到宿主机,在Elasticsearch启动的情况下,将配置文件复制到宿主机
复制、映射配置文件
如果已有配置文件,可以省略此步骤,直接映射启动
#查出容器ID docker ps --format "table {{.ID}}\t{{.Names}}\t{{.RunningFor}}\t{{.Status}}"
#将容器中的文件复制到宿主机中
docker cp 766:/usr/share/elasticsearch/config/elasticsearch.yml /opt/elasticsearch/config/elasticsearch.yml
映射启动
#先将 766 对应的Elasticsearch的这台停止 docker stop 766 #删除 766 对应的 Elasticsearch docker rm 766
重新运行容器(增加 elasticsearch.yml的映射
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -v /opt/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /opt/elasticsearch/logs:/usr/share/elasticsearch/logs \ -d elasticsearch:7.9.3
查看启动日志,看是否有报错
docker logs --tail=100 -f 702
运行http://172.16.3.61:9200/验证启动是否OK。
修改配置项
[root@localhost ~]# vi /opt/elasticsearch/config/elasticsearch.yml
输入i进入编译模式
将下面内容复制进去
# 开启跨域 http.cors.enabled: true # 允许所有 http.cors.allow-origin: "*"
按 ESC 退出编辑
按 :wq! 保存退出
重启 Elasticsearch
docker restart 702
安装 kibana:7.9.3
docker pull kibana:7.9.3 docker run --name kibana --restart=always \ -p 5601:5601 \ -e ELASTICSEARCH_HOSTS="http://172.16.3.61:9200/" \ -e "I18N_LOCALE=zh-CN" \ -d kibana:7.9.3
安装 Logstash:7.9.3 [用Filebeat代替 Filebeat的安装和使用(Linux) = EFK]
docker pull logstash:7.9.3
在 /opt/logsstash 中建下列文件【注意权限】
mkdir /opt/logstash/conf.d mkdir /opt/logstash/logs touch /opt/logstash/logstash.yml
编辑config文件
vi /opt/logstash/conf.d/test.conf #内容如下: input { gelf { port => 9200 } } output { stdout{codec =>rubydebug} elasticsearch { hosts => ["172.16.3.61:9200"] index => "logstash-log4j2-%{+YYYY.MM.dd}" # user => "elastic" # password => "elastic" } }
运行logstash
docker run --name logstash \ --restart always --privileged=true \ -v /opt/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml \ -v /opt/logstash/conf.d/:/usr/share/logstash/conf.d/ \ -d logstash:7.9.3
--privileged=true # 解决Docker 挂载主机目录,访问出现 cannot open directory permission denied