elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志

栏目: 服务器 · 发布时间: 6年前

前面有说过使用 redis 来缓解 elk 的数据接受压力,但是呢,如果 redis 面对突发情况也会承受不住的,这里需要借助两个工具, zookeeper kafka

Zookeeper 主要值借助分布式锁,保证事务的不变,原子性隔离性。。。

Kafka 消息队列,从生产这到 filebeta 再到消费这 logstash 接受到 es 中,起到缓存,减缓压力

来吧开始往上怼了

首先下载 zookeeper 和卡夫卡

wget http: //mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

wget http: //mirror.bit.edu.cn/apache/kafka/1.1.0/kafka_2.12-1.1.0.tgz

这里需要注意我是单台服务器安装的,要添加 hosts

elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志

这里 zookeeper 和卡夫卡的安装可以参考文档:

http://www.cnblogs.com/saneri/p/8822116.html

只需要 zookeeper kafka 参考就行了,注意修改 ip hostname

完成后验证:

elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志

elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志

Zookeeper+Kafka 集群测试

创建 topic

elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志

显示 topic

elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志

行了这个成功之后开始配置 filebeat ,这里换是收集 dockerswarm 集群的 tomat nginx 容器的日志

elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志

filebeat.prospectors:

- type: log

enabled: true

paths:

- /var/log/docker-nginx/access_json.log

fields:

log_topics: 192.168.9.36-nginx

- type: log

enabled: true

paths:

- /var/log/docker-tomcat/catalina.out

fields:

log_topics: 192.168.9.36-tomcat

#    include_lines: ['ERROR','WARN']

#    exclude_lines: ['DEBUG']

output.kafka:

enabled: true

hosts: ["node1:9092"]

topic: '%{[fields][log_topics]}'

partition.hash:

reachable_only: true

compression: gzip

max_message_bytes: 1000000

required_acks: 1

elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志

接下来配置 logstash

elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志

elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志

input {

kafka{

bootstrap_servers => "node1:9092"

topics => ["192.168.9.36-nginx","192.168.9.36-tomcat"]

codec => "json"

consumer_threads => 1

decorate_events => true

auto_offset_reset => "latest"

}

}

filter{

date{

match=>["logdate","MMM dd HH:mm:ss yyyy"]

target=>"@timestamp"

timezone=>"Asia/Shanghai"

}

ruby{

code =>"event.timestamp.time.localtime+8*60*60"

}

}

output {

if [fields][log_topics] == "192.168.9.36-nginx" {

elasticsearch {

hosts => ["http://192.168.9.142:9200"]

index => "192.168.9.36-nginx-%{[@metadata][version]}-%{+YYYY.MM.dd}"

}

}

if [fields][log_topics] == "192.168.9.36-tomcat" {

elasticsearch {

hosts => ["http://192.168.9.142:9200"]

index => "192.168.9.36-tomcat-%{[@metadata][version]}-%{+YYYY.MM.dd}"

}

}

}

完成后启动,然后测试一下

elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志

elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志

去查看一下

elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志

elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志

elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志


以上所述就是小编给大家介绍的《elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Convergence Culture

Convergence Culture

Henry Jenkins / NYU Press / 2006-08-01 / USD 30.00

"Convergence Culture" maps a new territory: where old and new media intersect, where grassroots and corporate media collide, where the power of the media producer, and the power of the consumer intera......一起来看看 《Convergence Culture》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具