实时数据收集引擎Logstash
一、Logstash简介
1、官网地址
https://www.elastic.co/guide/en/logstash/7.x/introduction.html
2、软件介绍
官方介绍:Logstash is an open source data collection engine with real-time pipelining capabilities。简单来说logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景。
Logstash常用于日志关系系统中做日志采集设备;
3、系统结构
Logstash的事件(logstash将数据流中等每一条数据称之为一个event)处理流水线有三个主要角色完成:inputs –> filters –> outputs:
inpust:必须,负责产生事件(Inputs generate events),常用:File、syslog、redis、beats(如:Filebeats)
filters:可选,负责数据处理与转换(filters modify them),常用:grok、mutate、drop、clone、geoip
outpus:必须,负责数据输出(outputs ship them elsewhere),常用:elasticsearch、file、graphite、statsd
其中inputs和outputs支持codecs(coder&decoder)在1.3.0 版之前,logstash 只支持纯文本形式输入,然后以过滤器处理它。但现在,我们可以在输入 期处理不同类型的数据,所以完整的数据流程应该是:input | decode | filter | encode | output;codec 的引入,使得 logstash 可以更好更方便的与其他有自定义数据格式的运维产品共存,比如:graphite、fluent、netflow、collectd,以及使用 msgpack、json、edn 等通用数据格式的其他产品等
4、应用场景
Logstash最常用于ELK(elasticsearch + logstash + kibane)中作为日志收集器使用
二、Logstash安装
1、环境清单
操作系统:CentOS Linux release 7.3.1611
Logstash版本:logstash-5.4.1
Jdk版本:1.8.0_131
2、软件下载
· 下载Jdk:
[chenlei@chenlei ~]$ 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.tar.gz
· 下载Logstash:
[chenlei@chenlei ~]$ wget https://artifacts.elastic.co/downloads/logstash/logstash-5.4.1.tar.gz
3、安装步骤
3.1、安装Jdk
· 创建安装目录
[chenlei@chenlei ~]$ sudo mkdir /usr/local/Java
· 解压缩安装文件
## 移动安装包到安装目录 ##
[chenlei@chenlei ~]$ sudo mv jdk-8u131-linux-x64.tar.gz /usr/local/Java/
## 进入安装目录 ##
[chenlei@chenlei ~]$ cd /usr/local/Java/
## 解压缩安装包 ##
[chenlei@chenlei Java]$ sudo tar -zxvf jdk-8u131-linux-x64.tar.gz
## 删除安装包 ##
[chenlei@chenlei Java]$ sudo rm jdk-8u131-linux-x64.tar.gz
· 测试安装是否成功
## 进入JAVA_HOME ##
[chenlei@chenlei Java]$ cd jdk1.8.0_131/
## 测试java命令是否可以正常执行 ##
[chenlei@chenlei jdk1.8.0_131]$ ./bin/java -version
· 配置JAVA_HOME环境变量
[chenlei@chenlei ~]$ cd ~
[chenlei@chenlei ~]$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
## 配置JAVA_HOME环境变量 ##
JAVA_HOME=/usr/local/Java/jdk1.8.0_131
## 将java执行目录加入到PATH下面 ##
PATH= P A T H : PATH: PATH:HOME/.local/bin: H O M E / b i n : HOME/bin: HOME/