简述什么是Logstash ?
Logstash是一个开源的数据收集引擎,具备实时管道处理能力。它可以从多个来源采集数据,进行转换,然后将数据发送到指定的存储库。官方介绍Logstash为“具备实时数据传输能力的管道”,能将数据从输入端传输到输出端,并且可以根据需求在中间加入滤网。Logstash可以动态地采集、转换和传输数据,不受数据格式或复杂度的影响。
Logstash的三大核心部分为:inputs(输入)、filters(过滤器)和outputs(输出)。其数据处理过程如下:
- inputs部分:负责产生事件,并从各种来源(如文件、syslog、redis、beats等)接收数据。
- filters部分:负责数据处理与转换,例如通过Grok从非结构化数据中派生出结构、从IP地址破译出地理坐标等。过滤器能够实时解析和转换数据,以构建结构,并转换成通用格式,便于分析和实现商业价值。
- outputs部分:负责将数据输出到目的地,如elasticsearch、file、graphite、statsd等。
此外,Logstash有200多个插件可供选择,能够处理各种类型的数据(如日志、网络请求、关系型数据库、传感器或物联网等)。用户可以通过设置pipeline配置文件,设置符合需求的input、filter、output和codecs插件,实现对指定数据的采集、处理和输出功能。