logstash kv插件解析日志时,日志value中包含field_split切割字符,导致value截取不完整。
Logstash • qw8613243 回复了问题 • 3 人关注 • 2 个回复 • 6910 次浏览 • 2018-09-04 18:21
logstash 导入 elasticsearch,elasticsearch-head集群概览会显示Unassigned
Elasticsearch • Jing Ye 回复了问题 • 3 人关注 • 3 个回复 • 2901 次浏览 • 2018-09-04 17:25
es能在聚合结果中显示每个桶里文档内容吗?
Elasticsearch • bsll 回复了问题 • 3 人关注 • 1 个回复 • 4886 次浏览 • 2018-09-04 17:01
Filebeat在配置文件中配置了自身的日志输出,怎样修改日志输出的格式
Beats • chzhty001 回复了问题 • 3 人关注 • 5 个回复 • 8267 次浏览 • 2018-09-04 16:36
ES数据节点load负载过高
Elasticsearch • lei2018 回复了问题 • 4 人关注 • 2 个回复 • 4382 次浏览 • 2018-09-04 14:47
通过 metadata 使logstash配置更简洁
Logstash • Leon J 发表了文章 • 0 个评论 • 11272 次浏览 • 2018-09-04 13:17
从Logstash 1.5开始,我们可以在logstash配置中使用metadata。metadata不会在output中被序列化输出,这样我们便可以在metadata中添加一些临时的中间数据,而不需要去删除它。
我们可以通过以下方式来访问metadata:
<br /> [@metadata][foo]<br />
用例
假设我们有这样一条日志:
<br /> [2017-04-01 22:21:21] production.INFO: this is a test log message by leon<br />
我们可以在filter中使用grok来做解析:
ruby<br /> grok {<br /> match => { "message" => "\[%{TIMESTAMP_ISO8601:timestamp}\] %{DATA:env}\.%{DATA:log_level}: %{DATA:content}" }<br /> }<br />
解析的结果为
ruby<br /> {<br /> "env" => "production",<br /> "timestamp" => "2017-04-01 22:21:21",<br /> "log_level" => "INFO",<br /> "content" => "{\"message\":\"[2017-04-01 22:21:21] production.INFO: this is a test log message by leon\"}"<br /> }<br />
假设我们希望
- 能把log_level为INFO的日志丢弃掉,但又不想让该字段出现在最终的输出中
- 输出的索引名中能体现出env,但也不想让该字段出现在输出结果里
对于1,一种方案是在输出之前通过mutate插件把不需要的字段删除掉,但是一旦这样的处理多了,会让配置文件变得“不干净”。
通过 metadata,我们可以轻松地处理这些问题:
ruby<br /> grok {<br /> match => { "message" => "\[%{TIMESTAMP_ISO8601:timestamp}\] %{DATA:[@metadata][env]}\.%{DATA:[@metadata][log_level]}: %{DATA:content}" }<br /> }<br /> <br /> if [@metadata][log_level] == "INFO"{<br /> drop{} <br /> }<br /> <br /> output{<br /> elasticsearch {<br /> hosts => ["127.0.0.1:9200"]<br /> index => "%{[@metadata][env]}-log-%{+YYYY.MM}"<br /> document_type => "_doc"<br /> }<br /> }<br />
除了简化我们的配置文件、减少冗余字段意外,同时也能提高logstash的处理速度。
Elasticsearch input插件
有些插件会用到metadata这个特性,比如elasticsearch input插件:
```ruby
input {
elasticsearch {
host => "127.0.0.1"把 ES document metadata (_index, _type, _id) 包存到 @metadata 中
docinfo_in_metadata => true
}
}
filter{
......
}
output {
elasticsearch {
document_id => "%{[@metadata][_id]}"
index => "transformed-%{[@metadata][_index]}"
type => "%{[@metadata][_type]}"
}
}
```
调试
一般来说metadata是不会出现在输出中的,除非使用 rubydebug codec 的方式输出:
<br /> output { <br /> stdout { <br /> codec => rubydebug {<br /> metadata => true<br /> }<br /> }<br /> }<br />
日志经过处理后输出中会包含:
ruby<br /> {<br /> ....,<br /> "@metadata" => {<br /> "env" => "production",<br /> "log_level" => "INFO"<br /> }<br /> }<br />
总结
由上可见,metadata提供了一种简单、方便的方式来保存中间数据。这样一方面减少了logstash配置文件的复杂性:避免调用remove_field
,另一方面也减少了输出中的一些不必要的数据。通过这篇对metadata的介绍,希望能对大家有所帮助。

社区日报 第384期 (2018-09-04)
社区日报 • kimichen123 发表了文章 • 0 个评论 • 2352 次浏览 • 2018-09-04 12:41
http://t.cn/RFBHC1p
2.使用elastichq监控Elasticsearch机器。
http://t.cn/RFBHHLy
3.使用ELK分析应用事件和日志。
http://t.cn/RFBHnLN
活动预告
1、Elastic 中国开发者大会门票发售中
https://conf.elasticsearch.cn/2018/shenzhen.html
2、Elastic Meetup 9月8日 北京线下交流活动免费报名中
https://elasticsearch.cn/article/759
编辑:叮咚光军
归档:https://elasticsearch.cn/article/785
订阅:https://tinyletter.com/elastic-daily
测试logstatsh 接收kafka topic 性能有这么低嘛?
回复Logstash • zhangshuai 发起了问题 • 1 人关注 • 0 个回复 • 1873 次浏览 • 2018-09-04 11:54
ES2.3.1 单笔存入的数据有没有大小,字符长度的限制
Elasticsearch • God_lockin 回复了问题 • 2 人关注 • 2 个回复 • 1128 次浏览 • 2018-09-04 11:17
如果被filebeat监控的文件每天都是定时覆盖更新,filebeat会每天抓取到所有的更新内容吗?
Beats • Dm 回复了问题 • 2 人关注 • 1 个回复 • 4919 次浏览 • 2018-09-04 10:55
从sql server里向es导数据,现在用的logstash速度大概700条每秒,要导亿级数据,有什么比较快的方法吗?
Elasticsearch • zqc0512 回复了问题 • 6 人关注 • 3 个回复 • 1539 次浏览 • 2018-09-04 09:00
elasticsearch机器负载load average突然飙升问题求解决
Elasticsearch • zqc0512 回复了问题 • 9 人关注 • 5 个回复 • 9335 次浏览 • 2018-09-04 08:58
kibana 添加的scripted field如何使用 vega绘制图片,请大神指教
回复Kibana • luzhx0 发起了问题 • 1 人关注 • 0 个回复 • 4779 次浏览 • 2018-09-03 23:01
es的data.path相关问题
Elasticsearch • chzhty001 回复了问题 • 3 人关注 • 5 个回复 • 3678 次浏览 • 2018-09-03 20:34
filebeat收集单行日志文件失败
Beats • JackGe 回复了问题 • 2 人关注 • 1 个回复 • 1727 次浏览 • 2018-09-03 20:19