先来介绍一下logstash。
开源日志管理Logstash
logstash 是一个应用程序日志、事件的传输、处理、管理和搜索的平台。你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计。
官网:http://www.logstash.net/
logstash工具用起来很简单,具体怎么用,如果英语水平不过关,读不懂英文官网的话,可能入门比较难,因为现阶段国内用的比较少,网上中文资料就更少了,我在这里就给个思路,抛砖引玉:
如果linux命令用的不熟的盆友,先花点时间补补!
先安装1.7版的JDK
> java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
再安装logstash
命令行输入:
curl -O https://download.elasticsearch.org/logstash/logstash/logstash-1.4.0.tar.gz
tar zxvf logstash-1.4.0.tar.gz
cd logstash-1.4.0
我们写程序都是先易后难,我们先来个简单的测试一下安装是否成功!
命令行输入:bin/logstash -e 'input { stdin { } } output { stdout {} }'
回车,显示空白,输入hello world试试
显示:2013-11-21T01:22:14.405+0000 0.0.0.0 hello world,当然时间不是这个时间!
祝贺你,安装成功!
我们结合上一篇博文讲的redis,来个稍微难一点的!
我们不像上面stdin那样输入数据,而从redis中获取数据,然后stdout!
!!! 然而在这里,有一点,我需要特别强调一下,如果用jedis的get方法,因为set方法是把redis当做数据库用,你是无法将redis中的数据传输到logstash日志处理中心的,相反,你必须要用rpush方法来将数据储存到redis队列中,这一关键点,耗费了我好几天时间,最后才在redis的官网发现的,所以希望大家不要再走弯路!
我们再logstash的安装目录下,新建一个logstash.conf的配置文件。
内容如下:
input {
redis {
host => "127.0.0.1"
data_type =>"list"
key => "mylogstash"
type => "redis-input"
}
}
output {
stdout { codec => rubydebug }
}
大家对比下面这句命令:
bin/logstash -e 'input { stdin { } } output { stdout {} }'
是不是发现很相似,是的,它其实就是把在命令行上输入的命令,配置文件中了!只不过把数据输入的方式从控制台转换到了redis缓存而已
那么大家在启动logstash之前,需要先启动redis服务器:
切换到redis安装目录,命令行输入:
redis-server /root/data/redis-2.8.8/redis.conf(后面这部分为redis的默认配置文件)
大家以这种配置文件的方式启动,是比较标准的!如果启动成功,则会出现一个立体的四方体,并且命令行终端会出现server started,redis version 2.8.8
打开另一个终端,命令行输入:
[root@localhost ~]# redis-cli
127.0.0.1:6379>
此时,我们就可义开始操作redis了
127.0.0.1:6379> rpush mylogstash kk
(integer) 1
127.0.0.1:6379> rpop mylogstash
"kk"
127.0.0.1:6379>
rpush 设置;rpop 获取!!!mylogstash?为什么是mylogstash?因为logstash.conf中的key是mylogstash,我们要知道,redis的存储方法是key-value对。
OK,再配置好logstash.conf文件,以及给redis设置了值以后,我们就可以开始启动logstash了!如何启动?切换到logstash 的安装目录,输入如下命令:
bin/logstash -f logstash.conf等待启动,如果成功,控制台则会打印 mylogstash,也就是刚刚操作redis设置的一些信息。
其实在logstash.conf配置文件中,远不止这些简单的配置,一个比较完整的配置文件应该包括以下几个部分:
input 输入
codec 数据格式
filter 过滤器
output 输出
详情请见官网!
讲到这,大家应该对logstash的用法有了一个初步的了解了吧,我们就把它当作一个筛子,先拿数据进来,经过过滤,筛掉一些数据出去!