logstash介绍以及简单case

2021-05-18 17:09:28 浏览数 (1)

logstash scene

场景场景

如:采集sdk产生的日志,将日志通过logstash处理后,存储到ES中,进行收敛展示

logstash concepts

  • Pipeline
    • 包含了三个阶段,input-filter-output三个阶段的处理流程,数据采集,数据处理,数据输出
    • 有很多插件
    • 队列管理
  • Logstash Event
    • 数据在内部流转时的具体表现形式,数据在input阶段被转换成event,在output阶段被转换成目标格式数据
    • event是一个jave object,在配置文件中,可以对event进行增删改查

logstash framework

codec:将原始数据decode成event,将event encode成目标数据

架构架构

logstash config

logstash configlogstash config
  • 启动logstash时候加载config文件: ./bin/logstash -f logstash.config
  • pipeline:input/filter/output (在配置文件中也会体现)
  • codec:json/line

logstash plugins

input plugins

  • 一个pipeline 可以有多个input插件:eg file/stdin;beats/redis/kafka;tcp/udp/http....

output plugins

  • 将event发送到特定目的地,如es,是piplne的最后的一个阶段;
  • 常见的output plugins:es;email;kafka/zabbix/influxdb/http;

codec plugins

  • 将原始数据decode成event,将event encode成目标数据
  • 内置的codec plugins:line/multiline;json....

filter plugins

  • 处理event
  • 内置filter plugins:Mutate(操作event字段,增删改查);Metrics(Aggregate metrics);Ruby(执行ruby代码)

logstash queue

  • memory queue
    • 进程crash,机器宕机,会引起数据的丢失
  • persistent queue
    • 机器宕机,数据不会丢失;数据保证会被消费;可以替代kafka等消息队列的缓冲

logstash case

  • sudo bin/logstash -e "input{stdin{codec=>line}}output{stdout{codec=> rubydebug}}"
  • sudo bin/logstash -e "input{stdin{codec=>json}}output{stdout{codec=> rubydebug}}"
  • sudo bin/logstash -e "input{stdin{codec=>line}}output{stdout{codec=> dots}}"

0 人点赞