天天看点

logstash之input

input区块提供logstash的事件来源,常用的插件有file,stdin,syslog,kafka等

stdin插件:

从标准输入读取事件

示例:

input {

    stdin {

        add_field => {"key" => "value"}

        codec => "plain"

        type => "std"

        tags => ["test"]

    }

}

add_field:事件中添加一个字段

codec:codec是一个编解码器,在输入前对数据进行编解码,无需在filter中使用特定的插件处理

type:加上一个类型字段,用来标记事件类型

tags:标记事件的某方面属性。这是一个数组,一个事件可以有多个标签。

file插件:

Logstash 使用一个名叫FileWatch的Ruby Gem库来监听文件变化。这个库支持 glob 展开文件路径,而且会记录一个叫 .sincedb 的数据库文件来跟踪被监听的日志文件的当前读取位置。所以,不要担心 logstash 会漏过你的数据。

sincedb文件中记录了每个被监听的文件的 inode number, major device number, minor device number和byte offset。

input {

    file {

        path => "/var/log/test.log"

        type => "test"

        sincedb_path => "/tmp/.sincedb_test"

        start_positon => "beginning"

path:文件路径,可使用通配符,如/var/log/*.log,/var/**/*.log(**表示递归所有子目录)

sincedb_path:定义sincedb文件的位置(默认在用户家目录下,只能是beginning,end)

start_position:从什么位置开始读取文件数据,默认是结束位置

kafka插件:

该插件从kafka中的topic中读取事件

    kafka {

        zk_connect => "10.10.10.6:2181,10.10.10.8:2181,10.10.10.9:2181"

        topic_id => "command_audit_log"

        codec => "json"

        consumer_threads => 5

        type => "command-audit"

zk_connect:zookeeper的主机名和端口

topic_id: 指定消费主题

consumer_threads:定义分区读取数据的线程数

本文转自 曾哥最爱 51CTO博客,原文链接:http://blog.51cto.com/zengestudy/1832820,如需转载请自行联系原作者

继续阅读