文档章节

logstash编码插件

 张欢19933
发布于 2017/05/05 16:19
字数 389
阅读 64
收藏 0
Codec: 解码编码 数据格式  
  
json,msgpack,edn  
  
  
logstash处理流程:  
  
input->decode->filter->encode->output  
  
  
plain 是一个空的解析器,它可以让用户自己制定格式  
  
[elk@db01 0204]$ cat plain01.conf   
input {  
 stdin {  
   }  
}  
  
output {  
 stdout{  
  codec=>plain  
}  
}  
  
[elk@db01 0204]$ logstash -f plain01.conf   
Settings: Default pipeline workers: 4  
Pipeline main started  
333333  
44444
2017-01-17T21:16:27.548Z db01 333333  
2017-01-17T21:16:34.774Z db01 44444  
  
 
json编码:  
  
如果事件数据是json格式,可以加入codec=>json来进行解析  
[elk@db01 0204]$ cat plain02.conf   
input {  
 stdin {  
   }  
}  
  
output {  
 stdout{  
codec=>json  
}  
}  
  
[elk@db01 0204]$ logstash -f plain02.conf   
Settings: Default pipeline workers: 4  
Pipeline main started  
aaaa  
{"message":"aaaa","@version":"1","@timestamp":"2017-01-17T21:18:22.160Z","host":"db01"}  

  
json_lines 编码:  
  
input {  
  tcp{  
      port=>12388  
      host=>"127.0.0.1"  
      codec=>json_lines{  
   }  
 }  
}  
  
output{  
  stdout{}  
}  
  
如果你的json文件比较长,需要换行的话,那么就得用到json_lines了  
  
rubydebug   
  
采用Ruby库来解析日志  
  
[elk@db01 0204]$ cat ruby.conf   
input {  
  stdin {  
  codec=>json  
}  
}  
  
output {  
 stdout{  
 codec=>rubydebug  
 }  
}  
  
[elk@db01 0204]$ logstash -f ruby.conf   
Settings: Default pipeline workers: 4  
Pipeline main started  
{"bookname":"elk","price":12}    
{  
      "bookname" => "elk",  
         "price" => 12,  
      "@version" => "1",  
    "@timestamp" => "2017-01-17T21:40:28.601Z",  
          "host" => "db01"  
}  
  

multiline 多行事件  
  
有时候有的日志用多行去展现,这么多行其实都是一个事件  
  
比如JAVA的异常日志  
  
what=>"previous" 未匹配的内容向前合并  
[elk@db01 0204]$ cat mulit.conf   
input {  
 stdin {  
 codec=>multiline {  
 pattern=>"^\["  
 negate=>true  
 what=>"previous"  
 }  
}  
}  
  
output {  
 stdout{}  
}  
  
  
[elk@db01 0204]$ logstash -f mulit.conf   
Settings: Default pipeline workers: 4  
Pipeline main started  
[03-Jun-2014 13:34:13:] PHP err01:aaaaaaaaa  
111111111111111  
222222222222222  
[09-Aug-2015 44:33:22] PHP 9999  
2017-01-17T21:59:39.654Z db01 [03-Jun-2014 13:34:13:] PHP err01:aaaaaaaaa  
111111111111111  
222222222222222  
为什么[09-Aug-2015 44:33:22] PHP 9999 这条没输出,因为需要匹配下一个 pattern=>"^\["  

 

© 著作权归作者所有

粉丝 47
博文 532
码字总数 244932
作品 0
海淀
私信 提问
logstash通过kafka传输nginx日志

logstash通过kafka传输nginx日志(三)   单个进程 logstash 可以实现对数据的读取、解析和输出处理。但是在生产环境中,从每台应用服务器运行 logstash 进程并将数据直接发送到 Elastics...

yixinsiyu
2018/08/27
126
0
分布式日志收集之Logstash 笔记(一)

(一)logstash是什么? logstash是一种分布式日志收集框架,开发语言是JRuby,当然是为了与Java平台对接,不过与Ruby语法兼容良好,非常简洁强大,经常与ElasticSearch,Kibana配置,组成著...

九劫散仙
2015/11/05
2.8K
0
Elastic 技术栈之 Logstash 基础

Elastic 技术栈之 Logstash 基础 本文是 Elastic 技术栈(ELK)的 Logstash 应用。 如果不了解 Elastic 的安装、配置、部署,可以参考:Elastic 技术栈之快速入门 简介 Logstash 可以传输和处...

guitar_zp
2017/12/26
0
0
手把手教你编写Logstash插件

使用过Logstash的朋友都知道,它强大的插件生态几乎覆盖了所有的开源框架。从基本的http、tcp、udp、file,到强大的kafa、redis、ganglia,还有丰富的解析工具,比如date、json、grok、kv等等...

青夜之衫
2017/12/04
0
0
从一份定义文件详解ELK中Logstash插件结构

概述 当下分布式系统的 日志收集、日志分析、日志处理、可视化 的热门技术栈方案当然非 ELK(ElasticSearch、Logstash、Kibana)莫属,从 L → E → K 构成了一条数据的 Pipeline管道: Logs...

CodeSheep
2018/07/25
54
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
今天
4
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0
Spring boot 静态资源访问

0. 两个配置 spring.mvc.static-path-patternspring.resources.static-locations 1. application中需要先行的两个配置项 1.1 spring.mvc.static-path-pattern 这个配置项是告诉springboo......

moon888
昨天
4
0
hash slot(虚拟桶)

在分布式集群中,如何保证相同请求落到相同的机器上,并且后面的集群机器可以尽可能的均分请求,并且当扩容或down机的情况下能对原有集群影响最小。 round robin算法:是把数据mod后直接映射...

李朝强
昨天
4
0
Kafka 原理和实战

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平...

vivo互联网技术
昨天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部