output {
elasticsearch {
hosts => ["localhost:9200"]
index=>"mongodb-slow-log-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug }
}
Item | Comment |
---|---|
output { | 框定出口的定义范围 |
elasticsearch { | 定义了一个出口,使用 elasticsearch 插件来进行输出,将结果输出到ES中 |
hosts => ["localhost:9200"] | 指定es的目标地址为 localhost:9200 |
index=>"mongodb-slow-log-%{+YYYY.MM.dd}" | 指定存到哪个index,如不指定,默认为logstash-%{+YYYY.MM.dd} |
stdout { codec => rubydebug } | 定义了一个出口,使用 stdout 插件将信息输出到标准输,也就是终端,并且使用 rubydebug 插件处理过后进行展示,也就是行成jason格式 (生产不会这样配置,一般用来进行交互调试) |
%{TIMESTAMP_ISO8601:timestamp}\s+%{MONGO3_SEVERITY:severity}\s+%{MONGO3_COMPONENT:component}%{SPACE}(?:\[%{DATA:context}\])?\s+%{GREEDYDATA:body}
Item | Comment |
---|---|
%{TIMESTAMP_ISO8601:timestamp} | 将匹配 TIMESTAMP_ISO8601 模式的结果放到 timestamp 中 |
\s+ | 匹配一个或多个空字符 |
(?:\[%{DATA:context}\])? | 内容可能有,也可能无,如果有,以 [ 开头,且以 ] 结尾,中间的任何内容放到 context 中 |
Tip: 可以参考 mongodb patterns 中的匹配设置 ,
MONGO3_LOG %{TIMESTAMP_ISO8601:timestamp} %{MONGO3_SEVERITY:severity} %{MONGO3_COMPONENT:component}%{SPACE}(?:\[%{DATA:context}\])? %{GREEDYDATA:message}
,我将最后的部分存入了body,不然会存到原来的 message 字段中, 使message变成一个列表,内容变成 message中的第二个元素,然后将空格替换成了\s+
,这样会更消耗计算资源,但是更严谨
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。