是什么
Logstash is a tool for managing events and logs. You can use it to collect logs, parse them, and store them for later use (like, for searching). -- http://logstash.net
Logstash 就像管道符一样!
你输入(就像命令行的 cat
)数据,然后处理过滤(就像awk
或者uniq
之类)数据,最后输出(就像 tee
)到其他地方。
Logstash 不只是一个input | filter | output
的数据流,而是一个 input | decode | filter | encode | output
的数据流!
实现方式
logstash用不同的线程来实现接受输入,处理过滤,输出这些动作的。
数据在不同线程之间以事件的形式流转。
事实上事件就是一个 Ruby 对象,或者更简单的理解为就是一个哈希也行。
logstash会给事件添加一些额外信息。如
-
@timestamp
标记事件的发生时间。是一个内部流转用的joda对象,请使用 filters/date 插件 来管理这个特殊字段。 -
host
标记事件发生在哪里。 -
type
标记事件的唯一类型。 -
tags
标记事件的某方面属性。这是一个数组,一个事件可以有多个标签。
小贴士:每个 logstash 过滤插件,都会有四个方法叫 add_tag
, remove_tag
, add_field
和 remove_field
。它们在插件过滤匹配成功时生效。
问题咨询
logstash 是一个开放的,极其互助和友好的大家庭。有任何问题,尽管在 github issue,Google groups,Freenode#logstash channel 上发问就好!