最近在使用logstash进行日志搜集,很方便的一个开源软件软件,开包即用,使用JRuby来开发的,呵呵,我一看到不是java开发的开源项目,就有一种莫名其妙的抵触情绪,怪哉怪哉,不过我去它们的jira系统,发现里边还是很活跃的,jira地址:https://logstash.jira.com/secure/Dashboard.jspa。
在这里先讲一下logstash的用法吧, so easy.
下载logstash jar文件,https://download.elasticsearch.org/logstash/logstash/logstash-1.2.2-flatjar.jar
官方有一个场景是logstash监控日志文件,统一吐到Redis server中,在用一个logstash读取日志,并存放到ElasticSearch,我感觉这块还是挺实用的,具体地址:http://logstash.net/docs/1.2.2/tutorials/getting-started-centralized。
要启动logstash,首先要有一个配置文件sample.conf,它包含一个input域和output域,同时还可以设置filter和codecs。
Input就是文件的来源,有多种指定方式,支持通配符,同时也可以指定多个文件。
Output就是文件的输出,可以设置输出到多个目标源,在这里指定它输出到Redis server,同时设置输出的类型为list,key就是每一条日志的名称,它默认是以map形式输出的,host为redis的主机地址。
下面这个配置文件是我做的一个小例子。
input {
file {
type =>"linux-syslog"
# Wildcardswork, here :)
path =>[ "/var/log/messages"]
}
}
output {
redis {
data_type=> "list" key => "test"
host =>"localhost"
}
}
启动logstash: java -jarlogstash-1.2.1-flatjar.jar agent -f sample.conf –web
Logstash提供web监控界面,地址为:http://localhost:9292
这时,logstash可以将message更新的日志文件,按条发送到Redis server中,用户可以自己写一个jar文件读取redis的日志,也可以使用logstash读取。
下图是logstash支持的inputs、codecs、filters和outputs的参数配置,你不必每一个都了解,当需要的时候现查就可以了,地址为:http://logstash.net/docs/1.2.2/