logstash-工作原理

logstash事件处理管道有三个阶段:输入、过滤、输出

常用输入:
file、syslog、redis、beats

过滤器:

grok:解析并构造任意文本。Grok是目前Logstash中将非结构化日志数据解析为结构化和可查询内容的最佳方式。
有了内置于Logstash的120种模式,您很可能会找到满足您需求的模式!
mutate:对事件字段执行常规转换。您可以重命名,删除,替换和修改事件中的字段。
drop:完全删除事件,例如调试事件。
clone:制作事件的副本,可能添加或删除字段。
geoip:添加有关IP地址的地理位置的信息(也在Kibana中显示惊人的图表!)

输出:

elasticsearch:将事件数据发送到Elasticsearch。如果您计划以高效,方便且易于查询的格式保存数据...... Elasticsearch是您的最佳选择。期。是的,我们有偏见:)
file:将事件数据写入磁盘上的文件。
graphite:将事件数据发送到graphite,这是一种用于存储和绘制指标的流行开源工具。http://graphite.readthedocs.io/en/latest/
statsd:将事件数据发送到statsd,这是一种“侦听统计信息,如计数器和定时器,通过UDP发送并将聚合发送到一个或多个可插入后端服务”的服务。如果您已经在使用statsd,这可能对您有用!

编解码器:
编解码器基本上是流过滤器,可以作为输入或输出的一部分。使用编解码器可以轻松地将消息传输与序列化过程分开。流行的编解码器包括json, msgpack和plain (文本)。

json:以JSON格式编码或解码数据。
multiline:将多行文本事件(如java异常和堆栈跟踪消息)合并到一个事件中。

Logstash管道中的每个输入阶段都在其自己的线程中运行。将事件写入内存(默认)或磁盘上的中央队列。每个管道工作线程从该队列中获取一批事件,通过配置的过滤器运行一批事件,然后通过任何输出运行过滤的事件。批处理的大小和管道工作线程的数量是可配置的(请参阅调整和性能分析Logstash性能)。

数据弹性:

持久性队列通过将事件存储在磁盘上的内部队列中来防止数据丢失。
死信队列为Logstash无法处理的事件提供磁盘存储。您可以使用dead_letter_queue输入插件轻松地重新处理死信队列中的事件。

你可能感兴趣的:(JAVA)