Logstash 基本数据类型及运行参数

2015-12-08 22:48:13   最后更新: 2015-12-08 22:48:13   访问数量:981




一般的,监控收集模型如下图所示:

 

有时根据具体的情况可以选择不使用 Broker 或 Shipper,或者换用其他组件,这套系统也因此变得十分灵活

 

区段 -- section

Logstash 用 {} 来定义区域,区域内可以包括插件和区域的定义,可以在一个区域内定义多个插件,:

input { stdin {} syslog {} }

 

 

数据类型

Logstash 只支持下面几个数据类型:

 

  • bool -- debug => ture
  • string -- host => "hostname"
  • number -- port => 3306
  • array -- match => ["datetime", "techlog"]
  • hash -- options => {key1 => "value1", key2 => "value2"}

 

  • 注意,1.2.0 以下版本,哈希表数据类型使用 array 来表示 -- options => ["key1", "value1", "key2", "value2"}

 

字段引用  -- field reference

Lostash 的字段是 Logstash::Event 对象的属性,“字段”在这里指的就是键值对

"the longitude is %{[geoip][location][0]}"

这条语句取到了 geoip 数组 key 为 location 的第一个元素的值并嵌入字符串,数组的下标可以为负数,表示从末尾数起

 

条件判断 -- condition

Logstash 从 1.3.0 开始支持条件判断和表达式

 

有如下操作符:

  • ==、!=、<、>、<=、>=
  • =~(正则匹配)、!~(不匹配正则)
  • in(包含)、not in
  • and、or、nand(非与)、xor(异或)
  • ()(复合表达式)、!()(对复合表达式取反)

 

if "_grokparsefailure" not in [tags] { } else if [status] !~ /^2\d\d/ or ( [url] == "/techlog" nand [geoip][city] != "beijing" ) { } else { }

 

 

-e、-f

-e 参数的内容是实际的配置代码,-f 则用来指定配置文件,如果 -f 指定的是一个目录,那么,目录下所有的 .conf 文件都会被读取,并拼成一个完整的大配置文件再执行,拼装的顺序是按照文件的字符串排序顺序,因此如何命名你的文件是十分重要的

比较推荐的方法是使用数字前缀来管理、命名同一目录下的多个配置文件

 

--configtest、-t

测试配置文件是否正确

 

--log、-l、--verbose、--debug

默认的,Logstash 将日志打印到 stderr,通过 -l 或 --log 参数可以指定统一存储的日志文件

而 --verbose 则输出部分调试日志

--debug 则输出更多调试日志

 

--filterworkers、-w

工作线程数,Logstash 会强制将过滤插件运行指定数目个县城

但这个命令只能用来设置过滤插件

 

--pluginpath、-p

--pluginpath 或 -p 参数指定插件位置并安装,你可以编写自己的插件并执行该命令安装他们

 

--allow-unsafe-shutdown

当 Logstash 接收到 SIGTERM 信号时,如果指定了该参数,则等待最后一个任务执行后退出

 






技术帖      web      apache      龙潭书斋      server      webserver      logstash      监控      elk      elkstack      monitor      服务端     


京ICP备15018585号