logstash 配置文件编写详解

说明

它一个有jruby语言编写的运行在java虚拟机上的具有收集分析转发数据流功能的工具
能集中处理各种类型的数据
能标准化不通模式和格式的数据
能快速的扩展自定义日志的格式
能非常方便的添加插件来自定义数据

通过在配置文件编写输入(input),过滤(filter),输出(output)相关规则,对数据收集转发。

配置文件编写语法

数据类型
boolen: 布尔 a => true
Bytes: 字节 a => “10MiB”
Strings:字符串 a => “hello world”
Number: 数值 a => 1024
Array: 数组 match => [“datatime”,“UNIX”,“ISO8601”]
Hash: 哈希 options => { key1 => “value1”,key2 => “value2” }
编码解码: codec: codec => “json”
密码型: my_passwd => “password”
路径: my_path => “/tmp/logstash”
注释: #

条件判断
==,!= ,< ,> ,<= ,>=
=~
in,not in
and ,or , nand, xor
(), !()
if expression {
} else if expression {

} else {

}

字段引用
%{[response][status]}

实例配置操作
# 输入
input {
...
} # 过滤器
filter {
...
} # 输出
output {
...
}

input实例

input {
# file为常用文件插件,插件内选项很多,可根据需求自行判断
file {
path => "/var/log/httpd/access_log" # 要导入的文件的位置,可以使用*,例如/var/log/nginx/*.log
Excude =>”*.gz” # 要排除的文件
start_position => "beginning" # 从文件开始的位置开始读,默认是end
ignore_older => 0 # 多久之内没修改过的文件不读取,0为无限制,单位为秒
sincedb_path => "/dev/null" # 记录文件上次读取位置;输出到null表示每次都从文件首行开始解析
add_field=>{"test"="test"} # 增加一个字段
type => "apache-log" # type字段,可表明导入的日志类型
}
}

input拥有多个插件,选择对应的插件获取相应的数据。相关链接:input相关插件

filter实例
插件grok插件
grok插件有非常强大的功能,他能匹配一切数据,但是他的性能和对资源的损耗同样让人诟病。相关插件:filter相关插件链接

方法一:
filter{
grok{
#首先要说明的是,所有文本数据都是在Logstash的message字段中的,我们要在过滤器里操作的数据就是message。
#只说一个match属性,他的作用是从message 字段中把时间给抠出来,并且赋值给另个一个字段logdate。
#第二点需要明白的是grok插件是一个十分耗费资源的插件。
#第三点需要明白的是,grok有超级多的预装正则表达式,这里是没办法完全搞定的,也许你可以从这个大神的文章中找到你需要的表达式
#http://blog.csdn.net/liukuan73/article/details/52318243
#但是,我还是不建议使用它,因为他完全可以用别的插件代替,当然,对于时间这个属性来说,grok是非常便利的。 match => ['message','%{TIMESTAMP_ISO8601:logdate}']
}
} 方法二:
filter {
grok {
match => {"message"=>"%{IPORHOST:clientip}\s+%{WORD:method}\s+%{URIPATHPARAM:request}\s+%{NUMBER:bytes}\s+%{NUMBER:duration}"}
}
}

output实例
插件elasticsearch,相关插件链接地址:output插件地址

 elasticsearch{
hosts=>["10.0.0.11:9200"] # elasticsearch 地址 端口
action=>"index" # 索引
index=>"indextemplate-logstash" # 索引名称
#document_type=>"%{@type}"
document_id=>"ignore" template=>"/opt/logstash-conf/es-template.json" # 模板文件的路径
template_name=>"es-template.json" # 在es内部模板的名字
template_overwrite=>true #
protocol => "http" #目前支持三种协议 node、http 和tranaport
}

Logstash配置文件详情的更多相关文章

  1. Logstash配置文件介绍

    Logstash配置文件介绍 Logstash配置文件有两种,分别是pipeline配置文件和setting配置文件. Pipeline配置文件主要定义logstash使用的插件以及每个插件的设置,定 ...

  2. logstash配置文件

    1. 安装  logstash 安装过程很简单,直接参照官方文档: https://www.elastic.co/guide/en/logstash/current/installing-logsta ...

  3. 【ELK】抓取AWS-ELB日志的logstash配置文件

    前言 ELK搭建没有难度,难的是logstash的配置文件,logstash主要分为三个部分,input,filter和output. input,输入源可选的输入源由很多,详情见ELK官网,这里我们 ...

  4. logstash 配置文件实例

    这个配置文件记不起来是从那个地方下载的来的了,感谢那位无私的朋友 input {  beats {            #shipper 端用的是 filebeat,所以用这个插件     port ...

  5. ELK之Logstash配置文件详解

    Logstash 是一个开源的数据收集引擎,它具有备实时数据传输能力.它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地.它以插件的形式来组织功能,通过配置文件来描述需要插件做什么, ...

  6. logstash配置文件详解

     logstash pipeline 包含两个必须的元素:input和output,和一个可选元素:filter. 从input读取事件源,(经过filter解析和处理之后),从output输出到目标 ...

  7. logstash 配置文件语法

    需要一个配置文件 管理输入.过滤器和输出相关的配置.配置文件内容格式如下: # 输入 input { ... } # 过滤器 filter { ... } # 输出 output { ... } 先来 ...

  8. 坚持不懈之linux haproxy 配置文件 详情

    ####################全局配置信息######################## #######参数是进程级的,通常和操作系统(OS)相关######### global maxc ...

  9. eclipse 新建 maven 项目 添加 spring hibernate 的配置文件 详情

    主要配置文件 pom.xml 项目的maven 配置文件 管理项目所需 jar 依赖支持 web.xml 项目的总 配置文件  :添加 spring和hibernate 支持 applicationC ...

随机推荐

  1. WEEX-EROS开发小笔记

    本文是作者之前刚接触移动端跨平台开发,使用weex-eros开发项目平日里记下来的一些笔记,分享出来方便为新手解惑,weex-eros是weex的一套解决方法,使用vue语法糖,对于前端开发者来说可以 ...

  2. AES apache commons-crypto 对称加密

    apache实现的AES256加密 官方用户指导链接:http://commons.apache.org/proper/commons-crypto/userguide.html 官方字节缓存实现的例 ...

  3. Vue:替换/合并现有的特性

    假设这是 bs-date-input 的模板: <input type="date" class="form-control"> 为了给该日期选择器 ...

  4. 第03章 AOP前奏

    第03章 AOP前奏 提出问题 ●情景:数学计算器 ●要求 ①执行加减乘除运算 ②日志:在程序执行期间追踪正在发生的活动 ③验证:希望计算器只能处理正数的运算 ●常规实现 ●问题 ○代码混乱:越来越多 ...

  5. mysql中的key primary key 和unique key

    mysql 中key就等同于index 所以 key:普通索引 unique key:唯一索引,就是这一列不能重复 primary key:主键索引,就是不能为空,且主键索引不是完全相同时,插入新数据 ...

  6. linux清理缓存

    在free -h中查看自己的内存发现在运行一段时间后,有很多内存都被缓存占用, 所以要清理下缓存,增大可用内存 直接进入root账户,输入以下命令 echo 3 > /proc/sys/vm/d ...

  7. js中给数组添加元素的方法有哪些

    unshift:将参数添加到原数组开头,并返回数组的长度 pop:删除原数组最后一项,并返回删除元素的值:如果数组为空则返回undefined push:将参数添加到原数组末尾,并返回数组的长度 co ...

  8. Halo(十二)

    @RequestBody @ResponseBody @RequestBody 1) 该注解用于读取 Request 请求的 body 部分数据,使用系统默认配置的 HttpMessageConver ...

  9. excel VBA 编程

    Dim cuttent_columns As Integer Dim care_repeat As Integer Private Sub Workbook_Open() Dim i As Integ ...

  10. 跨域共享cookie

    1. JSP中Cookie的读写 Cookie的本质是一个键值对,当浏览器访问web服务器的时候写入在客户端机器上,里面记录一些信息.Cookie还有一些附加信息,比如域名.有效时间.注释等等. 下面 ...