使用Docker搭建Logstash

使用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
### 安装和配置同一 Docker 网络中的 Logstash 和 Elasticsearch #### 创建自定义 Docker 网络 为了确保两个服务能够互相通信,创建一个新的 Docker 自定义桥接网络是必要的。这可以通过 `docker network create` 命令来实现。 ```bash docker network create elk-network ``` #### 启动 Elasticsearch 容器并加入到指定网络 启动 Elasticsearch 需要指明版本号以及挂载相应的配置文件路径,并将其连接至之前建立好的网络环境之中[^2]。 ```bash docker run -d \ --name elasticsearch \ --network=elk-network \ -p 9200:9200 \ -e "discovery.type=single-node" \ docker.elastic.co/elasticsearch/elasticsearch:7.10.1 ``` #### 设置 Logstash 并使其与 Elasticsearch 关联起来 同样地,在运行 Logstash 的时候也需要通过命令参数告知它所处的虚拟网卡名称;另外还需调整输入插件部分指向 ES 实例的位置信息以便于两者间的数据交互正常运作[^4]。 ```bash docker run -d \ --name logstash \ --network=elk-network \ -v /opt/elasticsearch/logstash/config:/usr/share/logstash/config \ -v /opt/elasticsearch/logstash/pipeline:/usr/share/logstash/pipeline \ docker.elastic.co/logstash/logstash:6.5.4 ``` 对于上述操作而言,已经完成了基本的服务搭建工作流程。但是为了让整个架构更加完善可靠,则还需要进一步优化各个组件之间的协作关系——即修改对应的配置文档使得它们之间能更好地协同合作[^3]。 在 `/opt/elasticsearch/logstash/pipeline/logstash.conf` 文件内设置 input、filter 及 output 插件的相关属性: ```ruby input { jdbc { jdbc_connection_string => "jdbc:mysql://mysql_host:3306/my_database" ... } } output { elasticsearch { hosts => ["http://elasticsearch:9200"] } } ``` 这里值得注意的是,在输出端口配置中应当采用服务名而非 IP 地址的方式去访问目标主机,因为当所有容器都被放置在一个由 Docker 所管理的内部网络里时,默认情况下会自动解析这些名字为实际可用的地址[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值