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)插件。
这个就是指定了file插件,来处理file类型的日志。
3.值类型:
同时logstash配置语言也像普通语言一样,是具有值类型的,大概分为
Boolean,sting,array,number,hash。
4..值引用:
在logstash中的所有属性叫做字段。
5.格式化:
可以通过动态的指定格式来保存输出的日志,例如下面的配置就是使用返回的状态值来动态的格式输出保存apache日志:
在logstash中也可以使用条件语句,其语法如下:
equality, etc: == != < > <= >=
regexp: =~ !~
inclusion: in, not in
boolean运算符如下:
and, or, nand, xor
6.3.同时判断条件也可以是一个,表达式,例如:
!
6.4.同时也可以使用正则表达式来进行判断。官方示例如下:
转载注明出处,谢谢,同时也可以关注我的公众帐号:程序猿不是于小炳,
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来搭建真正的日志收集系统。
转载注明出处,谢谢,同时也可以关注我的公众帐号:程序猿不是于小炳,
相关文章推荐
- 开源组件ELK日志系统配置与管理
- logstash开源日志管理系统-1-logstash是什么
- 开源组件ELK日志系统配置与管理
- 适易信息管理系统架构、配置实现增删改查中工具类介绍
- Linux系统管理实践(12):Syslog系统日志配置
- 一共81个,开源大数据处理工具汇总:查询引擎、流式计算、迭代计算、离线计算、键值存储、表格存储、文件存储、资源管理、日志收集系统、消息系统、分布式服务、集群管理、基础设施、搜索引擎、数据挖掘=监控
- logstash+elasticsearch +kibana 日志管理系统
- 几款常见的PHP开源文档管理系统介绍
- Centos7 之安装Logstash ELK stack 日志管理系统
- Linux系统安全工具之:日志管理工具介绍
- java解析XML配置文件及log4j开源日志系统
- 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等
- RHCE 系列(五):如何在 RHEL 7 中管理系统日志(配置、轮换以及导入到数据库)
- Java语言介绍(04)开源项目(05)博客系统(01)Roller Weblogger
- RDIFramework.NET — 基于.NET的快速信息化系统开发框架- 5.4平台日志、异常管理、生成自动升级配置文件模块
- RDIFramework.NET — 基于.NET的快速信息化系统开发框架- 5.4平台日志、异常管理、生成自动升级配置文件模块
- Centos7 之安装Logstash ELK stack 日志管理系统
- 170228、Linux操作系统安装ELK stack日志管理系统--(1)Logstash和Filebeat的安装与使用
- 开源资产管理软件—OCS Inventory NG+ GLPI 系统安装配置UTF-8版 支持中文
- logAnalyzer日志管理系统配置实例