Logstash 初探

Logstash

Logstash是一个开源数据收集引擎,具备实时管道功能。Logstash能够动态地未来自不一样数据源的数据统一块儿来,并将数据标准化到你所选择的目的地。html

集中、转换和存储你的数据java

Logstash是一个开源的服务器端数据处理管道,能够同时从多个数据源获取数据,并对其进行转换,而后将其发送到你最喜欢的“存储”。(固然,咱们最喜欢的是Elasticsearch)ruby

INPUTS (输入插件): 采集各类格式、大小和来源的数据bash

      数据每每以各类各样的形式,或分散或集中地存在于不少系统中。Logstash 支持各类输入选择 ,能够在同一时间从众多经常使用来源捕捉事件。可以以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各类 AWS 服务采集数据。服务器

 

 FILTERS (过滤器插件):实时解析和转换数据 架构

      数据从源传输到存储库的过程当中,Logstash 过滤器可以解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。elasticsearch

Logstash 可以动态地转换和解析数据,不受格式或复杂度的影响:ide

  • 利用 Grok 从非结构化数据中派生出结构
  • 从 IP 地址破译出地理坐标
  • 将 PII 数据匿名化,彻底排除敏感字段
  • 总体处理不受数据源、格式或架构的影响

咱们丰富的过滤库给数据过滤提供了无限的可能性。测试

OUTPUTS(输出插件):选择你的存储,导出你的数据ui

       尽管 Elasticsearch 是咱们的首选输出方向,可以为咱们的搜索和分析带来无限可能,但它并不是惟一选择。Logstash 提供众多输出选择,您能够将数据发送到您要指定的地方,而且可以灵活地解锁众多下游用例。

 

安装Logstach

一、安装JDK

Logstach是基于Java开发是一个Java程序,运行在Jvm中,因此第一步要安装JDK。

yum install -y java-1.8.0-openjdk-devel

二、下载Logstach

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 }}'

# 运行成功之后输入:
爱上一匹野马,可个人家里没有草原

# 返回的结果(标准输出中的结果):

参考资料

相关文章
相关标签/搜索