使用Docker搭建Logstash
Logstash是一个开源的服务器端数据处理管道,它能够接收来自多个来源的数据,转换数据,然后将数据发送到您指定的目的地。使用Docker搭建Logstash是一个简单、高效的方式。本教程将分别介绍如何通过Docker CLI和Docker Compose来搭建Logstash。
使用Docker CLI搭建Logstash
1. 拉取Logstash镜像
首先,需要从Docker Hub上拉取最新版本的Logstash官方镜像。
docker pull docker.elastic.co/logstash/logstash:7.12.1
2. 启动Logstash容器
接下来,使用以下命令启动一个Logstash容器。此命令中包含了多个参数,下面会解释每个参数的作用。
docker run -d --name logstash_instance \-p 9600:9600 -p 5044:5044 \-v /path/to/your/logstash/config/dir:/usr/share/logstash/config \-v /path/to/your/logstash/pipeline:/usr/share/logstash/pipeline \docker.elastic.co/logstash/logstash:7.12.1
-d
: 后台运行容器。--name
: 指定容器的名称,这里是logstash_instance
。-p 9600:9600
: 将容器的9600端口映射到宿主机的9600端口,用于访问Logstash的监控API。-p 5044:5044
: 将容器的5044端口映射到宿主机的5044端口,这是Logstash常用的接收数据的端口。-v /path/to/your/logstash/config/dir:/usr/share/logstash/config
: 将宿主机上的Logstash配置目录挂载到容器内的配置目录。-v /path/to/your/logstash/pipeline:/usr/share/logstash/pipeline
: 将宿主机上的Logstash管道配置目录挂载到容器内的管道配置目录。
请替换/path/to/your/logstash/config/dir
和/path/to/your/logstash/pipeline
为实际路径。
使用Docker Compose搭建Logstash
1. 创建docker-compose.yml
文件
在一个合适的目录下,创建一个名为docker-compose.yml
的文件,并填入以下内容:
version: '3.7'
services:logstash:image: docker.elastic.co/logstash/logstash:7.12.1container_name: logstash_instanceports:- "9600:9600"- "5044:5044"volumes:- /path/to/your/logstash/config/dir:/usr/share/logstash/config- /path/to/your/logstash/pipeline:/usr/share/logstash/pipeline
此配置文件定义了一个服务logstash
,并设置了与CLI方法相同的参数。
2. 启动服务
在docker-compose.yml
文件所在的目录下,运行以下命令来启动服务:
docker-compose up -d
up
: 创建并启动容器。-d
: 后台运行。
参数说明
ports
: 端口映射是用来允许外部访问容器内服务的方式。9600端口用于监控API访问,而5044是Logstash的一个常用端口,用于接收数据。volumes
: 卷挂载用于持久化和共享数据。这里,我们挂载了配置文件和管道定义,使得对这些文件的更改可以直接反映在容器中运行的Logstash实例上。