logstash一款功能强大的数据收集组件

1. logstash简介
Logstash是一款开源的实时的数据收集引擎。它内置大量input, filter, and output的插件,用户轻松实现复杂的数据收集,过滤,与输出。Logstash支持同时多个input,output配置,比如你可以将数据写入elasticsearch同时,还在终端打印。
相比Filebeat,logstash功能更多,支持更多的数据处理插件,当然它也占用更多些的系统资源。所以通常使用logstash处理数据,而Filebeat负责从磁盘读取数据,然后转发给logstash,由logstash处理后再将数据存入elasticsearch,redis等。



2. 安装java sdk
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm
sudo rpm -vi jdk-8u131-linux-x64.rpm

java环境变量的配置
# set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${PATH}


3. 安装
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

vi /etc/yum.repos.d/logstash.repo
[logstash-5.x]
name=Elastic repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

sudo yum install logstash
netstat -apn | grep 9600 #查看端口占用情况

启动前要先创建一个input,[filter,]output的配置文件,比如first-pipeline.conf,下面我指定了host,实际应用中是一定要指定IP地址的
/usr/share/logstash/bin/logstash -f /usr/share/logstash/first-pipeline.conf --http.host 192.168.0.62



4. 配置
与Filebeat搭配使用处理日志,或者数据。下面的用例是用来处理Apache Log,首先配置Filebeat
filebeat.prospectors:
- input_type: log
  paths:
    - /path/to/file/logstash-tutorial.log 
output.logstash:
  hosts: ["localhost:5044"]
  
配置logstash,保持两边的端口一直,下面input,filter,output都是内部插件,使用非常简单
input {
    beats {
        port => "5044"
    }
}
filter {
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}"}
    }
    geoip {
        source => "clientip"
    }
}
output {
    stdout { codec => rubydebug }
}

Posted by 何敏 on 2017/06/09 05:39:01