1、Logstash 篇之入门与运行机制

Logstash简述

简介

1、Logstash 篇之入门与运行机制

处理流程

1、Logstash 篇之入门与运行机制
处理流程–Input和Output配置
1、Logstash 篇之入门与运行机制

处理流程–Filter配置

  • Grok
    • 基于正则表达式提供了丰富可重用的模式(pattern)
    • 基于此可以将非结构化数据作结构化处理
  • Date
    • 将字符串类型的时间字段转换为时间戳类型,方便后续数据处理
  • Mutate
    • 进行增加、修改、删除、替换等字段相关的处理

处理流程–Filter配置Grok示例

1、Logstash 篇之入门与运行机制
运行logstic
1、Logstash 篇之入门与运行机制

入门及架构简介

1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制

  • Pipeline
    • input-filter-output的3阶段处理流程
    • 队列管理
    • 插件生命周期管理
  • Logstash Event
    • 内部流转的数据表现形式
    • 原始数据在input被转换为Event ,在output event被转换为目标格式数据
    • 在配置文件中可以对Event中的属性进行增删改查
      1、Logstash 篇之入门与运行机制
      1、Logstash 篇之入门与运行机制
      1、Logstash 篇之入门与运行机制

Codec-Input Decoding

1、Logstash 篇之入门与运行机制

Codec-Output Encoding

1、Logstash 篇之入门与运行机制
测试
1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制

Life_of_an_Event

1、Logstash 篇之入门与运行机制

具体流程

1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制

queue简介

In Memory

  • 无法处理进程Crash、机器宕机等情况,会导致数据丢失

Persistent Queue In Disk

  • 可处理进程Crash等情况,保证数据不丢失
  • 保证数据至少消费一次
  • 充当缓冲区,可以替代Kafka等消息队列的作用

Persistent Queue
1、Logstash 篇之入门与运行机制
持久队列工作机制:
数据流向Data-1-2-3-4(红色)
disk备份后PQ告诉input收到数据
然后 数据Data从PQ1-2-3(蓝色)
filter/output会处理Data
2发送ack到PQ 3是把disk的备份数据删掉。处理到此结束。
disk作用是解决数据容灾的问题

1、Logstash 篇之入门与运行机制

一般情况下打开persisted queue
queue.type.persisted

  • 默认是memory

queue.max_bytes:4gb

  • 队列存储最大数据量

其他的配置
https://www.elastic.co/guide/en/logstash/current/persistent-queues.html

线程简介

1、Logstash 篇之入门与运行机制

相关配置

  • pipeline.workers |-w
    • pipeline线程数,即filter-output的处理线程数,默认是cpu核数.
  • pipeline.batch.size l-b.
    • Batcher一次批量获取的待处理文档数,默认125 ,可以根据输出进行调整,越大会占用越多的heap空间,可以通过jvm.options调整
  • pipeline.batch.delay |-u
    • Batcher等待的时长,单位为ms

1、Logstash 篇之入门与运行机制
GC 分配 线程的一些情况可以下载VisualVM来监控到。
1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制
修改thread一个worker
1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制

配置简介

logstash配置文件:

logstash设置相关的配置文件(在conf文件夹中, setting files )

  • logstash.yml logstash相关的配置,比如node.name, path.data, pipeline.workers, queue.type等,这其中的配置可以被命令行参数中的相关参数覆盖
  • jvm.options修改jvm的相关参数,比如修改heap size等

pipeline配置文件定义数据处理流程的文件,以.conf结尾

logstash.yml:
1、Logstash 篇之入门与运行机制

logstash.yml常用配置项

node.name

  • 节点名,便于识别

path.data

  • 持久化存储数据的文件夹,默认是logstash home目录下的data

path.config

  • 设定pipeline配置文件的目录

path.log

  • 设定pipeline日志文件的目录

pipeline.workers

  • 设定pipeline的线程数(filter+output) ,优化的常用项

pipeline.batch.size/delay

  • 设定批量处理数据的数目和延迟

queue.type

  • 设定队列类型,默认是memory

queue.max_bytes

  • 队列总容量,默认是1g

logstash命令行配置项

--node.name
-f --path.config pipeline路径,可以是文件或者文件夹
--path.settings logstash配置文件夹路径,其中要包含logstash.yml
-e --config.string指明pipeline内容,多用于测试使用 
-w --pipeline.workers
-b --pipeline.batch.size 
--path.data 
--debug.
-t --confia.test and exit

正确示例
1、Logstash 篇之入门与运行机制
错误示例
1、Logstash 篇之入门与运行机制
详细日志输出 –debug
1、Logstash 篇之入门与运行机制

两种配置使用场合

·线上环境推荐采用配置文件的方式来设定logstash的相关配置,这样可以减少犯错的机会,而且文件便于进行版本化管理
·命令行形式多用来进行快速的配置测试、验证、检查等

多实例运行

logstash多实例运行方式

先修改instance1/config的配置
1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制
默认加载config目录
1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制

pipeline配置简介

1、Logstash 篇之入门与运行机制
pipeline配置语法
1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制

1、Logstash 篇之入门与运行机制

1、Logstash 篇之入门与运行机制

1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制

1、Logstash 篇之入门与运行机制
1、Logstash 篇之入门与运行机制
例子
1、Logstash 篇之入门与运行机制