我们的项目是将logstash的整个 .conf文件通过页面表单交互方式配置生成出来,这里放一个设计图纸
总体来讲:
一个conf文件包含三个Block(input,filter,output),每个Block由若干个具体的Plugin组成,每个Plugin包含若干个Setting
每个Setting由settingName和ValueType对应的具体值组成
具体的三大插件,这篇不做详述,参考官网,这里主要讲Value Type
上图中,每个setting需要一个具体的确定的value type,支持的value type如下
[ {id => 1, name => bob}, {id => 2, name => jane} ]
看起来像java的list,又像jsonArray,不过这里是用"=>",而不是"=",这个列子中list内部是一个hash,元素间用逗号隔开,开闭是方括号[ ]
match => { "field1" => "value1" "field2" => "value2" ... } # or as a single line. No commas between entries: match => { "field1" => "value1" "field2" => "value2" }
这个例子是match这个setting的值,看起来又像java的HashMap,hash是键值对的集合,注意:键值对之间使用空格隔开,而非逗号,可以写在同一行
port => 33
这个很好理解,logstash要求number是integer或float,非常明确
由单引号或双引号包围的字符序列
值为true或false,注意是小写,不带引号,和java基本一致
codec => "json"
用于对数据进行encode和decode,仅在input和output插件中使用
用的很少,其实就是一些特殊的string
使用较少
注释,用# 号表示注释
转义字符,很好理解
\r:carriage return (ASCII 13) \n:new line (ASCII 10) \t:tab (ASCII 9) \\:backslash (ASCII 92) \":double quote (ASCII 34) \‘:single quote (ASCII 39)
logstash系列-Config File结构和Value Type
原文:https://www.cnblogs.com/yb38156/p/13085113.html