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}}\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
http://172.16.3.61:5601/
安装 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