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]}

实例配置操作
  1. # 输入
  2. input {
  3. ...
  4. }
  5. # 过滤器
  6. filter {
  7. ...
  8. }
  9. # 输出
  10. output {
  11. ...
  12. }

input实例

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

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

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

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

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

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

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. go web编程——实现一个简单分页器

    在go web编程中,当需要展示的列表数据太多时,不可避免需要分页展示,可以使用Go实现一个简单分页器,提供各个数据列表展示使用.具体需求:1. 可展示“首页”和“尾页”.2. 可展示“上一页”和“下 ...

  2. C# IEnumerable与IQueryable ,IEnumerable与IList ,LINQ理解Var和IEnumerable

    原文:https://www.cnblogs.com/WinHEC/articles/understanding-var-and-ienumerable-with-linq.html 使用LINQ从数 ...

  3. springcloud费话之Eureka集群

    目录: springcloud费话之Eureka基础 springcloud费话之Eureka集群 springcloud费话之Eureka服务访问(restTemplate) springcloud ...

  4. oooooooooooooooo

    安装后打开mysqld配置项加入skip-grant-tables可以无密码登录,登录进去后修改密码修改成功删除skip-grant-tables mysql> select user, plu ...

  5. OS库的使用

    Python中有关OS库的使用 路径操作 os.path.abspath(path) 返回path在当前系统中的绝对路径 os.path.normpath(path) 归一化path的表示形式,统一用 ...

  6. vue,一路走来(6)--微信支付

    微信支付 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6 分享一下vue实现微信支付.在微信浏览器里面 ...

  7. 八皇后问题 -- python面向对象解法

    # [8*8棋盘八皇后问题] class Queen: def __init__(self, row, col): self.row = row self.col = col self.pos = ( ...

  8. apt-get update 101错误解决办法

    在一次装好Ubuntu系统, 执行 sudo apt-get update 时,报了错 " W: Failed to fetch http://security.ubuntu.com/ubu ...

  9. D3笔记01——D3简介与安装

    1 D3简介 发布于2011年,全称Data-Driven Documents,直译为“数据驱动的文档”. 简单概括为一句话:D3是一个Javascript的函数库,是用来做数据可视化的.文档指DOM ...

  10. webpack 图片文件处理loader

    目录结构: 引用图片: body { /*background: red;*/ /*background: url("../img/test2.jpg"); 小图片*/ backg ...