Logstash简介
官方文档
Logstash是一个接收,处理,转发日志的工具。包含input、filter、output三大组件。分别实现收集->过滤->输出三个功能。
每个组件下面都包含丰富的插件,下图列举一些常见的。

intput
主要负责从数据源接收数据。常见的如:
- file:从文件系统中读取一个文件,类似UNIX命令"tail -0a"。
- syslog:监听514端口,按照RFC3164标准解析日志数据。
- redis:从redis服务器读取数据,支持channel(发布订阅)和list模式。redis一般在Logstash消费集群中作为"broker"角色,保存events队列共Logstash消费。
filter
主要承担对接收的数据解析、过滤。常用的有:
- grok:通过正则匹配,非常灵活,官方自带常用的配置
- ruby:随心所欲的ruby,直接写代码。
output
作为输出端,常用的有:
- elasticsearch:输出到搜索引擎。
- file:将数据保存到文件中。
codes
基于数据流的过滤器,它可以作为input,output的一部分配置。可以帮助你轻松的分割发送过来已经被序列化的数据。
- json:使用json格式对数据进行编码/解码。
- multiline:将汇多个事件中数据汇总为一个单一的行。比如java异常信息和堆栈信息。
插件安装
./bin/logstash-plugin install logstash-output-elasticsearch