

1 Logstash的语法
Logstash 设计了自己的 DSL,基本的语法功能包括有:
区域
注释
数据类型(布尔值,字符串,数值,数组,哈希) 条件判断
字段引用等
2 区段(section)
Logstash 用 {} 来定义区域。区域内可以包括插件区域定义,你可以在一个区域内定义多个插件。
插件区域内则可以定义键值对设置。示例如下:

3 数据类型
Logstash 支持少量的数据值类型:
options => {
key1 => "value1",
key2 => "value2"
}
match => ["datetime", "UNIX", "ISO8601"]
port => 514
host => "hostname"
debug => true
bool
string
number
array
hash
4 字段引用(field reference)
字段是Logstash::Event对象的属性
如果想在Logstash配置中使用字段的值,只需要把字段的名字写在中括号[]里就行了,这就叫字段引用
对于嵌套字段(也就是多维哈希表,或者叫哈希的哈希),每层的字段名都写在[]里就可以了。比如,可以从geoip里这样获取longitude值:
[geoip][location][0]
Logstash还支持变量内插,在字符串里使用字段引用的方法是这样:
"the longitude is %{[geoip][location][0]}"
5 条件判断(condition)
表达式支持下面这些操作符:
== (等于), != (不等于), < (小于), > (大于), <= (小于等于), >= (大于等于) =~ (匹配正则), !~ (不匹配正则)
in (包含), not in (不包含)
and (与), or (或), nand(非与), xor(非或)
() (复合表达式), !() (对复合表达式结果取反)
比如:

6 命令行启动Logstash
命令格式
bin/logstash [options]
示例:利用mypipeline.conf中配置启动logstash
bin/logstash -f mypipeline.conf
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
打印帮助
关注公众号:领取精彩视频课程&海量免费语音课程





