Logstash一个完全开源的工具,可以进行数据收集、分析,并将其存储供以后使用。是ELK技术体系中的非常重要的一部分。让我们先来看看简单的功能介绍
?
0.处理任何数据,从任何来源
这是一直是Logstash的目标.
1.集中的所有类型的数据处理
Logstash是一个数据管道,可以让你从不同的系统来源收集日志或者其他的的事件数据,提供了多达165种不同的插件,并可以将数据输送到统一的中央分析系统中。
通过使用丰富的插件服务,可以完成的常见例子:
从文件,Syslog端口,队列服务(MQ,Redis,KafKa)等收集数据,将数据输出到文件,控制台,队列服务(MQ,Redis,KafKa),存储服务(HDFS,ElasticSearch)等.....
?
2.数据格式结构化
关键业务的数据是分散的,即在不同的系统中,业务都有它自己的数据格式。通过logstash 你可以最数据进行解析和转换,然后统一继续数据存储和分析。
?
比如可以采集Nginx访问日志和业务服务Log4j打印出来的自定义数据,然后继续转化,按类型存储到一个数据源中,然后根据情况进行分析。
3.迅速扩展到自定义日志格式
在大多数应用中我们都有编写的自定义的日志。Logstash提供用于简单的方式用于快速解析处理这些数据。
提供了非常多的数据解析 转化功能,后续我们会详细介绍。如替换、分隔、复制、格式转换等等。
如下图所示,可以对rates进行分隔,针对date进行格式转化等,使用起来非常方便。
?
?4.轻松添加自定义数据源插件
可扩展API的快速发展,使得贡献者可以快速发布新的插件,应用者也可以轻松使用。
目前插件资源非常的多,后续会介绍常用的一些插件资源。
?
?
V1.5.0的安装
安装方式非常简单
1.下载logstash wget http://download.elastic.co/logstash/logstash/logstash-1.5.0.zip 2.解压并修改配置文件 input { #输入配置 file { #表示从文件读取数据 type => "cms" #指定数据类型 path => ["/usr/local/logs/179/tg_sign_up_log/cms.log"] } } output { #输出配置 redis { #表示将数据输出到redis中,此处为Redis输出示例,可以忽略。 host => "192.168.100.99" port => "6479" data_type => "list" key => "logstash:tg:sign" } stdout { codec => rubydebug } #表示在控制台打印数据 } 3.启动logstash Run bin/logstash agent -f logstash.conf 启动之后,(ˇ?ˇ) 向cms中追加记录,可以在Redis和控制台中收到相应的数据。 echo ‘text‘ >> cms.log
?
?
?
?
?
原文:http://corejava2008.iteye.com/blog/2212928