Logstash是一个开源数据收集引擎,具备实时管道功能。Logstash能够动态地未来自不一样数据源的数据统一块儿来,并将数据标准化到你所选择的目的地。html
集中、转换和存储你的数据java
Logstash是一个开源的服务器端数据处理管道,能够同时从多个数据源获取数据,并对其进行转换,而后将其发送到你最喜欢的“存储”。(固然,咱们最喜欢的是Elasticsearch)ruby
INPUTS (输入插件): 采集各类格式、大小和来源的数据bash
数据每每以各类各样的形式,或分散或集中地存在于不少系统中。Logstash 支持各类输入选择 ,能够在同一时间从众多经常使用来源捕捉事件。可以以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各类 AWS 服务采集数据。服务器
FILTERS (过滤器插件):实时解析和转换数据 架构
数据从源传输到存储库的过程当中,Logstash 过滤器可以解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。elasticsearch
Logstash 可以动态地转换和解析数据,不受格式或复杂度的影响:ide
咱们丰富的过滤库给数据过滤提供了无限的可能性。测试
OUTPUTS(输出插件):选择你的存储,导出你的数据ui
尽管 Elasticsearch 是咱们的首选输出方向,可以为咱们的搜索和分析带来无限可能,但它并不是惟一选择。Logstash 提供众多输出选择,您能够将数据发送到您要指定的地方,而且可以灵活地解锁众多下游用例。
一、安装JDK
Logstach是基于Java开发是一个Java程序,运行在Jvm中,因此第一步要安装JDK。
yum install -y java-1.8.0-openjdk-devel
https://www.elastic.co/cn/downloads/logstash,是Logstach的官方站点,若是须要下载最新的版本,进入官网下载便可。能够下载到本地电脑而后再导入CentOS中,也能够直接在CentOS中下载。
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.4.rpm
二、安装Logstach
# 执行安装命令 rpm -ivh logstash-6.5.4.rpm warning: logstash-6.5.4.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY Preparing... ########################################### [100%] 1:logstash ########################################### [100%] Using provided startup.options file: /etc/logstash/startup.options Successfully created system startup script for Logstash # 查看下logstash的安装目录 rpm -ql logstash # 建立一个软链接,每次执行命令的时候不用在写安装路劲(默认安装在/usr/share下) ln -s /usr/share/logstash/bin/logstash /bin/
好,立刻开始咱们的第一个例子:
首先,让咱们经过最基本的Logstash管道来测试一下刚才安装的Logstash。Logstash管道有两个必需的元素,输入和输出,以及一个可选元素过滤器。输入插件从数据源那里消费数据,过滤器插件根据你的指望修改数据,输出插件将数据写入目的地。
接下来咱们输入最基本的管道,例如:
# 执行logstash的命令 logstash -e 'input { stdin { } } output { stdout {} }' # -e是容许命令行指定配置 # 运行成功之后输入: hello world
而后启动后,输入hello world
# 注: # -e 执行操做 # input 标准输入 # { input } 插件 # output 标准输出 # { stdout } 插件 # # 经过rubydebug来输出下更详细的信息 logstash -e 'input { stdin { } } output { stdout {codec => rubydebug} }' # 执行成功输入: 爱上一匹野马,可我家里没有草原 # stdout输出的结果:
# 若是标准输出还有Elasticsearch中都须要保留应该怎么玩,看下面 logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["192.168.1.111:9200"] } stdout { codec => rubydebug }}' # 运行成功之后输入: 爱上一匹野马,可个人家里没有草原 # 返回的结果(标准输出中的结果):