【拆分版】 Docker-compose构建Logstash多实例,基于7.1.0
【拆分版】Docker-compose构建Logstash多实例
写在最前
说起Logstash,这个组件并没有什么集群的概念,与其说是集群,不如说是各自去收集日志分析过滤存储到Elasticsearch中。这里做个多实例的Logstash,其实本质上只是为Logstash指定好占用的端口,输入输出的配置的挂载,如是而已。

本文配置为红框中的部分:Logstash多节点收集的数据,统统输出数据到es-tribe,让这个协调节点自己去负载均衡写入数据。
配置详见git仓库 https://github.com/hellxz/docker-logstash-multiple.git
如有疑问或本文写得有出入的地方,期望评论指定。
目录结构
├── docker-ls-multiple-down.sh
├── docker-ls-multiple-up.sh
├── logstash-01
│ ├── config
│ │ ├── logstash.conf
│ │ └── logstash.yml
│ ├── docker-compose.yml
│ └── .env
├── logstash-02
│ ├── config
│ │ ├── logstash.conf
│ │ └── logstash.yml
│ ├── docker-compose.yml
│ └── .env
└── logstash-03
├── config
│ ├── logstash.conf
│ └── logstash.yml
├── docker-compose.yml
└── .env
文件说明
以logstash-01举例说明
.env为docker-compose.yml提供了Logstash配置文件目录的位置,如果不放置到其他位置,无需更改
# .env file for docker-compose default. please be careful.
# logstash config dir mount set. change inside dir config file to change logstash cluster settings.
# default use relation path. don't change if you don't know what means.
LOGSTASH_CONFIG_DIR=./config
docker-compose.yml 为docker-compose的配置文件,这里只读取了.env的配置文件的路径,并把路径下的logstash.conf挂载到容器中logstash目录下pipeline/logstash.conf,挂载logstash.yml到logstash目录下config/logstash.yml
version: "3"
services:
logstash-1:
image: logstash:7.1.0
container_name: logstash-1
volumes:
- ${LOGSTASH_CONFIG_DIR}/logstash.conf:/usr/share/logstash/pipeline/logstash.conf:rw
- ${LOGSTASH_CONFIG_DIR}/logstash.yml:/usr/share/logstash/config/logstash.yml:rw
network_mode: "host"
logstash.conf为模板文件,输入输出以及配置都可以在这里修改
input { #输入
kafka { #使用kafka方式输入
bootstrap_servers => "kafka1:9092,kafka2:9093,kafka3:9094" #kafka集群节点列表
topics => ["all_logs"] #订阅名为all_logs的topic
group_id => "logstash" #设置组为logstash
codec => json #转换为json
}
}
filter { #过滤分词等都在这里配置,暂时未配置
}
output { #输出
elasticsearch { #输出到es
hosts => ["10.2.114.110:9204"] #es的路径
index => "all-logs-%{+YYYY.MM.dd}" #输出到es的索引名称,这里是每天一个索引
#user => "elastic"
#password => "changeme"
}
stdout {
codec => rubydebug
}
}
此处设置并不是本文中的重点,有兴趣和需要请参考其它文章的相关配置
logstash.yml 为logstash的配置文件,只写了些与集群相关的,还有更多请参考其它文章.
# set now host ip to http.host
http.host: 10.2.114.110
# set the es-tribe-node host. let logstash monitor the es.
xpack.monitoring.elasticsearch.hosts:
- http://10.2.114.110:9204
# enable or disable the logstash monitoring the es.
xpack.monitoring.enabled: true
这里没有指定Logstash启动时的端口号,Logstash默认端口为9600,多实例在同主机时,会自动分配9600后的端口
另外两个脚本文件,仅在使用同一台主机时使用,便捷启动/关闭多节点Logstash
使用说明
- 需要确保多台主机均能正常ping通
- 确保Zookeeper集群与Kafka集群已经启动,并且Logstash订阅的borkers的列表能对得起来
- 确保Elasticsearch集群正常启动
- 宿主机
/etc/hosts添加kafka1、kafka2、kafka3映射到对应的kafka所在的宿主机ip - 修改每个Logstash目录下的
config/logstash.conf中的输出es部分的ip到es-tribe对应的宿主机ip - 修改每个Logstash目录下的
config/logstash.yml中的http.host为当前宿主机ip, 修改xpack.monitoring.elasticsearch.hosts为当前es-tribe宿主机ip与port - 进入每个Logstash目录执行
docker-compose up -d以启动集群,执行docker-compose down以关闭集群
本文系原创文章,谢绝转载
【拆分版】 Docker-compose构建Logstash多实例,基于7.1.0的更多相关文章
- 【拆分版】Docker-compose构建Kibana单实例,基于7.1.0
写在前边 今凌晨的时候已经把这整个Docker-compose构建的ELK集群跑起来了,有点没熬住,所以早上起来补文档,今天就上到公司测试服务器上测试了,好开森. 本文内容就是红框的部分,只是启动个K ...
- Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- 010.Docker Compose构建WordPress实战
一 前期规划 类型 版本 备注 WordPress镜像 wordpress:latest MySQL数据库 5.7 Docker已安装,参考<002.Docker版本及安装>. D ...
- 基于Docker Compose构建的MySQL MHA集群
Docker MySQL MHA 基于Docker 1.13.1之上构建的MySQL MHA Docker Compose Project 可快速启动GTID模式下的MasterHA集群, 主用于My ...
- 使用docker compose 构建多个镜像
定义docker compose version: ' services: composedb: image: mysql/mysql-server container_name: composedb ...
- Docker Compose部署项目到容器-基于Tomcat和mysql的商城项目(附源码和sql下载)
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- 【拆分版】Docker-compose构建Zookeeper集群管理Kafka集群
写在前边 在搭建Logstash多节点之前,想到就算先搭好Logstash启动会因为日志无法连接到Kafka Brokers而无限重试,所以这里先构建下Zookeeper集群管理的Kafka集群. 众 ...
- 【拆分版】Docker-compose构建Elasticsearch 7.1.0集群
写在前边 搞了两三天了,一直有个问题困扰着我,ES集群中配置怎么能正确映射到主机上,这边经常报ClusterFormationFailureHelper master not discovered o ...
- Android Studio 蓝牙开发实例——基于Android 6.0
因项目需要做一个Android 的蓝牙app来通过手机蓝牙传输数据以及控制飞行器,在此,我对这段时间里写的蓝牙app的代码进行知识梳理和出现错误的总结. 该应用的Compile Sdk Version ...
随机推荐
- 关于HashMap
总是觉得对HashMap很熟悉,但最近连续被问到几个关于它的问题,才发现它其实并不简单.这里对关于它的一些问题做个总结,也希望能够大家一个参考. 都知道它是基于hash值,可以进行常量时间消化的存储结 ...
- Android Error:(1, 0) Gradle version 2.2 is required. Current version is 3.4.1.
我们在使用Android Studio的时候新建项目没什么问题的,但是当我们下载一份Github上的项目导入进去的时候却没法正常使用,其原因主要是gradle配置问题.而由于gradle这个玩意儿版本 ...
- 设置https验证方式
if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
- Exercise : Self-Taught Learning
First, you will train your sparse autoencoder on an "unlabeled" training dataset of handwr ...
- Java:异常体系
异常的类别:可处理异常,运行时异常,非运行时异常 子类重写父类方法,父类方法有异常抛出, 子类重写父类的方法? 不能比父类抛出更大的异常 前言:java 中的异常处理机制你真的理解了吗?掌握了吗?ca ...
- vue 实例的生命周期
Vue把整个生命周期划分为创建.挂载.更新.销毁等阶段,每个阶段都会给一些"钩子"让我们来做一些我们想实现的动作. 分为以下几个阶段 1.beforeCreate 此阶段为 ...
- Ansible学习记录六:Tower安装
0.特别说明 1. 本文档没有特殊说明,均已root用户安装 2. 本文档中ftp传输文件的工具采用filezilla. 3. 本文档中的执行命令必须严格按照顺序而来. 4. 本文档中所用浏览器为Go ...
- Android 多种方式正确的载入图像,有效避免oom
图像载入的方式: Android开发中消耗内存较多一般都是在图像上面.本文就主要介绍如何正确的展现图像降低对内存的开销,有效的避免oom现象. 首先我们知道我的获取图像的来源一般有三种源 ...
- 安卓使用WebView下载文件,安卓实现软件升级功能
由于调用系统默认浏览器下载更新,造成用户体验非常不好,所以决定在webview中直接下载系统更新.然后直接安装. 由于要下载,所以必须用webview,联网权限这里不说了,直接写在manifafest ...
- 洛谷——P1056 排座椅
https://www.luogu.org/problem/show?pid=1056#sub 题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主 ...