【拆分版】 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 ...
随机推荐
- 编译QCAD
编译QCAD eryar@163.com 目前开源的二维CAD有QCAD.LibreCAD等,且LibreCAD可以说是QCAD的分支版本.对比这款开源软件,发现QCAD的功能与操作习惯和AutoCA ...
- 怎样通过MSG_WAITALL设置阻塞时间,IO模式精细讲解: MSG_DONTWAIT 、 MSG_WAITALL
首先给出MSDN上一段设置阻塞超时的代码:(网址为http://social.msdn.microsoft.com/Forums/zh-SG/visualcpluszhchs/thread/3d9da ...
- CDQZ 0003:jubeeeeeat
0003:jubeeeeeat 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 256000kB 描述 众所周知,LZF很喜欢打一个叫Jubeat的游戏.这是个音乐游戏,游戏界面是 ...
- javafx ComboBox Event and change cell color
public class EffectTest extends Application { public static void main(String[] args) { launch(args); ...
- java(内部类)
内部类: 一个类定义在另外一个类的内部就称作为内部类. 内部类的类别: 1.成员内部类: 2.局部内部类: 1.成员内部类: 成员内部类的访问方式: 方式一:在成员内部类的外侧提供一个方法创建内部类的 ...
- UVA - 10167 - Birthday Cake (简单枚举)
思路:简单枚举 AC代码: #include <cstdio> #include <cstring> #include <iostream> #include &l ...
- Exploring Micro-frameworks: Spring Boot--转载
原文地址:http://www.infoq.com/articles/microframeworks1-spring-boot Spring Boot is a brand new framework ...
- 带你走进EJB--EJB和Spring对比(转)
http://blog.csdn.net/jnqqls/article/details/17723417 通过对EJB系列的总结和学习我们已经对EJB有了基本的了解,但是为了更进一步的去深入学习EJB ...
- 计科1111-1114班第一次实验作业(NPC问题——回溯算法、聚类分析)
实验课安排 地点: 科技楼423 时间: 计科3-4班---15周周一上午.周二下午 计科1-2班---15周周一下午.周二晚上(晚上时间从18:30-21:10) 请各班学委在实验课前飞信通知大家 ...
- PHP服务器环境打开配置文件
MAC 1. cd /usr/local/etc/nginx/servers vim www.xxx.com 2. 在/usr/local/etc/nginx/servers目录下,不同的 .con ...