Docker搭建ELK7.17
概述
ELK是一个流行的日志管理和分析解决方案,由Elasticsearch、Logstash和Kibana三个开源项目组成。本文将介绍如何使用Docker快速搭建ELK7.17,并使用Kibana可视化展示日志数据。
Docker安装与配置
首先,我们需要安装Docker。Docker是一个用于开发、交付和运行应用程序的开放平台。在终端中输入以下命令安装Docker:
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
安装完成后,我们需要配置Docker。在终端中输入以下命令启动Docker服务,并设置Docker服务随系统启动时自动启动:
$ sudo systemctl start docker
$ sudo systemctl enable docker
Elasticsearch容器
首先,我们需要创建一个Elasticsearch容器,该容器将用于存储和索引日志数据。在终端中输入以下命令创建一个Elasticsearch容器:
$ docker run -d --name elasticsearch --restart=always -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.17.0
上述命令中,我们使用docker.elastic.co/elasticsearch/elasticsearch:7.17.0
镜像创建了一个Elasticsearch容器,并将容器的9200和9300端口映射到主机的9200和9300端口。discovery.type=single-node
参数表示该容器是一个单节点集群。
Logstash容器
接下来,我们需要创建一个Logstash容器,该容器将负责从各种日志源收集和处理日志数据。在终端中输入以下命令创建一个Logstash容器:
$ docker run -d --name logstash --restart=always -p 5044:5044 --link elasticsearch:elasticsearch docker.elastic.co/logstash/logstash:7.17.0
上述命令中,我们使用docker.elastic.co/logstash/logstash:7.17.0
镜像创建了一个Logstash容器,并将容器的5044端口映射到主机的5044端口。--link elasticsearch:elasticsearch
参数表示该容器与Elasticsearch容器建立了链接。
Kibana容器
最后,我们需要创建一个Kibana容器,该容器将提供一个Web界面来可视化展示日志数据。在终端中输入以下命令创建一个Kibana容器:
$ docker run -d --name kibana --restart=always -p 5601:5601 --link elasticsearch:elasticsearch docker.elastic.co/kibana/kibana:7.17.0
上述命令中,我们使用docker.elastic.co/kibana/kibana:7.17.0
镜像创建了一个Kibana容器,并将容器的5601端口映射到主机的5601端口。--link elasticsearch:elasticsearch
参数表示该容器与Elasticsearch容器建立了链接。
配置Logstash
在Logstash容器中,我们需要配置日志收集和处理的管道。首先,创建一个名为logstash.conf
的文件,并将以下内容保存到该文件中:
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => "elasticsearch:9200"
index => "logs-%{+YYYY.MM.dd}"
}
}
上述配置文件中,我们使用Beats作为输入插件,监听5044端口来接收日志数据。然后,将日志数据输出到Elasticsearch,使用logs-%{+YYYY.MM.dd}
作为索引名称。
将logstash.conf
文件放置到本地机器上的一个目录中,例如/path/to/logstash/config
。
然后,在终端中输入以下命令启动Logstash容器,并将logstash.conf
配置文件挂载到容器中:
$ docker run -d --name logstash --restart=always -p 5044:5044 -v /path/to/logstash/config:/usr/share/logstash/config --link elasticsearch:elasticsearch docker.elastic.co/logstash/logstash:7.17.0