一、简单使用

cd logstash_HOME
bin/logstash -e 'input { stdin { } } output { stdout {} }'

启动 Logstash 后,再键入 Hello hiekay,结果如下:

image.png

在生产环境中,Logstash 的管道要复杂很多,可能需要配置多个输入、过滤器和输出插件。

因此,需要一个配置文件管理输入、过滤器和输出相关的配置。配置文件内容格式如下:

# 输入
input {...
}# 过滤器
filter {...
}# 输出
output {...
}

二、配置使用 插件用法

在使用插件之前,我们先了解一个概念:事件。

Logstash 每读取一次数据的行为叫做事件。

在 Logstach_HOME 目录中创建一个配置文件,名为 logstash.conf(名字任意)。

  • 1、 输入插件
    输入插件允许一个特定的事件源可以读取到 Logstash 管道中,配置在 input {} 中,且可以设置多个。

修改配置文件:

input {# 从文件读取日志信息file {path => "/var/log/syslog"type => "system"start_position => "beginning"}
}# filter {
#
# }output {# 标准输出stdout { codec => rubydebug }
}

其中,syslog 为系统日志。保存文件。
运行

bin/logstash -f logstash.conf

在控制台结果如下:

image.png

  • 2、 输出插件
    输出插件将事件数据发送到特定的目的地,配置在 output {} 中,且可以设置多个。

修改配置文件:

input {# 从文件读取日志信息file {path => "/var/log/syslog"type => "error"start_position => "beginning"}}# filter {
#
# }output {# 输出到 elasticsearchelasticsearch {hosts => ["127.0.0.1:9201"]index => "syslog-%{+YYYY.MM.dd}"}
}

配置文件中使用 elasticsearch 输出插件。输出的日志信息将被保存到 Elasticsearch 中,索引名称为 index 参数设置的格式。保存文件。
运行

bin/logstash -f logstash.conf

  • 打开浏览器访问 http://127.0.0.1:9100 使用 head 插件查看 Elasticsearch 数据,结果如下图:

    image.png

  • 3、 编码解码插件
    编码解码插件本质是一种流过滤器,配合输入插件或输出插件使用。
    从上图中,我们发现一个问题:Java 异常日志被拆分成单行事件记录到 Elasticsearch 中,这不符合开发者或运维人员的查看习惯。因此,我们需要对日志信息进行编码将多行事件转成单行事件记录起来。
    我们需要配置 Multiline codec 插件,这个插件可以将多行日志信息合并成一行,作为一个事件处理。
    Logstash 默认没有安装该插件,需要开发者自行安装。

bin/logstash-plugin install logstash-codec-multiline

修改配置文件:

input {# 从文件读取日志信息file {path => "/var/log/syslog"type => "error"start_position => "beginning"# 使用 multiline 插件codec => multiline {# 通过正则表达式匹配,具体配置根据自身实际情况而定pattern => "^\d"negate => truewhat => "previous"}}}# filter {
#
# }output {# 输出到 elasticsearchelasticsearch {hosts => ["127.0.0.1:9201"]index => "syslog-%{+YYYY.MM.dd}"}
}

保存文件。

  • 运行

bin/logstash -f logstash.conf

使用 head 插件查看 Elasticsearch 数据,结果如下图:

image.png

  • 4 过滤器插件
    过滤器插件位于 Logstash 管道的中间位置,对事件执行过滤处理,配置在 filter {},且可以配置多个。
    本次测试使用 grok 插件演示,grok 插件用于过滤杂乱的内容,将其结构化,增加可读性。
    安装:

bin/logstash-plugin install logstash-filter-grok

修改配置文件:

input {stdin {}
}filter {grok {match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER
:duration}" }}
}output {stdout {codec => "rubydebug"}
}

保存文件。

  • 运行

bin/logstash -f logstash.conf

启动成功后,我们输入:

127.0.0.1 GET /index.html 16688 0.066

控制台返回:

image.png

输入的内容被匹配到相应的名字中。

logstash的使用教程相关推荐

  1. 大数据搜索引擎之ElasticSearch安装篇(资源)

    2019独角兽企业重金招聘Python工程师标准>>> 实验平台:操作系统:CentOS 7 软件链接(官网):https://www.elastic.co/products Ela ...

  2. windows下springboot项目部署elk日志系统教程elasticsearch与logstash与kibana

    1.项目中加入依赖: compile 'net.logstash.logback:logstash-logback-encoder:6.0' 如果是maven项目的话:字符串中的冒号为隔断,第一个为g ...

  3. 从零学ELK系列(六):Docker安装Logstash(超详细图文教程)

    [前言] 为了更加真实的模拟生产部署环境,在上次的Docker环境中(<Docker安装kibana(超详细图文教程)>)中安装了kibana,本次我们将安装日志清洗组件---logsta ...

  4. Logstash:Logstash 入门教程 (一)

    Logstash 是一个功能强大的工具,可与各种部署集成. 它提供了大量插件,可帮助你解析,丰富,转换和缓冲来自各种来源的数据. 如果你的数据需要 Beats 中没有的其他处理,则需要将 Logsta ...

  5. ELK教程3:logstash的部署、SpringBoot整合ELK+Filebeat

    本篇文章主要讲解如下安装Logstash,logstash依赖于Java环境,首先安装Java,安装脚本如下: yum install java logstash安装 Logstash的安装脚本如下: ...

  6. Docker安装部署ELK教程 (Elasticsearch+Kibana+Logstash+Filebeat)

    ELK是由 Elasticsearch.Logstash和Kibana 三部分组件组成. Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副 ...

  7. Docker安装部署ELK教程 (Elasticsearch+Kibana+Logstash)

    Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash 是一个完全开 ...

  8. Elastic Stack之Beats(Filebeat、Metricbeat)、Kibana、Logstash教程

    如果你没有听说过Elastic Stack,那你一定听说过ELK,实际上ELK是三款软件的简称,分别是Elasticsearch.Logstash.Kibana组成,在发展的过程中,又有新成员Beat ...

  9. logstash mysql报错_elk系列教程:logstash报错处理

    com.mysql.jdbc.Driver not loaded. Are you sure you've included the correct jdbc driver in :jdbc_driv ...

最新文章

  1. 互联网大厂技术面试内幕@霞落满天
  2. c语言实现椭圆曲线算法,椭圆曲线加密算法的C语言设计和实现
  3. MYsql 查询 查询当前月份的数据
  4. 并发编程-05线程安全性之原子性【锁之synchronized】
  5. php strtoup,PHP 7 的几处函数安全小变化
  6. [干货来袭]C#7.0新特性(VS2017可用)
  7. js监听多个事件_JavaScript中的事件与异常捕获解析
  8. java面试题_1000道Java工程师面试题+答案PDF485页
  9. “JavaSwing” ——简单使用
  10. 总结过去10年的程序员生涯_给程序员的一些总结性忠告
  11. 300 行代码带你秒懂 Java 多线程!| 原力计划
  12. jquery基础知识(一)
  13. 一些shell脚本,sed替换
  14. python笔记图片_python功能笔记——图像处理
  15. 勾股定理竟然有500种证明方法,你会几种?
  16. MATLAB串联RLC响应
  17. B模式超声成像仿真(MATLAB k-Wave仿真)
  18. php 获取百度权重,PHP获取网站在爱站查询的百度权重
  19. rocks集群_.NET Rocks! -PDC版
  20. 重视ERP系统运行的潜在风险

热门文章

  1. java jpeg压缩解码_图片压缩(iOS)
  2. java list 转 scala_Java与Scala集合互转
  3. NOIP2018提高组模拟题(六)
  4. CentOS中无法使用setup命令 -bash:setup: command not found
  5. 神奇的计算器dc和bc
  6. fir.im Weekly - 1000 个 Android 开源项目集合
  7. [转]为mysql数据库建立索引
  8. sqlDataAdapter的FillSchema用法
  9. 寻找 ASP.NET 2.0 老师
  10. Community Server系列之三:页面间关系2[介绍]