写点什么

一文读懂 Logstash 原理

作者:黎燃
  • 2022 年 6 月 11 日
  • 本文字数:709 字

    阅读完需:约 2 分钟

一.Logstash

Logstash 作为 Elasicsearch 常用的实时数据采集引擎,可以采集来自不同数据源的数据,并对数据进行处理后输出到多种输出源,是 Elastic Stack 的重要组成部分。


二.Logstash Hello world

cd logstash-6.4.0bin/logstash -e 'input { stdin { } } output { stdout {} }' 
复制代码


Logstash 将采用标准输入和标准输出作为 input 和 output,并且不指定 filter。其中,syslog 为系统日志。保存文件。在控制台结果如下:


三.action

index 给一个文档建立索引 delete 通过 id 值删除一个文档(这个 action 需要指定一个 id 值)create 插入一条文档信息,如果这条文档信息在索引中已经存在,那么本次插入工作失败 update 通过 id 值更新一个文档。更新有个特殊的案例 upsert,如果被更新的文档还不存在,那么就会用到 upsert


action => "index"
复制代码


默认的 Logstash 安装包含 Beats input 插件,Beats input 插件允许 Logstash 从 Elastic Beats 框架接收事件,也就是说任何 Beat written 使用 Beats 框架工作,例如 Packetbeat 和 Metricbeat,也可以将事件数据发送到 Logstash。

四.manage_template

布尔类型 默认为 true 设置为 false 将关闭 logstash 自动管理模板功能比如你定义了一个自定义模板,更加字段名动态生成字段,那么应该设置为 false

五.filter

Logstash 三个组件的第二个组件,也是真个 Logstash 工具中最复杂,最蛋疼的一个组件,当然,也是最有作用的一个组件。


filter{    grok{        match => ['message','%{TIMESTAMP_ISO8601:logdate}']    }}
复制代码


date 插件 这里需要合前面的 grok 插件剥离出来的值 logdate 配合使用


filter{    date{        match=>["logdate","dd/MMM/yyyy:HH:mm:ss Z"]        target=>"@timestamp"        remove_field => 'logdate'    }}
复制代码


发布于: 刚刚阅读数: 3
用户头像

黎燃

关注

前端工程师 2022.05.06 加入

专注学习分享前端知识。

评论

发布
暂无评论
一文读懂Logstash原理_6月月更_黎燃_InfoQ写作社区