原始输入日志文件每行日志格式如下,json 数组格式的:
[{“a”:1},{“a”:2}]
要求拆分成2行事件,在ES中保存两个文档
{“a”:1}
{“a”:2}
本来以为挺麻烦,原来 input -> codec => json 直接支持解析这种格式,真愚昧啊
file {
type => "test"
path => "/home/jfy/tmp/test.txt"
sincedb_path => "/home/jfy/soft/logstash-2.0.0/test.access"
start_position => "beginning"
codec => json
codec json:
This codec may be used to decode (via inputs) and encode (via outputs) full JSON messages. If the data being sent is a JSON array at its root multiple events will be created (one per element).
原始输入日志文件每行日志格式如下,json 数组格式的: [{“a”:1},{“a”:2}]要求拆分成2行事件,在ES中保存两个文档 {“a”:1} {“a”:2}本来以为挺麻烦,原来 input -> codec => json 直接支持解析这种格式,真愚昧啊 file { type => "test" path => "/home/jfy/tmp/te
ELK生态之Logstash导入数据到Elasticsearch;
数据源:json格式文件,内容为json;
Elasticsearch和Logstash版本:5.6.1;
前提环境:Elasticsearch单机或集群;Logstash客户端;
json文件内容:
{"name":"sixmonth","age":"23","sex":"男","address":"深圳...
用来解析json格式数据的过滤器,默认会解析置顶字段的json数据并将其放置在Logstash事件的最顶级中,可以配置target配置项选择存放结果位置
如果解析的数据包含一个@timestamp字段,会将解析的数据放在顶级的@timestamp中,如果解析失败,该字段将被重命名为_@timestamp
二、source
功能:选择解析字段的位置
介绍:没有位置,必须要配置
filter{
json {
# 将message作为解析json的字段
需解析的原始数据
123456|login_event|{"username":"zs","age":"18","hmm":{"likes":"eat"}}|192.168.57.116
"userid":"123456",
"event_name":"login_event",
"username":"zs",
"age":"18",
"likes":"eat",
"ipaddr":"192.168.57.116"
logstash配置文件
input {
file {