第四节 Logstash 基本配置

1、Logstash扮演的角色

  • Shipper: 承运商,托运人,发货人;
  • Broker: 经纪人; 中间人,代理人;
  • Indexer: 分度器,编索引的人;

2、基本配置语法

Logstash 设计了自己的DSL(domain specific language)

2.1、区段(section)

Logstash用{}来定义区域。区域内可以包括插件区域定义,你可以在一个区域内定义多个插件。插件区域则可以定义键值对设置。示例如下:

input
{
  stdin{}
  syslog{}
}

2.2、数据类型

Logstash 支持少量的数据值类型:

  • bool

    debug => true
    
  • string

    host => "hostname"
    
  • nubmer

    port => 514
    
  • array

    match =>["datetime", "UNIX", "ISO8601"]
    
  • hash

    options =>
    {
      key1 => "value1",
      key2 => "value2"
    }
    

2.3、字段引用(field reference)

2.4、条件判断(condition)

表达式支持下面这些操作符:

  • ==(等于), !=(不等于), <(小于), >(大于), <=(小于等于), >=(大于等于)
  • =~(匹配正则), !~(不匹配正则)
  • in(包含), not in(不包含)
  • and(与), or(或), nand(非与), xor(非或)
  • ()(复合表达式), !()(对复合表达式结果取反)

通常来说,你都会在表达式里用到字段引用。为了尽量展示全面各种表达式,下面虚拟一个示例:

if "_grokparsefailure" not in [tags] 
{

} 
else if [status] !~ /^2\d\d/ or ( [url] == "/noc.gif" nand [geoip][city] != "beijing" ) 
{

} 
else 
{

}

2.5、命令行参数

  • -e
    执行logstash程序

  • --config 或 -f
    引入配置文件,默认配置文件的路径为/etc/logstash/conf.d。如果直接使用“-f /etc/logstash/conf.d/“,会将该目录中所有配置文件,按照文件名的字母顺序进行加载。

  • --configtest 或 -t

用来测试Logstash读取到的配置文件语法是否能正常解析。Logstash配置语法是用grammar.treetop定义的。尤其是使用了上一条提到的读取目录方式的读者,尤其要提前测试。

  • --log 或 -l

Logstash默认输出日志到标准错误。生成环境下你可以通过bin/logstash -l logs/logstash.log 命令统一存储日志

  • --pipeline-workers 或 -w

运行filter和output的pipeline线程数量。默认是cpu的核数。

  • --pipeline-batch-size 或 -b

每个Logstash Pipeline线程,在执行具体的filter和output函数之前,做多能积累的日志条数。默认是125条。这个值越大Logstash的性能会越好,同样也会消耗越多的JVM内存。

  • --pipeline-batch-delay 或 -u

每个Logstash pipeline线程,在打包批量日志的时候,最多等待几毫秒。默认是5ms

  • --pluginpath 或 -P

可以写自己的插件,然后用该参数加载它们。

  • --verbose

输出一定的调试日志

  • --debug

输出更多的调试日志

3、实现长期运行

results matching ""

    No results matching ""