构建ELK+Filebeat+kafka+zookeeper大数据日志分析平台

主机IP

角色

所属服务层

部署服务

192.168.11.11

日志生产

采集层

filebeat

192.168.11.12

日志缓存

数据处理层、缓存层

Zookeeper+kafka+logstash

192.168.11.13

192.168.11.14

日志展示

持久、检索、展示层

Logstash+elasticsearch+kibana

数据流向 filebeat---->logstash---->kafka---->logstash---->elasticsearch 

第一层:数据采集层
最左边的是业务服务器集群,上面安装了filebeat做日志采集,同时把采集的日志分别发送给两个logstash服务

第二层:数据处理层,数据缓存层
logstash服务把接收到的日志经过格式处理,转存到本地的kafka broker+zookeeper集群中

第三层:数据转发层
单独的logstash节点会实时去kafka broker集群拉数据,转发至ES DataNode

第四层:数据持久化存储
ES DataNode会把收到的数据,写磁盘,建索引库

第五层:数据检索,数据展示
ES Master + Kibana主要协调ES集群,处理数据检索请求,数据展示

部署ELK

ELK集群部署(略)
ELK集群配置

(1)配置logstash

[root@zookeeper01 ~]# cd /data/program/software/logstash
[root@zookeeper01 logstash]# cat conf.d/logstash_to_es.conf
input {kafka {bootstrap_servers => "192.168.11.12:9092,192.168.11.13:9092"topics => ["ecplogs"]}
}
output {elasticsearch {hosts => ["192.168.11.12:9200","192.168.11.13:9200"]index => "dev-log-%{+YYYY.MM.dd}"}
}

注: ecplogs字段是kafka的消息主题,后边在部署kafka后需要创建

部署zookeeper+kafka+logstash

1、部署zookeeper集群
[webapp@localhost ~]$ tar -xzf zookeeper-3.4.9.tar.gz -C /data/webapp/[webapp@localhost ~]$ cd /data/webapp/zookeeper-3.4.9/conf/[webapp@localhost conf]$ cp zoo_sample.cfg zoo.cfg[webapp@localhost conf]$ vim zoo.cfgdataDir=/data/webapp/zookeeper-3.4.9/zookeeperserver.1=192.168.11.12:12888:13888server.2=192.168.11.13:12888:13888[webapp@localhost conf]$ echo 1 > /data/webapp/zookeeper-3.4.9/zookeeper/myid

注:在另外一台配置文件相同,只需要将myid重置为2

[webapp@localhost conf]$ echo 2 > /data/webapp/zookeeper-3.4.9/zookeeper/myid
2、启动zookeeper服务(在两台服务器中都启动)
[webapp@localhost zookeeper-3.4.9]$ bin/zkServer.sh start
2.1、查看两台zookeeper集群状
[webapp@localhost zookeeper-3.4.9]$ bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /data/webapp/zookeeper-3.4.9/bin/../conf/zoo.cfgMode: follower[webapp@localhost zookeeper-3.4.9]$ bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /data/webapp/zookeeper-3.4.9/bin/../conf/zoo.cfgMode: leader
3、配置kafka集群
[webapp@localhost ~]$ tar -xzf kafka_2.11-0.10.1.1.tgz -C /data/webapp/[webapp@localhost ~]$ cd /data/webapp/kafka_2.11-0.10.1.1/config/[webapp@localhost config]$ vim server.propertiesbroker.id=1port = 9092host.name = 192.168.11.12log.dirs=/data/webapp/kafka-logslog.retention.hours=1zookeeper.connect=192.168.11.12:2181,192.168.11.13:2181default.replication.factor=2

注:两台集群配置只需要将broker.id、host.name进行修改,其它一致。

[webapp@localhost config]$ vim server.propertiesbroker.id=2host.name = 192.168.11.13
4、启动kafka集群(在两台服务器中都启动)
[webapp@localhost kafka_2.11-0.10.1.1]$ bin/kafka-server-start.sh -daemon config/server.properties
4.1、创建消息主题
[webapp@localhost kafka_2.11-0.10.1.1]$ bin/kafka-topics.sh --create --zookeeper 192.168.11.11:2181 --replication-factor 1 --partitions 2 --topic ecplogs
4.2、测试消息生产与消费

在主机192.168.11.13上进行消息消费

[webapp@localhost kafka_2.11-0.10.1.1]$ /data/webapp/kafka_2.11-0.10.1.1/bin/kafka-console-consumer.sh --zookeeper 192.168.11.11:2181 --topic ecplogs --from-beginning

在主机192.168.11.12上进行消息生产:

[webapp@localhost kafka_2.11-0.10.1.1]$ bin/kafka-console-producer.sh --broker-list 192.168.11.11:9092 --topic ecplogs

在此终端中输入数据,会在192.168.11.13终端上进行显示出来。那么kafka功能正常。

5、配置logstash
5.1配置logstash的配置文件
[webapp@localhost ~]$ tar -xzf logstash-5.2.0.tar.gz -C /data/webapp/[webapp@localhost ~]$ cd /data/webapp/logstash-5.2.0/config/[webapp@localhost config]$ vim logstash_in_filebeat.confinput {beats {port => 5044}}output {kafka {bootstrap_servers => "192.168.11.12:9092,192.168.11.13:9092"topic_id => "ecplogs"}}
6、各环节服务启动与数据追踪

(1)启动zookeeper及kafka集群

[root@zookeeper01 ~]# cd /data/program/software/zookeeper
[root@zookeeper01 zookeeper]# bin/zkServer.sh start
[root@zookeeper01 ~]# cd /data/program/software/kafka
[root@zookeeper01 kafka]# nohup bin/kafka-server-start.sh config/server.properties >>/tmp/kafka.nohup &
[root@zookeeper01 ~]# netstat -tunlp|egrep "(2181|9092)"
#在3个节点上执行

(2)启动elasticsearch

[root@zookeeper01 ~]su - elsearch -c "/data/program/software/elasticsearch/bin/elasticsearch -d"
#在3个节点上执行

http://192.168.213.128:9200
在这里插入图片描述查看elasticsearch+zookeeper集群状态
http://192.168.213.128:9200/_cat/nodes?pretty

在这里插入图片描述
(2)启动nodejs

[root@zookeeper01 ~]# cd /data/program/software/elasticsearch/elasticsearch-head
[root@zookeeper01 elasticsearch-head]# grunt server &

http://192.168.213.128:9100
在这里插入图片描述
(3)启动kibana

[root@zookeeper01 ~]# cd /data/program/software/kibana
[root@zookeeper01 kibana]# nohup bin/kibana >>/tmp/kibana.nohup &
[root@zookeeper01 kibana]# netstat -tunlp|grep 5601

http://192.168.213.128:5601
在这里插入图片描述
(5)启动logstash

[root@zookeeper01 ~]# cd /data/program/software/logstash
[root@zookeeper01 logstash]# nohup bin/logstash -f conf.d/logstash_to_filebeat.conf >>/tmp/logstash.nohup &

(6)启动filebeat

[root@zookeeper01 ~]# cd /data/program/software/filebeat
[root@zookeeper01 filebeat]# nohup ./filebeat -e -c nginx.yml >>/tmp/filebeat.nohup &
[root@zookeeper01 filebeat]# ps -ef|grep filebeat

(7)在kafka终端上进行日志消费

[root@zookeeper03 ~]# cd /data/program/software/kafka
[root@zookeeper03 kafka]# bin/kafka-console-consumer.sh --bootstrap-server 192.168.213.136:9092 --topic ecplogs --from-beginning

访问zookeeper01产生nginx日志,在kafka终端上会有实时日志消息,则filebeat---->logstash---->kafka 数据流转正常

[root@zookeeper02 ~]# curl -I 192.168.213.128
HTTP/1.1 200 OK
Server: nginx/1.16.1
Date: Tue, 14 Apr 2020 05:22:07 GMT
Content-Type: text/html
Content-Length: 4833
Last-Modified: Fri, 16 May 2014 15:12:48 GMT
Connection: keep-alive
ETag: "53762af0-12e1"
Accept-Ranges: bytes

在这里插入图片描述
(8)启动logstash转发

[root@zookeeper01 ~]# cd /data/program/software/logstash
[root@zookeeper01 logstash]# nohup bin/logstash -f conf.d/logstash_to_es.conf >>/tmp/logstash_to_es.nohup &

(9)elasticsearch数据展示
在这里插入图片描述在这里插入图片描述(10)kibana数据展示
在这里插入图片描述

踩坑记录

(1)logstash-6.6.1版本不支持同时运行多个实例
[FATAL] [logstash. runner] Logstash could not be started because there is already another instance using the configured data directory. If you wish to run multiple instances, you must change the "path.data" setting.
在这里插入图片描述
原因:logstash-6.6.1版本不支持同时运行多个实例,前一个运行的instance在path.data里面有.lock文件

网上大多数的解决办法是删除其data目录下的.lock文件,但这并不能解决问题,我们需要conf.d/logstash_to_filebeat.confconf.d/logstash_to_es.conf同时在线运行以保证实时日志统计展示,所以采用了百度出来的另一个方法,直接运行 nohup bin/logstash -f conf.d/ >>/tmp/logstash.nohup &,这样虽然运行没报错,但会使数据采集异常,疯狂输出没有用的数据

实测ELK(elasticsearch+logstash+kibana)6.6.1版本按本教程搭建的平台数据收集异常

单独测试filebeat---->logstash---->kafka数据流转正常;
单独测试kafka---->logstash---->elasticsearch数据流转正常;

整体测试数据流转异常,采集到的数据并非是nginx的日志,且不停的输出,不及时暂停filebeat或logstash会导致无用数据占用磁盘空间庞大。

(2)将ELK版本回退部署后集群状态异常
http://192.168.213.128:9200/_cat/nodes?pretty
查看集群状态为503

{"error" : {"root_cause" : [ {"type" : "master_not_discovered_exception","reason" : null} ],"type" : "master_not_discovered_exception","reason" : null},"status" : 503
}

查看日志,发现master没有选举成功,而且3个节点的"cluster_uuid" : "_na_"都相同(异常)

原因:把elasticsearch复制到其他节点时 ,elk_data下的运行数据也拷贝过去了

解决办法: 把elk_data目录下的内容删除,重启elasticsearch

 严禁按旧版本的教程用新版本的软件做实例,这无异于自己挖坑自己跳

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/779823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华清远见STM32U5开发板助力2024嵌入式大赛ST赛道智能可穿戴设备及IOT选题项目开发

第七届(2024)全国大学生嵌入式芯片与系统设计竞赛(以下简称“大赛”)已经拉开帷幕,大赛的报名热潮正席卷而来,高校电子电气类相关专业(电子、信息、计算机、自动化、电气、仪科等)全…

新能源充电桩站场AI视频智能分析烟火检测方案及技术特点分析

新能源汽车充电起火的原因多种多样,涉及技术、设备、操作等多个方面。从技术层面来看,新能源汽车的电池管理系统可能存在缺陷,导致电池在充电过程中出现过热、短路等问题,从而引发火灾。在设备方面,充电桩的设计和生产…

Linux部署Kafka2.8.1

安装Jdk 首先确保你的机器上安装了Jdk,Kafka需要Java运行环境,低版本的Kafka还需要Zookeeper,我此次要安装的Kafka版本为2.8.1,已经内置了一个Zookeeper环境,所以我们可以不部署Zookeeper直接使用。 1、解压Jdk包 t…

接口自动化框架搭建(八):pytest+allure+jenkins接入

1,安装allure插件 2,创建jenkins项目 怎么确定路径,可以查看工作空间,jenkins默认根目录就是工作空间 配置执行用例的命令,可以现在pycharm上试一下,然后在jenkins中配置: 把启动java服务的代…

每天五分钟深度学习:使用神经网络完成人脸的特征点检测

本文重点 我们上一节课程中学习了如何利用神经网络对图片中的对象进行定位,也就是通过输出四个参数值bx、by、bℎ和bw给出图片中对象的边界框。 本节课程我们学习特征点的检测,神经网络可以通过输出图片中对象的特征点的(x,y)坐标来实现对目标特征的识别,我们看几个例子。…

162.乐理基础-和声大调、旋律大调

内容参考于: 三分钟音乐社 上一个内容:161.音程、和弦板块总结、重点、建议 首先需要回忆一下18.调式、自然大调式(C大调、D大调。。。)与19.音阶是什么、有什么用,在18.调式、自然大调式(C大调、D大调。…

【php程序开发从入门到精通】——搭建PHP开发环境

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

联通iccid 19转20 使用luhn 算法的计算公式

联通iccid 19转20 使用luhn 算法的计算公式 第一次对接iccid 才知道 使用的是luhn 算法 19转20位 文章来源于 文章来源 当时也是一脸懵逼 的状态,然后各种chatgpt 寻找,怎么找都发现不对,最后看到这片java的文章实验是正确的,因…

服务器被CC攻击之后怎么办?

1.取消域名绑定取消域名绑定后Web服务器的CPU能够马上恢复正常状态,通过IP进行访问连接一切正常。但是不足之处也很明显,取消或者更改域名对于别人的访问带来了不变,另外,对于针对IP的CC攻击它是无效的,就算更换域名攻…

绘制特征曲线-ROC(Machine Learning 研习十七)

接收者操作特征曲线(ROC)是二元分类器的另一个常用工具。它与精确度/召回率曲线非常相似,但 ROC 曲线不是绘制精确度与召回率的关系曲线,而是绘制真阳性率(召回率的另一个名称)与假阳性率(FPR&a…

2013年认证杯SPSSPRO杯数学建模A题(第一阶段)护岸框架全过程文档及程序

2013年认证杯SPSSPRO杯数学建模 A题 护岸框架 原题再现: 在江河中,堤岸、江心洲的迎水区域被水流长期冲刷侵蚀。在河道整治工程中,需要在受侵蚀严重的部位设置一些人工设施,以减弱水流的冲刷,促进该处泥沙的淤积&…

钉钉 AI 升级多种功能;智谱AI PC智能助手发布;百度回应与苹果合作

▶ 钉钉 AI 升级上线多种功能 3 月 28 日,钉钉 AI 助理升级。升级后上线了图片理解、文档速读、工作流等产品能力,率先探索多模态、长文本与 RPA 技术在 AI 应用的落地。 基于阿里通义千问大模型,升级后的钉钉 AI 助理可以做到: …

三极管工作方式

如下图: 谨记: NPN 型: B 0 截止 B 1 导通 PNP 型: B 0 导通 B 1 截止 来源:% - 闲鹤

Java项目实战笔记--基于SpringBoot3.0开发仿12306高并发售票系统--(二)项目实现-第五篇-核心功能车票预定开发及nacos集成

本文参考自 Springboot3微服务实战12306高性能售票系统 - 慕课网 (imooc.com) 本文是仿12306项目实战第(二)章——项目实现 的第五篇,本篇讲解该项目的核心功能——余票查询、车票预定功能的基础版开发,以及讲解项目与Nacos的集成…

【Canvas与艺术】双“方齿齿轮”啮合示意图

【关键点】 齿轮数组的建立、旋转角度的调整。 【图例】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>双“方齿齿轮”啮合…

WIFI驱动移植实验:连接WIFI热点

一. 简介 前一篇文章做了WIFI联网前的工作&#xff0c;文章如下&#xff1a; WIFI驱动移植实验&#xff1a;WIFI 联网前的工作-CSDN博客 本文在上面一篇文章工作实现的基础上&#xff0c;实现 WIFI的连接。 二. WIFI驱动移植实验&#xff1a;WIFI 联网测试 这里WIFI联网的…

什么是量子计算?

什么是量子计算&#xff1f; 量子计算机仍处于起步阶段&#xff0c;正在影响已经在经典计算机上运行的新一代模拟&#xff0c;现在使用 NVIDIA cuQuantum SDK 进行加速。 在史蒂夫乔布斯 (Steve Jobs) 推出可以放入口袋的计算机之前 27 年&#xff0c;物理学家保罗贝尼奥夫 (P…

深入理解数据结构第一弹——二叉树(1)——堆

前言&#xff1a; 在前面我们已经学习了数据结构的基础操作&#xff1a;顺序表和链表及其相关内容&#xff0c;今天我们来学一点有些难度的知识——数据结构中的二叉树&#xff0c;今天我们先来学习二叉树中堆的知识&#xff0c;这部分内容还是非常有意思的&#xff0c;下面我们…

3D密集面部对齐项目 | 基于Pytorch实现的快速+准确+稳定的3D面部对齐算法

项目应用场景 可以应用于人脸面部三维特征点的提取 人脸面部的三维重建&#xff0c;项目的特点是基于 Pytorch 实现、快速、准确、稳定 项目效果&#xff1a; 项目流程 > 具体参见项目内README.md (1) 构建 sh ./build.sh (2) 执行示例 # 1. running on still i…

持续交付与持续部署相关概念(CD)

目录 一、概述 二、持续交付基本概念 2.1 持续交付的含义 2.1.1 项目管理的视角 2.1.2 产品研发的视角 2.1.3 总结 2.2 持续交付涉及的运作环境 2.2.1 开发环境 2.2.2 测试环境 2.2.3 UAT环境 2.2.4 准生产环境 2.2.5 生产环境 2.3 总结 三、持续部署基本概念 3.…