正文
一、简单介绍
logstash是一个数据同步工具,一般是在ELK(Elasticsearch + Logstash + Kibana)技术栈解决数据同步问题,通过logstash将mysql、日志文件、redis等数据源的数据同步到ES,通过ES搜索数据。
二、基本语法
1.配置文件格式
# 输入插件配置,主要配置需要同步数据源,如mysql input { } # 过滤器插件配置,主要用于数据进行过滤,格式化操作,filter是可选的 filter { } # 输出插件配置,主要配置同步数据的地址,如同步到es output{ }
2.日志同步到es例子
input { tcp { port => 5044 codec => json_lines } } output { elasticsearch { hosts => ["127.0.0.1:9200"] index => "laokou-%{+YYYY.MM.dd}" stdout { codec => rubydebug } #stdout控制台打印 stdin控制台输入 } }
3.基本流程(logstash处理流程,就像一条管道,数据从管道一端流向另一端)
datasources(redis/mysql/日志文件) > inputs > filters > outputs > elasticsearch
inputs:负责收集数据(常见数据源 redis/kafka/rabbitmq/mysql/file/ filebeat 轻量级文件数据采集器)
filters:对收集到的数据进行格式化、过滤、简单的数据处理(grok 格式化文本内容 drop 丢弃一些数据)
outputs:负责数据同步到目的地(目的地 elasticsearch/file )
codesc:编码器,对数据进行序列化处理,主要就是json和文本两种编码器