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时候加载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}}"