首页 > 系统管理 > 日志系统 > logstash搭建实时日志查询、收集与分析系统
2015
02-09

logstash搭建实时日志查询、收集与分析系统

Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索),您可以使用它

简单来讲他具体的工作流程就是 logstash agent 监控并过滤日志,将过滤后的日志内容发给redis(这里的redis只处理队列不做存储),logstash index将日志收集在一起交给
全文搜索服务ElasticSearch 可以用ElasticSearch进行自定义搜索 通过Kibana 来结合 自定义搜索进行页面展示。

 

此博客我们使用的logstash自身的ElasticSearch和kibana 页面展示

在这里我们使用了2台服务器:

192.168.10.38 (logstash,redis,ElasticSearch,Kibana)

192.168.10.39 (httpd)

日志收集服务器上配置(10.38):

准备安装的软件包

[root@localhost ~]# cd logstash/
[root@localhost logstash]# ls
logstash-1.4.2.tar.gz  jdk-8u31-linux-x64.tar.gz   redis-2.8.19.tar.gz
[root@localhost logstash]# tar xf redis-2.8.19.tar.gz -C /usr/local/
[root@localhost logstash]# tar xf logstash-1.4.2.tar.gz  -C /usr/local/
[root@localhost logstash]# tar xf jdk-8u31-linux-x64.tar.gz  -C /usr/local/jdk

添加java的环境变量并测试

[root@localhost logstash]# cat /etc/profile.d/jdk.sh 
JAVA_HOME=/usr/local/jdk
PATH=$JAVA_HOME/bin:$PATH
[root@localhost logstash]# java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
[root@localhost logstash]#

添加软连接方便后来的操作

[root@localhost local]# ln -s logstash-1.4.2/ logstash
[root@localhost local]# ln -s redis-2.8.19/ redis
[root@localhost local]# pwd
/usr/local
[root@localhost local]#

logstash的配置

[root@localhost local]# cd logstash
[root@localhost logstash]# ls
bin  lib  LICENSE  locales  patterns  README.md  spec  vendor
[root@localhost logstash]# mkdir conf
在conf目录中添加如下文件
[root@localhost logstash]# cat conf/redis.conf 
input {
redis {
  host => '192.168.10.38'
  data_type => 'list'
  port => "6379"
  key => 'logstash:redis'
  type => 'redis-input'
       }
       }

output {
    elasticsearch {
    embedded => true
                  }
       }

解释:input监控redis中的信息。output 输出到elasticsearch供我们收索使用

启动服务

[root@localhost ~]# cd /usr/local/logstash
[root@localhost logstash]# pwd
/usr/local/logstash
[root@localhost logstash]# ./bin/logstash -f conf/redis.conf &
[1] 28539
[root@localhost logstash]# ./bin/logstash-web &
[2] 28592
[root@localhost logstash]# U

查看端口状态

[root@localhost ~]# ss -tanl
Recv-Q Send-Q                    Local Address:Port                      Peer Address:Port 
0      0                             127.0.0.1:6379                                 *:*     
0      0                         192.168.10.38:6379                                 *:*     
0      0                                    :::9292                                :::*     
0      0                                     *:111                                  *:*     
0      0                                    :::9200                                :::*     
0      0                                    :::9201                                :::*     
0      0                                    :::9202                                :::*     
0      0                                    :::9300                                :::*     
0      0                                    :::9301                                :::*     
0      0                                    :::9302                                :::*     
0      0                                     *:22                                   *:*     
0      0                                    :::22                                  :::*     
0      0                                     *:694                                  *:*     
0      0                                    :::9303                                :::*     
0      0                                    :::9304                                :::*     
[root@localhost ~]#

http服务器上配置(10.39):

安装logstash和jdk,安装方法见上

[root@localhost logstash-1.4.2]# mkdir conf
添加test.conf文件。内容如下
[root@localhost logstash-1.4.2]# cat conf/redis.conf
input {
    file {
    type => "access"
    path => "/var/log/httpd/access_log"
    }
    file {
    type => "error_log"
    path => "/var/log/httpd/error_log"
    }
  }
filter {
  grok {
    match => [ "message", "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" ]
  }
}

output {
      redis {
      host => '192.168.10.38'
      data_type => 'list'
      key => 'logstash:redis'
       }
       }
[root@localhost logstash-1.4.2]#

解释:input是我们监控的文件 filter是定义的日志输出格式,output发送给redis

访问一下试试看

http://tshare365.codingapp.com/wp-content/uploads/2015/01/43.png

 




最后编辑:
作者:tshare365
这个作者貌似有点懒,什么都没有留下。
捐 赠您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击

留下一个回复