logstash日志平台搭建

来源:互联网 发布:淘宝客服兼职是真的吗 编辑:程序博客网 时间:2024/04/27 16:05


logstash + elasticsearch + kibana 日志平台的搭建           

一、概念介绍

logstash是一个开源工具,可以对日志进行收集、分析,并将其存储供以后使用。kibana也是一个开源的软件,可以为logstash 和elasticsearch 提供友好的日志分析的web界面。

具体工作流程如下:

1.1  logstash agent 监控并过滤日志,将过滤的日志内容发给 redis(redis 只处理队列,不存储),logstash index 将日志收集一起交给elasticsearch(全文搜索服务),elasticsearch可以通过自定义搜索,并通过结合kibana,进行页面展示。

1.2 logstash 的收集方式分为 standalone 和 centralized,前者是将所有功能都集中在一个服务器上面,自发自收,后者是一台服务器接收所有的shipper (logstash agent -f ...)的日志

二、环境的搭建

服务器 (233-128)( index 负责收集日志并将日志交给 elasticsearch 做搜索):  logstash index,ElasticSearch,kibana,JDK 

日志源服务器(233-129)(agent 负责监控、过滤日志):  logstash agent,JDK

服务器 (233-130):redis    (可以指定一台线上的服务器)

2.1 服务器(233-128)       

2.1.1 安装JDK

在安装logstash之前,需要对jdk进行安装,用jdk 运行 java 程序 

yum install java-1.7.0-openjdk

设置环境变量:#vim   ./bashrc

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_6         

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

然后,重新执行刚修改过的初始化文件   source .bashrc

2.1.2 安装elasticsearch

wget  http://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.5.zip

unzip elasticsearch-0.90.5.zip

bin/elasticsearch 

netstat -tpln

curl -X GET 127.0.0.1:9200

2.1.3 安装logstash

wget  https://download.elasticsearch.org/logstash/logstash/logstash-1.3.1-flatjar.jar

ogstash下载即可使用,命令行参数可以参考logstash flags ,主要有

agent   #运行Agent模式

 -f CONFIGFILE #指定配置文件

web     #自动Web

 -p PORT #指定端口,默认9292

2.1.4 安装kibana 

新版的logstash 已经内置kibana , 也可以重新安装:

wget http://download.elasticsearch.org/kibana/kibana/kibana-latest.zip

unzip kibana-latest.zip

cp -r  kibana-latest /var/www/html

2.1.5 添加配置文件

vim   redis.conf 

input { 

redis {

      host => "233-130"

              data_type => "list"

              port => "6379"

              key => "log stash:redis"

              type => "redis-input" 

          }

output {

        elasticsearch {

        embedded => true

         }

}

# logstash 的配置文件由 input, filter, output 等几个基本的部分组成

   input 在指定服务器收集数据

   output 就是输出到哪

   filter 代表一个过滤规则,意思是什么内容会被收集

上面这段是让 logstash 去233-130 这个redis服务器上去收集日志 

redis端口为6379,

key是 log stash:redis 

类型为 redis-input(注意:这几个值必须跟logstash agent的 output 所对应),

收集完成后输出到 elasticsearch ,embedded => true 的意思是使用logstash 内嵌的 elastic search。

如果有独立的elasticsearch服务器,需要将这条改为host => 'elasticsearch的ip' port => 端口

java -jar logstash-1.2.1-flatjar.jar agent -f redis.conf &

java -jar logstash-1.2.1-flatjar.jar web &    #启动logstash的内置web

2.1.6 检查端口 

losf -i: 9292

losf -i: 9200

在浏览器上查看http://~~233-128:9292 页面

现在还没有数据,登录到 服务器233-129 安装基本软件包和logstash

三、服务器233-129

( logstash agent,JDK 的安装同上)

vim redis.conf

input {

    file {

    type => "nagios-log"

    path => "/var/log/messages"

    }

}

#filter {

#    grep {

#    match => [ "@message", "mysql|GET|error" ]

#    }

#}


output {

    redis {

    host => "233-130"

    data_type => "list"

    key => "logstash:demo"

    }

}

# java -jar logstash-1.2.1-flatjar.jar agent -f redis.conf &

在启动之前先确定233-130是否已启动redis,

四 安装redis

wget http://download.redis.io/releases/redis-2.6.16.tar.gz

tar redis-2.6.16.tar.gz 

cd redis-2.6.tar.gz

make 

按照提示:

可以去redis目录下运行make test了,这次正常跑通。提示:

\o/ All tests passed without errors!Cleanup: may take some time... OK

说明redis安装正常。可以运行。

make install

然后,启动,cd src && ./redis-server

运行 ./redis-cli 就可以手动写数据

可以查看端口监听情况:netstat -lntp 

losf -i:6379 

简单配置 redis.conf 文件

现在浏览器上查看http://~~233-128:9292 页面,应该有数据了

http://233-128:9292/index.html#/dashboard

http://233-128/kibana-latest/index.html#/dashboard/file/logstash.json

五、架构

logstash 默认配置中使用redis, redis 是一个开源的key / value 数据库,用于在索引前队列化日志,并使用elasticsearch 存储日志,并作为查看系统的后端。

下图是展示架构中各种组件类型,包括shipper , broker , indexer 以及 viewer :

shipper 将从各台服务器中监控的日志通过redis 输入到队列通道中,通过数据过滤,然后存储到elasticsearch中。以上三个功能是通过配置shipter 信息执行的,这些信息存储在“.conf”文件中,该文件使用三种不同类型的插件:输入(input),过滤器(filter),以及输出(output)。

参考链接:

http://www.cnblogs.com/buzzlight/p/logstash_elasticsearch_kibana_log.html

http://storysky.blog.51cto.com/628458/1158707






0 0