前面有说过使用 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
这里 zookeeper 和卡夫卡的安装可以参考文档:
http://www.cnblogs.com/saneri/p/8822116.html
只需要 zookeeper 和 kafka 参考就行了,注意修改 ip 和 hostname
完成后验证:
Zookeeper+Kafka 集群测试
创建 topic :
显示 topic :
行了这个成功之后开始配置 filebeat ,这里换是收集 dockerswarm 集群的 tomat 和 nginx 容器的日志
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
接下来配置 logstash
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容器日志》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 容器化日志收集方案-EFK
- 使用Fluentd收集Docker容器日志
- 容器服务Windows Kubernetes使用阿里云日志服务来收集容器日志
- k8s容器日志收集方案
- JVM 笔记:垃圾收集算法与垃圾收集器
- JVM 笔记:垃圾收集算法与垃圾收集器
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
高性能JavaScript
Nicholas C.Zakas / 丁琛、赵泽欣 / 电子工业出版社 / 2010-11 / 49.00元
如果你使用JavaScript构建交互丰富的Web应用,那么JavaScript代码可能是造成你的Web应用速度变慢的主要原因。《高性能JavaScript》揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的加载、运行、DOM交互、页面生存周期等。雅虎的前端工程师Nicholas C. Zakas和其他五位JavaScript专家介绍了页面代码加载的最佳方......一起来看看 《高性能JavaScript》 这本书的介绍吧!
CSS 压缩/解压工具
在线压缩/解压 CSS 代码
URL 编码/解码
URL 编码/解码