Logstash日志插件开发总结

Logstash插件开发介绍
本次文档一共分为3部分,分别为下面3个部分,并且会附上不同的参考文档 - Logstash输入插件介绍 - Filter插件开发详解 - 开发过程遇到一些问题总结 ##logstash介绍 >Logstash 是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理。其工作流程如下:

Logstash工作流程

它处理数据有3个阶段

  • Input
  • Filter
  • Output
  • input 数据输入端,可以接收来自任何地方的源数据

  • Filter 数据中转层,主要进行格式处理,数据类型转换、数据过滤、字段添加,修改等,常用的过滤器如下

  • output 是logstash工作的最后一个阶段,负责将数据输出到指定位置,兼容大多数应用

安装下载参考文档:http://blog.csdn.net/u010246789/article/details/52086799

注意:在window中,用bin/logstash.agent -f logstash 命令来启动logstash

Logstash插件介绍

###FileInput插件介绍
FileInput插件是经常用到的输入插件,主要从文本中提取数据,然后经过一系列的Filter插件过滤和处理后,把数据再传递到Output插件,然后对数据进行输出,这主要介绍FilterInput插件的配置参数,可以参照官网。

配置参数示例详解
pathpath => ["/var/log/nginx/access.log"],path => “/var/log/nginx/*.log”文件源,可以检测若干文件,String或者数组类型
codeccodec=>plain{charset=>“UTF-8”}codec插件,默认是plain,可以设置编码格式
discover_intervaldiscover_interval=>20检查一次被监听的path下是否有新文件,默认值是15秒
excludeexclude=>“Message.log”,exclude=>[1.log,*.txt]排除不需要监测的文件,string或者数组类型
sincedb_pathsincedb_path=>"/home/hadoop/1.txt"记录处理文件的位置,默认为$HOME/.sincedb,如果设置为:/dev/null,则代表忽略检测位置
stat_intervalstat_interval=>10隔多久检查一次被监听文件状态,默认1秒
start_positionstart_position=>“beginning”,start_position=>“end”logstash从什么位置开始读取文件数据,配置为[beginning,end]中的一个,默认是结束位置
tagstags=>“logstash”标记,一个字段
close_orderclose_order=>3600文件输入会关闭上一次读取指定时间间隔的文件。 这取决于文件是否被拖尾或读取,具有不同的含义。 如果拖尾,并且输入数据中存在大的时间间隔,则可以关闭文件(允许打开其他文件),但在检测到新数据时将排队等待重新打开。 如果读取,文件将在从最后一个字节读取后的closed_older秒后关闭。 默认值为1小时
delimiterdelimiter=>"\n"读取事件的分割,默认是’\n’,也就是以一行为一个事件
sincedb_write_intervalsincedb_write_interval=>10多久写一次读取位置的文件,就是是sincedb_path,默认15秒

这个是FileInput插件读取的详细参数

下面来介绍几个常用到的Filter插件
###KV插件

KV插件设置一定的格式,来读取字段中的键值对

其中有两个比较重要的参数,如下:

- field_split - value_split

field_split为两个键值对间的分隔符,而value_split则是两个key,value之间的分隔符

>若要切割的字段如下: >message="messagid=123&name=logstash" >kv的配置如下: >kv{ source=>"message" field_split =>"&" value_split =>"=" } >则message会把切割成 messageid="123" name="logstash"

###multiline插件
mutile插件的主要作用是根据正则表达式,把多条事件合并或者切割成一条,详细了解请点击:mutiline插件详解:http://www.cnblogs.com/liuning8023/archive/2016/06/01/5549366.html
###mutate插件
mutate插件可以把一些字符串替换成别的字符串,通过gsub来实现。或者通过split来切割不同的字符串

mutate {
gsub=>[“message”, “\n”, “$”]
split=>[“message”,“keyword”]
}

这样配置,message会把message字段中的\n替换成$,并且根据keyword把messageqi切割字符串,通过[message][0],[message][1]来获取字段。
###Output插件WebHDFS介绍
webhdfs插件主要是把日志上传到HDFS文件系统中,其格式为:
webhdfs{
host => “127.0.0.1”
port => 50070
user => “hadoop”
path => “/logstash/data”
codec => plain
{
charset=>“UTF-8”
format=>"%{message}"
}
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值