概述
前几天在面试的时候,面试官问EFK日志系统怎么只获取default命名空间的程序的日志,日志量特别多怎么办,很遗憾我没有回答上来,也错过这个offer,知道了自己的不足,就有了进步的空间,经过几天的查找,终于找到了解决方案。
解决日志量特别多,需要引入消息队列消峰,减轻elasticsearch的压力。在引入了kafka后,必须在引入logstash,获得filebeat数据流,推送到elasticsearch
如何安装filebeat、kafka、logstash、elasticsearch、kibana这里不做阐述。
操作
这里主要讲下logstash的配置 logstash.conf
input{
kafka{
bootstrap_servers => "192.168.0.21:9092"
topics => "msg"
consumer_threads => 10
decorate_events => true
codec => "json"
auto_offset_reset => "latest"
}
}
filter {
if ([kubernetes][namespace] != "default") {
drop {}
}
}
output{
elasticsearch {
hosts => ["10.96.234.193:9200"]
index => "filebeat-%{+YYYY.MM.dd}"
}
}
详解:
从kafka中抓取数据流,经过过滤,再写入elasticsearch.