该系列博客是Logstash的学习应用,部分示例来自官方文档。
参考:
官方文档
一文快速上手Logstash
一. 简介
官方解释:
Logstash是具有实时流水线功能的开源数据收集引擎。Logstash可以动态统一来自不同来源的数据,并将数据标准化到您选择的目标位置。清除所有数据并使其民主化,以用于各种高级下游分析和可视化用例。
个人理解:
Logstash可以采集来自不同数据源的数据,并对数据进行处理后输出到多种输出源,是Elastic Stack 的重要组成部分,是ELK中的L。ELK就是指ElasticSearch、Logstash、Kibana这三个组件。它们往往配合使用,ES负责数据的存储和索引,Logstash负责集中、转换和存储数据,Kibana负责图形页面展示。
二. 架构原理
2.1 架构图
2.2 处理过程
Inputs输入源
它支持多种将输入源,像常用的beat,kafka,tcp,redis,等等。
更多支持请参看https://www.elastic.co/guide/en/logstash/current/input-plugins.html
过滤器Filters
处理数据如格式转换,数据过滤等,常见的插件如grok, mutate, drop, geoip等
更多支持请参看https://www.elastic.co/guide/en/logstash/5.6/filter-plugins.html
输出Outputs
数据输出地,常见的插件如elastcisearch,file, 等
更多支持请参看https://www.elastic.co/guide/en/logstash/5.6/output-plugins.html
编码Codecs
Codes不是一个单独的流程,而是在输入和输出等插件中用于数据转换的模块,用于对数据进行编码处理,常见的插件如json,multiline等
更多支持请参看https://www.elastic.co/guide/en/logstash/5.6/codec-plugins.html
官方插件文档:运行原理
2.3 配置文件说明
详细介绍请看官方文档
2.4 持久队列使用
要配置持久队列,可以在Logstash 设置文件中指定以下选项:
- queue.type:指定persisted启用持久队列。默认情况下,永久队列是禁用的(默认值:queue.type: memory)
- path.queue:将存储数据文件的目录路径。默认情况下,文件存储在中path.data/queue。
- queue.page_capacity:队列页面的最大大小(以字节为单位)。队列数据由称为“页面”的仅附加文件组成。默认大小为64mb。更改此值不太可能带来性能优势。
- queue.drain:指定true是否要让Logstash在关闭持久队列之前等到持久队列耗尽。排空队列所需的时间取决于队列中累积的事件数。因此,除非队列(即使已满)相对较小并且可以快速耗尽,否则应避免使用此设置。
- queue.max_events:队列中允许的最大事件数。默认值为0(无限制)。
- queue.max_bytes:队列的总容量,以字节数为单位。默认值为1024mb(1gb)。确保磁盘驱动器的容量大于您在此处指定的值。
可以配置如下开启持久队列:
queue.type: persisted
queue.max_bytes: 4gb
指定这些设置后,Logstash将在磁盘上缓冲事件,直到队列大小达到4gb。当队列中充满未确认的事件,并且达到大小限制时,Logstash将不再接受新事件。
详细介绍请看官方文档
三. Hello World
1.下载安装
下载地址:传送门
解压即可(需要先安装JDK8)
2.使用启动
cd到Logstash的根目录,执行启动命令,此处使用标准输入和标准输出作为input和output
(windows用cmd终端进入)
cd logstash-6.0.0
bin/logstash -e 'input { stdin { } } output { stdout {} }'
- -e 表示在启动时直接指定pipeline配置
- -f 表示使用配置文件启动
- –config.test_and_exit 选项解析配置文件并报告任何错误
- –config.reload.automatic 选项允许自动重新加载配置,这样您就不必每次修改配置文件时都要停止并重新启动Logstash
3.测试
启动成功显示如下:
输入123,显示123
4.使用配置文件启动
首先在任意目录下conf文件,我是在logstash/bin目录下创建的
std_std.conf
input {
stdin {}
}
output {
stdout {}
}
之后启动命令
cd logstash-6.0.0
bin/logstash -f sts_std.conf
源码地址
IT-CLOUD-LOGSTASH :LOGSTASH教程源码。博文在本优快云 logstash系列中。
项目推荐
IT-CLOUD :IT服务管理平台,集成基础服务,中间件服务,监控告警服务等。
IT-CLOUD-ACTIVITI6 :Activiti教程源码。博文在本优快云 Activiti系列中。
IT-CLOUD-ELASTICSEARCH :elasticsearch教程源码。博文在本优快云 elasticsearch系列中。
IT-CLOUD-KAFKA :spring整合kafka教程源码。博文在本优快云 kafka系列中。
IT-CLOUD-KAFKA-CLIENT :kafka client教程源码。博文在本优快云 kafka系列中。开源项目,持续更新中,喜欢请 Star~