您的位置:首页 > 其它

logstash开源日志管理系统-2-logstash配置语言介绍

2014-01-17 16:53 886 查看
接着上面一篇,今天说一下logstash配置文件的基本语法,相信看过昨天那篇的人,应该会对logstash的配置有那么点点感性的理解,但是还是不够详细,所以今天要详细的说说,关于语法什么的是比较枯燥的,所以本身没有什么太多讲的,只要准确无误,则就基本对得起读文章的人了,所以我这里基本都是引用logstash的官方文档,如果您有什么疑惑,可以直接看官方文档,http://logstash.net/docs/1.3.2/configuration ,看文档,实际上一个程序员最基本的素养,ok,现在就来细细的说说logstash的语法细节。

1.在logstash配置文件

我们可能注意到它的官网或是其他写logstash的人都会说到什么负责日志收集的logstash,和什么负责处理处理日志的logstash,但实际上无论作为shipper的logstash还是作为indexer的logstash只与其配置文件有关,所以我只要掌握了logstash的配置文件的写法就可以很好的使用它来收集并处里日志了。

其配置文件一般分为三部分,大致如下:
input { #输入到logstash中的内容,
...
}
filter {#拦截器,logstash对指定的内容进行拦截,然后收集这些指定的内容
...
}
output {#输出,logstash将收集到的日志内容输出到指定输出中
...
}

从这我们就能看出来logstash的配置实际上只有三大块,而组成这三大块的就是logstash比较强大的插件,比如redis,elsticsearch,log4j,grok,grep等等,如下就指定了两个文件类型的输入(input)插件。
input {
file {
path => "/var/log/messages"
type => "syslog"
}
file {
path => "/var/log/apache/access.log"
type => "apache"
}
}


这个就是指定了file插件,来处理file类型的日志。

3.值类型:

同时logstash配置语言也像普通语言一样,是具有值类型的,大概分为

Boolean,sting,array,number,hash。

4..值引用:

在logstash中的所有属性叫做字段。

5.格式化:

可以通过动态的指定格式来保存输出的日志,例如下面的配置就是使用返回的状态值来动态的格式输出保存apache日志:

output {
statsd {
increment => "apache.%{[response][status]}"
}
}
我们再开看一个logstash来处理时间格式的,
output {
file {
path => "/var/log/%{type}.%{+yyyy.MM.dd.HH}"
}
}
6.条件语句

在logstash中也可以使用条件语句,其语法如下:
if EXPRESSION {
...
} else if EXPRESSION {
...
} else {
...
}
6.1.同时条件语句支持的比较运算符如下;

equality, etc: == != < > <= >=

regexp: =~ !~

inclusion: in, not in

boolean运算符如下:

and, or, nand, xor

6.3.同时判断条件也可以是一个,表达式,例如:
filter {
if [action] == "login" {
mutate { remove => "secret" }
}
}
一元运算符如下:

!

6.4.同时也可以使用正则表达式来进行判断。官方示例如下:
output {
if [type] == "apache" {
if [status] =~ /^5\d\d/ {
nagios { ... }
} else if [status] =~ /^4\d\d/ {
elasticsearch { ... }
}
statsd { increment => "apache.%{status}" }
}
}
6.5.在logstash中也可以使用多个表达式来进行判断,范例如下:
output {
# Send production errors to pagerduty
if [loglevel] == "ERROR" and [deployment] == "production" {
pagerduty {
...
}
}
}
这大概就是logstash的配置文件的基本语法,明天或者今晚我还会再讲讲如何在实际的场合中搭建logstash,同时使用redis,kibana,elasticsearch,logstash来搭建真正的日志收集系统。

转载注明出处,谢谢,同时也可以关注我的公众帐号:程序猿不是于小炳,





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  logstash
相关文章推荐