ELK集群+Filebeat+Kafka

ELK+filebeat+kafka日志收集 我们主要完成在Docker环境下部署 Filebeat 日志收集工具,他是搭建ELK日志非常重要的一部分,我们利用Filebeat日志收集完成之后,将数据写入 Elasticsearch 后用 Kibana 进行可视化展示,目前我们已经完成了Fliebeat + Es +Kibana部分。 阅读详情

概述

Linux主机的ip是10.10.20.26,版本为CentOS Linux release 7.6.1810 (Core) ,当前用户为wender,jdk版本为1.8.0_121。各组件的版本为:
filebeat-6.4.3-linux-x86_64
elasticsearch-6.4.3
logstash-6.4.3
kibana-6.4.3-linux-x86_64
kafka_2.12-2.3.0

Filebeat监控三个文件;把文件的变更,发送到Kafka,Logstash读取Kafka的topic中的消息,再发送到ElasticSearch,Kibana读取ElasticSearch的日志展示到浏览器

文件夹权限:

chown -R wender /home/wender/app/
chown -R wender /home/wender/app/jdk1.8.0_121

配置Filebeat

以wender用户,修改 filebeat.yml

su wender
vi filebeat.yml

filebeat.inputs:
- type: log
  enabled: true
  # 题库
  paths:
    - /var/logs/zbg/xapi/xapi/*.json
  tail_files: true
  fields:
    logtopic: elk-msg-a
    
- type: log
  enabled: true
  # 学习中心
  paths:
    - /var/logs/study/study/*.json
  tail_files: true
  fields:
    logtopic: elk-msg-b

- type: log
  enabled: true
  # 教务
  paths:
    - /var/logs/zbg/zbg/*.json
  tail_files: true
  fields:
    logtopic: elk-msg-c

output.kafka:
  enabled: true
  hosts: ["10.10.20.26:9092"]
  
  topic: '%{[fields.logtopic]}'
  partition.round_robin:
    reachable_only: false

  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000
  name: 10.10.20.26_filebeat

启动filebeat

su wender
nohup /home/wender/app/filebeat-6.4.3-linux-x86_64/filebeat -c /home/wender/app/filebeat-6.4.3-linux-x86_64/filebeat.cluster.kafka.yml &

配置Kafka

启动zk

##以root身份启动zk
su
/home/wender/app/kafka_2.12-2.3.0/bin/zookeeper-server-start.sh /home/wender/app/kafka_2.12-2.3.0/config/zookeeper.properties >/dev/null 2>&1 &
##或执行下面的命令
nohup /home/wender/app/kafka_2.12-2.3.0/bin/zookeeper-server-start.sh /home/wender/app/kafka_2.12-2.3.0/config/zookeeper.properties &

启动Kafka,创建topic

##start kafka
/home/wender/app/kafka_2.12-2.3.0/bin/kafka-server-start.sh /home/wender/app/kafka_2.12-2.3.0/config/server.properties >/dev/null 2>&1 &

##create topic
/home/wender/app/kafka_2.12-2.3.0/bin/kafka-topics.sh --create --zookeeper 10.10.20.26:2181 --replication-factor 1 --partitions 1 --topic elk-msg-a
/home/wender/app/kafka_2.12-2.3.0/bin/kafka-topics.sh --create --zookeeper 10.10.20.26:2181 --replication-factor 1 --partitions 1 --topic elk-msg-b
/home/wender/app/kafka_2.12-2.3.0/bin/kafka-topics.sh --create --zookeeper 10.10.20.26:2181 --replication-factor 1 --partitions 1 --topic elk-msg-c

##以下命令在kafka中常用,仅做记录,不在本次ELK配置中使用
##get all topics
/home/wender/app/kafka_2.12-2.3.0/bin/kafka-topics.sh --list --zookeeper localhost:2181

##delete topic
/home/wender/app/kafka_2.12-2.3.0/bin/kafka-topics.sh --delete --zookeeper 10.10.20.26:2181 --topic elk-msg-c
/home/wender/app/kafka_2.12-2.3.0/bin/zookeeper-shell.sh 10.10.20.26:2181
ls /brokers/topics
rmr /brokers/topics/elk-msg-c
quit

##consume message on topic
/home/wender/app/kafka_2.12-2.3.0/bin/kafka-console-consumer.sh --bootstrap-server 10.10.20.26:9092 --topic elk-msg-a --from-beginning
/home/wender/app/kafka_2.12-2.3.0/bin/kafka-console-consumer.sh --bootstrap-server 10.10.20.26:9092 --topic elk-msg-b --from-beginning
/home/wender/app/kafka_2.12-2.3.0/bin/kafka-console-consumer.sh --bootstrap-server 10.10.20.26:9092 --topic elk-msg-c --from-beginning

配置Logstash

创建logstash-msg-a.conf,内容如下:

cat /home/wender/app/logstash-6.4.3/config/conf.d/conf.d_kafka/logstash-msg-a.conf

input {
    kafka {
        bootstrap_servers => "10.10.20.26:9092"
        topics => ["elk-msg-a"]
        auto_offset_reset => "earliest"
        codec => json {
            charset => "UTF-8"
        }
        client_id => "client-msg-a"
        group_id => "group-msg-a"
    }
    #如果有其他数据源,直接在下面追加
}

filter {
    #将message转为json格式
    json {
        source => "message"
    }

    mutate {
    #移除message字段
        remove_field => ["message"]
    }
}

output {
    #处理后的日志入es
    if [fields][logtopic] == "elk-msg-a" {
        elasticsearch {
            hosts => "10.10.20.26:9200"
            index => "elk-msg-a"
            codec => "json"
        }
    }
} 

创建logstash-msg-b.conf,内容如下:

cat /home/wender/app/logstash-6.4.3/config/conf.d/conf.d_kafka/logstash-msg-b.conf

input {
    kafka {
        bootstrap_servers => "10.10.20.26:9092"
        topics => ["elk-msg-b"]
        auto_offset_reset => "earliest"
        codec => json {
            charset => "UTF-8"
        }
        client_id => "client-msg-b"
        group_id => "group-msg-b"
    }
    #如果有其他数据源,直接在下面追加
}

filter {
    #将message转为json格式
    json {
        source => "message"
    }

    mutate {
        #移除message字段
        remove_field => ["message"]
    }
}

output {
    if [fields][logtopic] == "elk-msg-b" {
    #处理后的日志入es
        elasticsearch {
            hosts => "10.10.20.26:9200"
            index => "elk-msg-b"
            codec => "json"
       }
    }
}

创建/logstash-msg-c.conf,内容如下:

cat /home/wender/app/logstash-6.4.3/config/conf.d/conf.d_kafka/logstash-msg-c.conf

input {
    kafka {
        bootstrap_servers => "10.10.20.26:9092"
        topics => ["elk-msg-c"]
        auto_offset_reset => "earliest"
        codec => json {
            charset => "UTF-8"
        }
        client_id => "client-msg-c"
        group_id => "group-msg-c"
    }
    #如果有其他数据源,直接在下面追加
}

filter {
    #将message转为json格式
    json {
        source => "message"
    }
    
    mutate {
            #移除message字段
        remove_field => ["message"]
    }            
}

output {
    #处理后的日志入es
    if [fields][logtopic] == "elk-msg-c" {
        elasticsearch {
            hosts => "10.10.20.26:9200"
            index => "elk-msg-c"
            codec => "json"
        }
    }
}

启动Logstash

#start logstash
vi /home/wender/app/logstash-6.4.3/bin/logstash
export JAVA_CMD="/home/wender/app/jdk1.8.0_121/bin"  #改为自己服务器JDK位置
export JAVA_HOME="/home/wender/app/jdk1.8.0_121/"    #改为自己服务器JDK位置

#启动/home/wender/app/logstash-6.4.3/config/conf.d/目录下的所有配置文件,末尾一定要有/,表示是目录
su wender
nohup /home/wender/app/logstash-6.4.3/bin/logstash -f /home/wender/app/logstash-6.4.3/config/conf.d_kafka/ &

配置ElasticSearch

解析ES异常

[2020-05-07T13:25:01,579][ERROR][o.e.b.Bootstrap          ] [node-26] node validation exception
[1] bootstrap checks failed
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
1、修改/etc/security/limits.conf
*    hard    nofile    65536
*    soft    nofile    65536
2、修改(如果没有文件,新建)
[root@master config]# cat /etc/pam.d/sshd
session    required   /lib64/security/pam_limits.so
[root@master config]# cat /etc/pam.d/common-session
session required /lib64/security/pam_limits.so
3、修改/etc/profile增加一条
ulimit -n 65536
4、重启sshd服务
/etc/init.d/sshd restart
service sshd restart

启动ES

[elasticsearch-6.4.3]chown -R wender 
su wender
/home/wender/app/elasticsearch-6.4.3/bin/elasticsearch -d

配置Kibana

vi config/kibana.yml
server.port: 5601
server.host: "10.10.20.26"
server.name: "wender"
elasticsearch.url: "http://10.10.20.26:9200" # es的地址
kibana.index: ".kibana"

启动停止访问kibana

#启动
su wender
./kibana
#或
nohup ./kibana > /dev/null 2>&1 &

#停止
fuser -n tcp 5601 #查看端口进程
kill -9  进程号 #杀死上步执行结果进程

#访问地址
http://10.10.20.26:5601

各组件启动顺序

1.zookeeper
2.kafka
3.filebeat
4.elasticsearch
5.logstash
6.kibana


参考资料

https://www.jianshu.com/p/c3d35cceaabc
https://blog.youkuaiyun.com/wyalonehome/article/details/83990512

部署ELK+Kafka+Filebeat+Zookeeper日志收集分析系统 ELK是三个软件的统称,即Elasticsearch、Logstash和Kibana三个开源软件的缩写。这三款软件都是开源软件,通常配合使用,并且都先后归于Elastic.co企业名下,故被简称为ELK协议栈。ELK主要用于部署在企业架构中,收集多台设备上多个服务的日志信息,并将其统一整合后提供给用户。它可以从任何来源、任何格式进行日志搜索、分析与可视化展示。提供了一个分布式多用户能力的全文搜索引擎;是一个基于Lucene的搜索服务器;基于restful web接口;使用java开发; 阅读详情

相关推荐

ELK EFK日志搜索平台 filebeat kafka logstash elasticsearch(es) kibana

ELK是当前比较主流的分布式日志收集处理工具。常用日志采集方式Filebeat→Kafka集群→Logstash→ES→KibanaGrafana(可视化监控工具)上配置连接ES数据库进行实时监控实施步骤Filebeat部署在应用服务器上(只负责Logstash的读取和转发,降低CPU负载消耗,确保不会抢占应用资源),Logstash、ES、Kibana在一台服务器上(此处的Logstash负责日志的过滤,会消耗一定的CPU负载,可以考虑如何优化过滤的语法步骤来达到降低负载)。...............

zhaoyang10的专栏 2774

ELK+filebeat+kafka

ELK+filebeat+kafka

m0_64632306的博客 2925

【ELK企业级日志分析系统】部署Filebeat+Kafka+Logstash+Elasticsearch+Kibana集群详解(EFLFK)

需做白日梦。你要清楚地知道你到底是谁,要去哪里。要成为一个什么样的人,很多人浑浑噩噩,得过且过。你能清楚地意识到,或者梦想去到达彼岸,有时候,人生境遇就是如此,轻而易举滴到达你的彼岸。

陌上花开,静待绽放! 2345

Kafka 概述、Filebeat+Kafka+ELK

Kafka 是一个分布式的基于发布/订阅模式的消息队列(MQ,Message Queue),主要应用于大数据领域的实时计算以及日志收集。

Axic123的博客 2630

ROS智能车定位导航仿真+功能包自带的地图实现+自己建立的地图实现

ROS智能车定位导航仿真一、前言二、效果图三、准备工作[1.在Ubuntu上安装ROS Kinetic](https://blog.youkuaiyun.com/qq_42585108/article/details/104327661)2.创建ROS工作区间①1创建racecar_ws和src文件夹②初始化工作空间③下载racecar源代码包,并编译工程四、启动仿真1.设置环境变量2.启动地图五、建图1.启动slam和rviz2 控制车辆(左侧有个控制窗口),WASD控制前左后右的运动就可以建图了:3.新建终端保存地

qq_42585108的博客 1万+

windchill安装搭建(保姆式)

保姆式搭建windchill 材料准备 Vmware工具,用来创建和打开虚拟机的工具 安装系统的镜像文件 数据库安装文件,这里是Oracle数据库 Windchill的安装包 Vmware工具,用来安装和打开虚拟机的软件 Windowsserver2008的镜像工具,用来安装虚拟机环境的系统,如果你有win2007或win2010的也可以,在做虚拟机时,需要先安装系统。 Oracle数据库安装包 Windchill11M030的安装包 (安装包如有需要可以私信邮箱发送) 虚拟机安装 安装虚拟机VMware

tr1294937662的博客 6217

kafka集群和Filebeat+Kafka+ELK

主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection 错误,引发雪崩效应。我们使用消息队列,通过异步处理请求,从而缓解系统的压力。消息队列常应用于异步处理,流量削峰,应用解耦,消息通讯等场景。当前比较常见的 MQ 中间件有 ActiveMQ、RabbitMQ、RocketMQ、Kafka、Pulsar 等。

热心网友 1708

简单搭建 可视化日志+链路追踪

JAVA 可视化日志、链路追踪、plumeLog、Tlog、Logback

qq_39535439的博客 1204

部署Filebeat+Kafka+ELK 集群

主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection 错误,引发雪崩效应。我们使用消息队列,通过异步处理请求,从而缓解系统的压力。消息队列常应用于异步处理,流量削峰,应用解耦,消息通讯等场景。当前比较常见的 MQ 中间件有 ActiveMQ、RabbitMQ、RocketMQ、Kafka、Pulsar 等。

weixin_72625764的博客 1668

ESP8266 + MQTT :如何实现 LED 灯的远程控制

MQTT 是轻量级的、灵活的物联网消息交换和数据传递协议,致力于为 IoT 开发人员实现灵活性与硬件/网络资源的平衡。 NodeMCU 是一个开源的物联网平台。它使用 Lua 语言编程。该平台基于eLua开源项目,底层使用ESP8266 sdk 0.9.5版本。 在此项目中我们将实现 NodeMCU(ESP8266) 与 EMQ X Cloud 运营和维护的免费公共 MQTT 服务器远程控制 LED 灯,并使用 Arduino IDE 来对 NodeMCU ESP8266 进行编程。 EMQ X Cloud

emqx_broker的博客 3357

shader多图叠加变换

shader Shader "Paint3D/AddTexture" { Properties { _MainTex ("Main Texture", 2D) = "white" {} _MainColor("Main Color", Color)=(1,1,1,1) _AddTex0 ("Texture0", 2D) = "white" {} _AddTex1 ("Texture1", 2D) = "white" {} .

李长江的博客 909

zookeeper+kafka+ELK+filebeat集群

为什么要引入消息队列(MQ)他也是一个中间键。在高并发环境下,同步请求来不及处理。来不及处理的请求会形成阻塞比方说数据库就会形成行锁或者表锁。请求线程满了,超标了,too many connection报错,引发整个系统雪崩。

XH722DF的博客 1536

零基础玩转NILM:用nilmtk提取UKDALE电器数据的保姆级教程

本文为零基础用户提供了一份详细的NILM入门指南,重点讲解如何使用nilmtk工具包从UKDALE数据集中提取电器级用电数据。教程涵盖环境搭建、核心概念解析、数据提取实战及常见问题排查,帮助读者快速掌握非侵入式负荷监测的数据预处理关键步骤。

rgv234567的博客 499

【ELK日志分析系统】Zookeeper、Kafka集群与Filebeat+Kafaka+ELK架构

Zookeeper、Kafka集群与Filebeat+Kafaka+ELK架构

m0_71593537的博客 1727

(建议收藏)2024最新 URL Scheme大全APP跳转界面地址更新中 ios快捷指令快捷方式链接跳转微信小程序必备autojs可用免root (可定制开发和提取URL Scheme 参数提取)

(建议收藏)2024最新 URL Scheme大全APP跳转界面地址更新中 ios快捷指令快捷方式链接跳转微信小程序必备autojs可用免root (可定制开发和提取URL Scheme 参数提取)

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

opencv 双目摄像头拍照(分别左右镜头拍照)

准备一个usb线的双目同步摄像头: 运行环境是vc2015,opencv3.1。 将左右两个摄像头拍到的图片分别保存起来。 1)适用条件 双目同步摄像头(两个镜头,共用一个设备ID) 使用语言:C++ 、opencv库 摄像头 分辨率2560*960 或以上。 源程序: #include"stdafx.h" #include<iostream&g...

黎国溥 1万+

ZooKeeper及Kafka学习与ELK+Kafka+Filebeat 集群架构搭建

Kafka搭建,ELK+Kafka+Filebeat 集群架构练习,及ZooKeeper,Kafka基础知识

m0_73705628的博客 1415

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

kafka集群介绍+部署Filebeat+Kafka+ELK

是最初由 Linkedin 公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于 Zookeeper 协调的分布式消息中间件系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景,比如基于 hadoop 的批处理系统、低延迟的实时系统、Spark/Flink 流式处理引擎,nginx 访问日志,消息服务等等,用 scala 语言编写,消费者组中的每个消费者,都会实时记录自己消费到了哪个 offset,以便出错恢复时,从上次的位置继续消费。

虫虫的博客 1779

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Kafka架构及Filebeat+Kafka+ELK集群搭建

Kafka架构及Filebeat+Kafka+ELK集群搭建 一、消息队列(MQ)的介绍二、使用消息队列的好处(1)解耦(2)可恢复性(3)缓冲(4)灵活性 & 峰值处理能力(5)异步通信 三、消息队列的两种模式(1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除)(2)发布/订阅模式(一对多,又叫观察者模式,消费者消费数据之后不会清除消息) 四、Kafka概述1.定义2.简介3.特性 五、Kafka系统架构1.Broker2.Topic3.Partition4.Lea..

Smile x 1614

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Zookeeper集群 + Kafka集群,Filebeat+Kafka+ELK

Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection 错误,引发雪崩效应。我们使用消息队列,通过异步处理请求,从而缓解系统的压力。消息队列常应用于异步处理,流量削峰,应用解耦,消息通讯等场景。

X2683933654的博客 1348

ELK+kafka+filebeat搭建生产ELFK集群

ELK+kafka+filebeat搭建生产ELFK集群ELK 架构介绍 集群服务版本 服务 版本 java 1.8.0_221 elasticsearch 7.10.1 filebeat 7.10.1 kibana 7.10.1 logstash 7.10.1 cerebro 0.9.2-1 kafka 2.12-2.3.0 zookeeper 3.5.6 服务器环境说明 IP地址 主机名 配置 角色 10.0.11.172 elk-master

cnsre运维博客 1414

Filebeat+Kafka配合ELK集群

Filebeat+Kafka配合ELK集群KafkaKafka 概述为什么需要消息队列(MQ)使用消息队列的好处消息队列的两种模式Kafka 定义Kafka 简介Kafka 的特性Kafka 系统架构(1)Broker(2)Topic(3)PartitionPartation 数据路由规则:分区的原因(4)Leader(5)Follower(6)Replica(7)Producer(8)Consumer(9)Consumer Group(CG)(10)offset 偏移量(11)ZookeeperKafka

Jahony的博客 488

Zookeeper集群 + Kafka集群的详解与部署(以及Filebeat+Kafka+ELK )

Zookeeper是一个分布式的开源协调服务,用于管理和维护大型分布式系统中的配置信息、命名服务、状态同步等。它提供了一个可靠的分布式环境,用于协调多个节点之间的通信和管理。Kafka 是一个开源的分布式流处理平台和消息队列系统,最初由 LinkedIn 开发并于2010年成为 Apache 软件基金会的顶级项目。它的设计目标是处理大规模数据流并提供高吞吐量、持久性、可扩展性和容错性。Kafka 是一个分布式的基于发布/订阅模式的消息队列(MQ,Message Queue),主要应用于大数据实时处理领域。

qq_51545656的博客 3068

Zookeeper、Kafka集群与Filebeat+Kafka+ELK架构、部署实例

Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。Kafka 是一个分布式的基于发布/订阅模式的消息队列(MQ,Message Queue),主要应用于大数据领域的实时计算以及日志收集。Kafka 是最初由 Linkedin 公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于 Zookeeper 协调的分布式消息中间件系统,

fyb012811的博客 1911

Zookeeper集群 + Kafka集群 + Filebeat + ELK

Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection 错误,引发雪崩效应。我们使用消息队列,通过异步处理请求,从而缓解系统的压力。消息队列常应用于异步处理,流量削峰,应用解耦,消息通讯等场景。当前比较常见的 MQ 中间件有。

A1100886的博客 3183
上一篇: Sentinel监控SpringBoot项目
下一篇: ELK+Filebeat+Kafka,SpringBoot异常日志收集
cjrjc
博客等级 码龄23年 79粉丝 52原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值