文章转载自:https://elasticstack.blog.csdn.net/article/details/116516923

创建一个目录 docker-logstash。在该目录下,有如下的文件:

$ pwd
/data/docker-logstash
$ ls -al
total 16
drwxr-xr-x 5 liuxg staff 160 May 7 22:13 .
drwxr-xr-x 132 liuxg staff 4224 May 7 21:58 ..
-rw-r--r-- 1 liuxg staff 29 May 7 21:59 .env
-rw-r--r-- 1 liuxg staff 1039 May 7 22:37 docker-compose.yml
drwxr-xr-x 3 liuxg staff 96 May 7 22:18 logstash_pipeline
$ tree -L 3
.
├── docker-compose.yml
└── logstash_pipeline
└── ports.conf

在该目录中,它有一个 .env 文件。它里面定义了一个在 docker-compose.yml 需要用到的环境变量:

$ cat .env
ELASTIC_STACK_VERSION=7.12.1

通过使用 ELASTIC_STACK_VERSION 来定义我们想要的 Elastic Stack 的版本。

创建一个叫做 docker-compose.yml 的文件:

version: '3.7'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_STACK_VERSION}
container_name: es01
environment:
- discovery.type=single-node
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic kibana:
image: docker.elastic.co/kibana/kibana:${ELASTIC_STACK_VERSION}
container_name: kibana
ports: ['5601:5601']
networks: ['elastic']
environment:
- SERVER_NAME=kibana.localhost
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
- I18N_LOCALE=zh-CN
depends_on: ['elasticsearch'] logstash:
image: logstash:${ELASTIC_STACK_VERSION}
ports:
- 5000:5000
volumes:
- type: bind
source: ./logstash_pipeline/
target: /usr/share/logstash/pipeline
read_only: true
networks:
- elastic volumes:
esdata01:
driver: local networks:
elastic:
driver: bridge

针对 Logstash 的安装,我们定义了一个 port 5000,这样我们在 Logstash 的配置文件中可以使用 TCP 的地址 5000 把数据传入到 Logstash 的 pipeline 中,并进行处理。同时,我们使用 volumes 的定义,把本地目录 logstash_pipeline 中的文件 bind 到 Logstash 的 /usr/share/logstash/pipeline 目录中,从而使得在 logstash_pipeline 中所定义的 pipeline 能够在 Logstash 启动后自动运行起来。

接下来看看在 logstash_pipeline 目录中定义的 ports.conf 文件:

# ports.conf
input {
tcp {
port => 5000
}
} output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "hello-logstash-docker"
}
}

这个配置文件非常简单。它接受来自 port 5000 的数据,并直接发到 Elasticsearch 中去。

Logstash:在 Docker 中部署 Logstash的更多相关文章

  1. ubuntu18 docker中部署ELK

    ELK是ElasticSearch.Logstash.Kibana的简称,一般用于日志系统,从日志收集,日志转储,日志展示等入手,用以提供简洁高效的日志处理机制. 鉴于没有额外的机器,这里就用dock ...

  2. 在docker中部署centos7镜像

    本篇文章参考自: https://www.cnblogs.com/linjj/p/5606911.html https://blog.csdn.net/u012767761/article/detai ...

  3. docker 中部署一个springBoot项目

    docker 中部署一个springBoot项目 (1)介绍 springBoot项目 1.项目结构 2.pom.xml <?xml version="1.0" encodi ...

  4. 如果在docker中部署tomcat,并且部署java应用程序

    1.先说如何在docker中部署tomcat 第一步:root用户登录在系统根目录下创建文件夹tomcat7,命令如:mkdir tomcat7,并且切换到该目录下:cd tomcat7: 第二步:创 ...

  5. ​在Docker中部署GreatSQL并构建MGR集群

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 为了方面社区用户体验GreatSQL,我们同时还提供Docker镜像,本文详细介绍如何在Docker中部署GreatSQL ...

  6. Docker中部署Kubernetes

    Kubernetes为Google开源的容器管理框架,提供了Docker容器的夸主机.集群管理.容器部署.高可用.弹性伸缩等一系列功能:Kubernetes的设计目标包括使容器集群任意时刻都处于用户期 ...

  7. docker中部署mongodb副本集

    1.基本信息如下 服务器地址 192.168.73.129 副本集名称 rs 容器节点及端口映射         m0 37017:27017         m1 47017:27017       ...

  8. 记一次Docker中部署Asp.Net Core 3.0的踩坑过程

    最近公司打算重构目前直销报单系统到微信小程序中,目前的系统只能在PC上面使用,这两年也搞过App端,但是由于人员流动和公司架构调整最后都不了了之,只留下一堆写了一半的接口.以前的接口依然是使用Asp. ...

  9. docker中部署django项目~~Dockfile方式和compose方式

    1.  背景:   本机win10上,后端django框架代码与前端vue框架代码联调通过. 2.  目的:   在centos7系统服务器上使用docker容器部署该项目. 3.  方案一:仅使用基 ...

随机推荐

  1. 07 MySQL_SQL语言分类

    SQL语言分类 DDL Data Definition Language 数据定义语言 包括: create , alter ,drop , truncate; 不支持事务 DML Data Mani ...

  2. Python网页解析库:用requests-html爬取网页

    Python网页解析库:用requests-html爬取网页 1. 开始 Python 中可以进行网页解析的库有很多,常见的有 BeautifulSoup 和 lxml 等.在网上玩爬虫的文章通常都是 ...

  3. 非root用户linux下安装FFTW

    一.环境准备 确保g++可用本次编译是基于 GNU C++ 环境的,因此务必确定g++编译器可用,使用如下命令验证:命令:g++ --version出现类似如下输出则表明编译器可用: 二.下载FFTW ...

  4. .net6与英雄联盟邂逅之——根据官方LCU API制作游戏助手

    看了网上很多自己开发的英雄联盟的小助手工具,当时苦于没有api,自己也想做一个.后来发现了其实拳头本身就提供了LCU API在客户端运行的时候会暴露出来. 现在我们就来了解下工具的实现. 查询数据:h ...

  5. Vue 监视数据总结 && 表单控件使用总结

    1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8" /> 5 & ...

  6. selenium结合jmeter进行测试

    背景 现在市面上有众多成熟的性能测试工具,JMeter就是其中之一.可以通过JMeter快速将已有的Selenium代码以性能测试的方式组织起来,并使用JMeter丰富的报表功能展示测试结果. 相关链 ...

  7. Docker 14 网络

    参考源 https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0 https://www.bilibili.com/vid ...

  8. 【ARK UI】HarmonyOS ETS 资源管理基本使用

    ​代码实现 api讲解 getStringArray getStringArray(resId: number, callback: AsyncCallback<Array>): void ...

  9. .Net Core使用Coravel实现任务调度

    前言 前段时间需要在一个新项目里添加两个后台任务,去定时请求两个供应商的API来同步数据:由于项目本身只是一个很小的服务,不太希望引入太重的框架,同时也没持久化要求:于是我开始寻找在Quartz.Ne ...

  10. MySQL查询性能优化七种武器之索引下推

    前面已经讲了MySQL的其他查询性能优化方式,没看过可以去了解一下: MySQL查询性能优化七种武器之索引潜水 MySQL查询性能优化七种武器之链路追踪 今天要讲的是MySQL的另一种查询性能优化方式 ...