Logstash是一个具有实时pipeline功能的开源数据收集引擎。Logstash可以动态的统一来自不同数据源的数据,并将数据规范化到你选择的目的地。虽然Logstash最初推动了日志收集方面的创新,但它的功能现在更丰富了。任何类型的事件都可以通过丰富的input,filter,output插件进行转换,简化抽取过程。
Logstash的强大功能
插件式的pipeline架构
混合和编排不同的input、filter以及output构建pipeline。
社区可扩展和开发人员友好的插件式生态系统
已有超过200个可用插件,且可以自己扩展。
LogStash的数据源
日志和指标
- 处理各种类型的日志数据
- 轻松获取大量web日志(如Apache)和应用程序日志(如Java的log4j)。
- 捕获许多其他格式的日志,如syslog、网络日志和防火墙日志。
- 与Filebeat互补的安全日志转发功能
- 通过TCP和UDP从Ganglia、collectd、NetFlow、JMX和许多其他基础设施和应用程序平台收集指标。
Web
- 将HTTP请求转换为事件
- 通过按需轮询HTTP端点来创建事件
数据存储和流
- 通过JDBC接口抽取来自关系型数据库以及NoSQL数据库的数据。
- 统一来自Apache Kafka、RabbitMQ和Amazon SQS等消息传递队列的不同数据流。
传感器及物联网
执行模型
Logstash事件处理管道协调input、filter和output的执行。
Logstash pipeline中的每个input阶段都在自己的线程中运行。input将事件写入内存(默认)或磁盘上的中央队列。每个pipeline的工作线程从这个队列中取出一批事件,通过配置的filter运行这批事件,然后通过output输出经过过滤、转换的事件。
默认情况下,Logstash在pipeline的stage之间使用内存中的有界队列缓存事件。如果Logstash异常终止,存储在内存中的事件会丢失。为了防止数据丢失,可以配置将运行的事件持久化到磁盘。
网友评论