Docker 安装 ELK

ELK 版本
因为 前面 Elasticsearch 用的 7.9.3 版本,所以 kibana-7.9.3、logstash-7.9.3 都用 7.9.3 版本

安装配置 Elasticsearch

Docker 安装 Elasticsearch

修改Elasticsearch配置,可以到容器内部修改,为了方便环境迁移将配置映射到宿主机,在Elasticsearch启动的情况下,将配置文件复制到宿主机

复制、映射配置文件

如果已有配置文件,可以省略此步骤,直接映射启动

#查出容器ID
docker ps --format "table {{.ID}}	{{.Names}}	{{.RunningFor}}	{{.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

http://172.16.3.61:5601/

安装 Logstash:7.9.3 [用Filebeat代替 Filebeat的安装和使用(Linux)]

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

原文地址:https://www.cnblogs.com/vipsoft/p/14808443.html