ELK学习实验011:Logstash工作原理
Logstash事件处理管道包括三个阶段:输入→过滤器→输出。输入会生成事件,过滤器会对其进行修改,输出会将它们发送到其他地方。输入和输出支持编解码器,使您可以在数据进入或退出管道时对其进行编码或解码,而不必使用单独的过滤器。
1 输入
您可以使用输入将数据获取到Logstash。一些更常用的输入是:
- file:从文件系统上的文件读取,非常类似于UNIX命令
tail -0F
- syslog:在知名端口514上侦听syslog消息并根据RFC3164格式进行解析
- redis:使用redis通道和redis列表从redis服务器读取。Redis经常在集中式Logstash安装中用作“代理”,该安装会将来自远程Logstash“托运人”的Logstash事件排队。
- beats:进程的事件发送的beats。
输入插件
输入插件使Logstash可以读取特定的事件源。
上面只是插件一部分,详细请看:https://www.elastic.co/guide/en/logstash/current/input-plugins.html
2 过滤器
筛选器是Logstash管道中的中间处理设备。如果事件符合特定条件,则可以将过滤器与条件语句结合使用以对事件执行操作。一些有用的过滤器包括:
- grok:解析和构造任意文本。Grok当前是Logstash中将非结构化日志数据解析为结构化和可查询内容的最佳方法。Logstash内置有120种模式,很可能会找到满足您需求的模式!
- mutate:对事件字段执行常规转换。您可以重命名,删除,替换和修改事件中的字段。
- drop:完全删除事件,例如调试事件。
- clone:复制事件,可能会添加或删除字段。
- geoip:添加有关IP地址地理位置的信息(还在Kibana中显示惊人的图表!)
过滤器插件
过滤器插件对事件执行中介处理。通常根据事件的特征有条件地应用过滤器。
上面只是插件一部分,详细请看:https://www.elastic.co/guide/en/logstash/current/filter-plugins.html
3 输出
输出是Logstash管道的最后阶段。一个事件可以通过多个输出,但是一旦完成所有输出处理,该事件就完成了执行。一些常用的输出包括:
- elasticsearch:将事件数据发送到Elasticsearch。如果您打算以一种高效,便捷且易于查询的格式保存数据,那么Elasticsearch是您的最佳选择。期。是的,我们有偏见:)
- file:将事件数据写入磁盘上的文件。
- clone:将事件数据发送到石墨,石墨是一种流行的开源工具,用于存储和绘制指标图形。http://graphite.readthedocs.io/en/latest/
- statsd:将事件数据发送到statsd,该服务“通过UDP侦听统计信息(如计数器和计时器),并将聚合发送到一个或多个可插拔后端服务”。如果您已经在使用statsd,这可能对您有用!
输出插件
输出插件将事件数据发送到特定的目的地。输出是事件管道中的最后阶段。
上面只是插件一部分,详细请看https://www.elastic.co/guide/en/logstash/current/output-plugins.html
4 编码
解码器基本上是流过滤器,可以作为输入或输出的一部分进行操作。编解码器使您可以轻松地将消息的传输与序列化过程分开。流行的编解码器包括json
,msgpack
和plain
(文本)。
- json:以JSON格式编码或解码数据。
- multiline:将多行文本事件(例如java异常和stacktrace消息)合并为一个事件。
编码器插件
编解码器插件可更改事件的数据表示形式。编解码器本质上是流过滤器,可以作为输入或输出的一部分进行操作。
上面只是插件一部分,详细请看https://www.elastic.co/guide/en/logstash/current/codec-plugins.html
5 执行模型
Logstash事件处理管道协调输入、过滤器和输出的执行。
Logstash管道中的每个输入阶段都在自己的线程中运行,输入将事件写入位于内存(默认)或磁盘上的中央队列,每个管道工作线程从这个队列中取出一批事件,通过配置的过滤器运行事件批处理,然后通过任何输出运行过滤的事件,可以配置批处理的大小和管道工作线程的数量(参见调优和分析Logstash性能)。
默认情况下,Logstash使用内存有限队列在管道阶段之间(输入→过滤器和过滤器→输出)来缓冲事件,如果Logstash不安全的终止,则存储在内存中的任何事件都将丢失。为了防止数据丢失,你可以启用Logstash将运行中的事件持久化到磁盘上,有关更多信息,请参见持久队列:https://www.elastic.co/guide/en/logstash/current/persistent-queues.html。
参考文献:https://www.elastic.co/guide/en/logstash/current/pipeline.html#_filters
ELK学习实验011:Logstash工作原理的更多相关文章
- ELK学习实验002:Elasticsearch介绍及单机安装
一 简介 ElasticSearch是一个基于Luncene的搜索服务器.它提供了一个分布式多用户能力全文搜索引擎,基于RESTful web接口,ElsticSearch使用Java开发的,并作为A ...
- ELK学习笔记之Logstash和Filebeat解析对java异常堆栈下多行日志配置支持
0x00 概述 logstash官方最新文档.假设有几十台服务器,每台服务器要监控系统日志syslog.tomcat日志.nginx日志.mysql日志等等,监控OOM.内存低下进程被kill.ngi ...
- ELK学习笔记之Logstash不停机自动重载配置文件
0x00 自动重新加载配置 为了可以自动检测配置文件的变动和自动重新加载配置文件,需要在启动的时候使用以下命令: ./bin/lagstash -f configfile.conf --config. ...
- ELK学习实验006:Nginx的日志分析系统之filebeat配置
一 Filebeat工作原理 Filebeat由两个主要组件组成: prospector和 harvester 1.1 harvester 负责读取单个文件的内容 如果文件在读取时被制除或重命名, F ...
- ELK学习实验014:Nginx日志JSON格式收集
1 Kibana的显示配置 https://demo.elastic.co/app/kibana#/dashboard/welcome_dashboard 环境先处理干净 安装nginx和httpd- ...
- Android学习笔记View的工作原理
自定义View,也可以称为自定义控件,通过自定义View可以使得控件实现各种定制的效果. 实现自定义View,需要掌握View的底层工作原理,比如View的测量过程.布局流程以及绘制流程,除此之外,还 ...
- Struts2学习一----------Struts2的工作原理及HelloWorld简单实现
© 版权声明:本文为博主原创文章,转载请注明出处 Struts2工作原理 一个请求在Struts2框架中的处理步骤: 1.客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2.这个请求 ...
- Ajax学习--理解 Ajax 及其工作原理
Ajax 是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写. 下面是 Ajax 应用程序所用到的基本技术:• HTML 用于建立 Web 表单并确定应用 ...
- ELK学习实验012:Logstash的安装和使用
一 logstash安装 1.1下载包 [root@node1 ~]# cd /usr/local/src/ [root@node1 src]# wget https://artifacts.elas ...
随机推荐
- keep-alive vue组件缓存避免多次加载相应的组件
keep-alive vue组件缓存避免多次加载相应的组件
- Python基础:14生成器
yield表达式只用于定义生成器函数,且只能存在于函数的定义体中.只要一个函数内部使用了yield表达式,则该函数就成为生成器函数. 当调用生成器函数时,它返回一个称为生成器的迭代器.然后该生成器控制 ...
- @atcoder - AGC040C@ Neither AB nor BA
目录 @description@ @solution@ @accepted code@ @detail@ @description@ 给定偶数 N,求由 'A', 'B', 'C' 三种字符组成的字符 ...
- js+canvas五子棋人机大战ai算法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- SDUT-2132_数据结构实验之栈与队列二:一般算术表达式转换成后缀式
数据结构实验之栈与队列二:一般算术表达式转换成后缀式 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 对于一个基于二元运 ...
- 【阿里云新品发布·周刊】第13期:链路追踪 Tracing Analysis 商业化首发
点击订阅新品发布会! 新产品.新版本.新技术.新功能.价格调整,评论在下方,下期更新!关注更多内容,了解更多 最新发布 链路追踪 Tracing Analysis 商业化首发 2019年6月12日15 ...
- lua在C/C++中使用table生成对应键及值
int nTop = lua_gettop(L); // 栈内初始数,假设当前为0 lua_newtable(L); // push table lua_pushstring(L,"Line ...
- Spring Boot笔记之邮件(spring-boot-starter-mail)
Spring Boot环境中发送邮件 pom.xml引入`spring-boot-starter-mail` application.yml配置 163邮箱 QQ邮箱 Gmail邮箱 发送邮件 ser ...
- Redux 认识之后进阶
两个东西 action 状态 路由 以及嵌套路由 完整结构 进阶+源代码 源代码在我的 gitHub 存储库里面 https://github.com/Haisenan/Redux2.0
- P1094 百钱白鸡
题目描述 公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱. 输入格式 无. 输出格式 输出所有 ...