项目环境:3台web集群机器 (nginx 1.21.4、filebeat 7.16.3)3台kafka集群机器(kafka2.8.1、zookeeper3.6.3)2台nginx负载均衡/高可用服务器、1台数据库服务器( mysql5.7.34)开发工具:linux(centOS8)、pycharm(python 3.9.10)项目描述: 搭建一个基于zookeeper/kafka的nginx-web集群的网站 ,通过用户访问网站收集nginx日志提取关键字段值,同时解析出日志中ip所属的省份、运营商、带宽,调用python程序进行数据清洗,最后存放到数据库。项目步骤:1.web集群的搭建采用nginx搭建web集群,5台机器,其中2台作为前端反向代理机器,采用keepalive技术实现负载均衡和高可用。3台作为后端的real server,搭建filebeat作为生产者采集nginx访问日志,由于是模拟搭建所以只提供了静态页面的访问。产生的日志filebeat会集中吐到kafka里面。2.Kafka集群的搭建 采用了3台机器去完成。这个时候是需要zookeeper来管理kafka的。所以3台机器上也部署了zookeeper。因为zk除了kafka之外没有承载其他业务,所以和kafka放在一起。后单独创建了主topic(nginxlog)来集中存储nginx的日志。3.数据清洗存入mysql编写python程序,使用pykafka模块来消费topic中的数据,提取时间、IP和带宽字段。对于时间格式做了一定的转换,对于IP通过调用一个淘宝的接口得到省份和运营商字段,将其转换成数据库里面存储的对应id,最后存入mysql数据库的主表nginxlog。方便后续扩展对流量进行监控和告警。声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论