3.Logstash配置语法

3.1 Logstash的语法

  • Logstash 设计了自己的 DSL,基本的语法功能包括有:
    • 区域
    • 注释
    • 数据类型(布尔值,字符串,数值,数组,哈希)  条件判断
    • 字段引用等

3.2 区段(section)

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


3.3 数据类型

  • Logstash 支持少量的数据值类型:
    • bool
      • debug => true
    • string
      • host => "hostname"
    • number
      • port => 514
    • array
      • match => ["datetime", "UNIX", "ISO8601"]
    • hash
      • options => {
      • key1 => "value1",
      • key2 => "value2"
      • }

3.4 字段引用(field reference)

  • 字段是Logstash::Event对象的属性
  • 如果想在Logstash配置中使用字段的值,只需要把字段的名字写在中括号[]里就行了,这就叫字段引用
  • 对于嵌套字段(也就是多维哈希表,或者叫哈希的哈希),每层的字段名都写在[]里就可以了。比如,可以从geoip里这样获取longitude值:
    • [geoip][location][0]
  • Logstash还支持变量内插,在字符串里使用字段引用的方法是这样:
    • "the longitude is %{[geoip][location][0]}"

3.5 条件判断(condition)

  • 表达式支持下面这些操作符:
    • == (等于), != (不等于), < (小于), > (大于), <= (小于等于), >= (大于等于) =~ (匹配正则), !~ (不匹配正则)
    • in (包含), not in (不包含)
    • and (与), or (或), nand(非与), xor(非或)
    • () (复合表达式), !() (对复合表达式结果取反)
  • 比如:


3.6 命令行启动Logstash

  • 命令格式
    • bin/logstash [options]
  • 示例:利用mypipeline.conf中配置启动logstash
    • bin/logstash -f mypipeline.conf

3.7 命令行参数

  • --node.name NAME
    • 指定Logstash实例的名字。如果没有指定的话,默认是当前主机名。
  • -f, --path.config CONFIG_PATH
    • 从指定的文件或者目录加载Logstash配置。
    • 如果给定的是一个目录,则该目录中的所有文件将以字典顺序连接,然后作为一个配置文件进行解析。
  • -e, --config.string CONFIG_STRING
    • 用给定的字符串作为配置数据,语法和配置文件中是一样的。
  • --modules
    • 运行的模块名字
  • -l, --path.logs PATH
    • Logstash内部日志输出目录
  • --log.level LEVEL
    • 日志级别
  • -t, --config.test_and_exit
    • 检查配置语法是否正确并退出
  • -r, --config.reload.automatic
    • 监视配置文件的改变,并且当配置文件被修改以后自动重新加载配置文件。
  • -config.reload.interval RELOAD_INTERVAL
    • 为了检查配置文件是否改变,而拉去配置文件的频率。默认3秒。
  • --http.host HTTP_HOST
    • Web API绑定的主机。REST端点绑定的地址。默认是"127.0.0.1"
  • --http.port HTTP_PORT
    • Web API http端口。REST端点绑定的端口。默认是9600-9700之间。
  • --log.format FORMAT
    • 指定Logstash写它自身的使用JSON格式还是文本格式。默认是"plain"。
  • --path.settings SETTINGS_DIR
    • 设置包含logstash.yml配置文件的目录,比如log4j日志配置。也可以设置LS_SETTINGS_DIR环境变量。默认的配置目录是在Logstash home目录下。
  • -h, --help
    • 打印帮助

大数据视频推荐:
腾讯课堂
CSDN
ELK入门精讲
AIOps智能运维实战
ELK7 stack开发运维
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

你可能感兴趣的:(3.Logstash配置语法)