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容器日志》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

高性能JavaScript

高性能JavaScript

Nicholas C.Zakas / 丁琛、赵泽欣 / 电子工业出版社 / 2010-11 / 49.00元

如果你使用JavaScript构建交互丰富的Web应用,那么JavaScript代码可能是造成你的Web应用速度变慢的主要原因。《高性能JavaScript》揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的加载、运行、DOM交互、页面生存周期等。雅虎的前端工程师Nicholas C. Zakas和其他五位JavaScript专家介绍了页面代码加载的最佳方......一起来看看 《高性能JavaScript》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码