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/6/9 05:39:01