logstash开源日志管理系统-1-logstash是什么

logstash实际上是一个可以管理日志的玩意,它可以把你应用的日志进行收集,存储,并通过elasticsearch进行存储搜索,使繁琐的日志管理变得简单傻瓜式的,同时它也使用了一些分布式的技术,底层是java实现的,操作与部署也非常的简单,只要指定配置文件就可以进行工作,这是它的官网,http://logstash.net/ ,现在logstash已经归属到elasticsearch的大家庭里了,属于elasticsearch在日志处理方面的一个很好的实践。现在让我们先对它有一个简单的认识,所以我们现在要做的事情就是快速的把它搭建起来。
我们可以使用一台linux机器,来模拟分布式的日志处理。先安装java环境,这个读者可以直接到网上搜索,如何搭建,我这里就不详细说明了,之后我们需要下载logstash,http://logstash.net/ ,下载之后,他就是一个jar的大文件,所以基本不用动,我们把它下载到 /usr/local/ 下,然后在这里我们新建一个配置文件:
logstash-simple.conf

input{         
    stdin{}
}
output{
   stdout{
         codec => rubydebug 
        }
}

这一段代码是什么意思,在这先不说,等下一篇我再细细的讲logstash的基本配置语法。之后我们启动它:
java -jar logstash-1.3.2-flatjar.jar agent -f logstash-simple.conf 
这时候我们稍等几秒种,等它基本启动之后,我们就可以尝试的在终端输入些字符,比如,“hello”什么的,之后我们在终端就会看到这样的json串,这实际上就模拟了logstash基本的日志输入输出形式。
input {
      stdin { type => example }
 }
output { 
      stdout { codec => rubydebug }
     elasticsearch { embedded => true }
}

现在我们看看,这个配置文件,貌似明白了点什么了,实际上我们是指定了终端输入(input),为标准输入,又指定了输出(output),为标准输出,这实际上就是一个比较典型的分块的插件式配置文件。(详细的可以看后面的章节,我会慢慢的写,别急)
现在让我们看看如何使用logstash内置的elasticsearch(一种分布式搜索),这里我们只需要指定logstash的配置文件的output为内置的elasticsearch即可,配置文件如下:
input {
      stdin { type => example }
 }
output { 
      stdout { codec => rubydebug }
     elasticsearch { embedded => true }
}

然后启动logstash:

java -jar logstash-1.3.2-flatjar.jar agent -f logstash-simple.conf

这时我们可以通过访问curl -s http://127.0.0.1:9200/_status?pretty=true | grep logstash,可以看到端口中的内容,这里顺便说一下,elasticsearch的默认端口是9200,所以我们可以通过访问9200端口来请求数据,

"logstash-2014.01.15" : {
  "index" : "logstash-2014.01.15"

现在我们已经可以使用内置的elasticsearch来索引我们的数据,curl -gs -XGET "http://localhost:9200/logstash-*/_search?pretty&q=type:example" 
就会看到这些如下的数据:
  "_index" : "logstash-2014.01.15",
  "_type" : "logs",
  "_id" : "iARTN3MtQ-Kaf_x0fZaFwQ",
  "_score" : 1.4054651, "_source" : {
    "message": "fizzle",
    "@timestamp": "2014.01.15T00:42:23.453Z",
    "@version": "1",
    "type": "example",
    "host": "pork"
  }

大概就是这个鸟样了,ok,下面我们再来看看,复杂点的,我们把配置文件,改成这样,让它来真正的收集点日志。
input {
  stdin {
           type => "stdin-type"
        }


    file {
          type => "syslog"
          path => [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog" ]
  }
}
output {
  stdout { }
  elasticsearch { embedded => true }
}

这一次我们要用到logstash的超级炫的kibana3  web页面,我们只需要启动如下命令:
java -jar logstash-1.3.2-flatjar.jar agent -f logstash-simple.conf -- web

因为logstash内置里kibana,所以可以直接这样启动,然后访问http://127.0.0.1:9292端口,你就会看到一个很炫的web页面,这里说一下kibana,这个东西是一个js编写的web页面,可以部署在任何的服务器上,比如nginx,tomcat等等,这里我们是使用的logstash的内置kibana3,好了,我们现在已经对logstash有了一个感性的认识,我下一篇会讲一讲它真正的实际应用,如何收集日志。以及它的一些配置语言。另外也可以关注我的微信公众帐号:程序猿不是于小炳,来共同学习。共同进步。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值