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

前面有说过使用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}"

}

}

}

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

去查看一下

原文地址:http://blog.51cto.com/xiaorenwutest/2153575

时间: 2024-09-30 00:06:11

elk6.3.1+zookeeper+kafka+filebeat收集dockerswarm容器日志的相关文章

6.3.1版本elk+redis+filebeat收集docker+swarm日志分析

最近公司比较忙,没来的及更新博客,今天为大家更新一篇文章,elk+redis+filebeat,这里呢主要使用与中小型公司的日志收集,如果大型公司 可以参考上面的kafka+zookeeper配合elk收集,好了开始往上怼了: Elk为了防止数据量突然键暴增,吧服务器搞奔溃,这里需要添加一个redis,让数据输入到redis当中,然后在输入到es当中 Redis安装: #!/bin/bash # 6379  Redis-Server tar zxf redis-3.0.0-rc5.tar.gz

日志系统之基于flume收集docker容器日志

最近我在日志收集的功能中加入了对docker容器日志的支持.这篇文章简单谈谈策略选择和处理方式. 关于docker的容器日志 docker 我就不多说了,这两年火得发烫.最近我也正在把日志系统的一些组件往docker里部署.很显然,组件跑在容器里之后很多东西都会受到容器的制约,比如日志文件就是其中之一. 当一个组件部署到docker中时,你可以通过如下命令在标准输出流(命令行)中查看这个组件的日志: docker logs ${containerName} 日志形如: 但这种方式并不能让你实时获

efk收集k8s 容器日志安装记录

部署环境 $ kubectl get node NAME STATUS ROLES AGE VERSION master01 Ready master 13d v1.14.0 master02 Ready master 13d v1.14.0 master03 Ready master 13d v1.14.0 node01 Ready <none> 13d v1.14.0 node02 Ready <none> 13d v1.14.0 node03 Ready <none&g

ELK学习实验018:filebeat收集docker日志

Filebeat收集Docker日志 1 安装docker [[email protected] ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 [[email protected] ~]# yum update [[email protected] ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/d

ELK之elasticsearch插件导致filebeat没有上传日志至elasticsearch解决办法

使用filebeat收集nginx发现日志为上传,elasticsearch没有日志,kibana没有展示 查看filebeat日志 日志目录为/var/log/filebeat  下面有多个日志文件,如果在日志文件filebeat没有发现报错信息可以查看 filebeat.1 2 3 4 5 6 7等,发现日志报错如下 2019-06-06T10:43:23.771+0800 ERROR fileset/factory.go:142 Error loading pipeline: Error

ELK + kafka + filebeat +kibana

架构说明 app-server(filebeat) -> kafka -> logstash -> elasticsearch -> kibana 服务器用途说明 系统基础环境 # cat /etc/redhat-release  CentOS release 6.5 (Final) # uname -r 2.6.32-431.el6.x86_64 192.168.162.51    logstash01 192.168.162.53    logstash02 192.168.1

ELK + Kafka + Filebeat

ELK + Kafka + Filebeat学习 https://blog.csdn.net/qq_21383435/article/details/79463832 https://blog.csdn.net/xiangyuan1988/article/details/78977471 https://www.jianshu.com/p/f149a76ea5b5 https://blog.csdn.net/qq_21383435/article/category/7486820 ELK + K

Elk+filebeat收集docker集群swarm中的nginx和tomcat容器的日志信息

前言: 之前有说过elk收集nginx日志, 现在来说一下收集容器集群的日志收集Elk的安装这里不在说了,上来直接怼, 这里是elk的服务器:的服务状态:以及端口 Logstash是主要的配置内容这里: 如下 input { beats { port => 5044 } } filter { if "nginx-accesslog" in [tags] { grok { match => { "message" => "%{HTTPDAT

zookeeper+kafka集群安装之二

zookeeper+kafka集群安装之二 此为上一篇文章的续篇, kafka安装需要依赖zookeeper, 本文与上一篇文章都是真正分布式安装配置, 可以直接用于生产环境. zookeeper安装参考: http://blog.csdn.net/ubuntu64fan/article/details/26678877 首先了解几个kafka中的概念: kafka是一个消息队列服务器,服务称为broker, 消息发送者称为producer, 消息接收者称为consumer; 通常我们部署多个b