1.项目简介
时间:2022年7月 项目人员:3人
项目环境:centos7(9台,1核2G), kafka(2.12) ,nginx, filebeat, zookeeper(3.6.3), python3.6, mysql
项目描述:分别使用3台Linux服务器来作为nginx集群搭建前端web服务,kafka集群和zookeeper集群,2台Linux机器做反向代理集群。通过filebeat收集前端nginx集群的访问日志,统一存入kafka集群平台,部署zookeeper集群来对kafka进行配置管理,通过python编写消费者对nginx的log日志做数据清洗,获取流量信息存入mysql数据库。
2.项目步骤
1.规划整个项目的拓扑结构和思维导图
2、搭建nginx集群作为前端web服务
3、搭建kafka集群实现日志的统一收集
4.搭建zookeeper集群实现来对kafka集群进行配置管理
5、搭建filebeat,调试生产者和消费者
6、通过python编写消费者,通过IP调用淘宝接口将省份,运营商等信息爬取下来
7.清洗nginx日志,收集带宽信息存入数据库
8、创建分布式任务基于流量进行告警监控
3.项目部署
1.环境准备
1.准备好9台Linux机器(1核2G)
2.配置好静态ip地址(我使用的是桥接模式,在同一个局域网内可以和其他Linux机器通信)
vim /etc/sysconfig/network-scripts/ifcfg-ens33
3.配置好本地DNS服务器(114.114.114.114)
vim /etc/resolv.conf
4.修改主机名(推荐用下面的方式,修改了HOSTNAME变量的值,同时也修改了/etc/hostname文件里的内容,永久生效)
hostnamectl set-hostname +主机名
5.每一台机器上都写好域名解析(方便后续直接用主机名进行操作)
vim /etc/hosts
ps:DNS解析的顺序
1、浏览器的缓存
2、本地hosts文件 --linux(/etc/hosts)
3、找本地域名服务器 -- linux(/etc/resolv.conf)
6.安装基本软件(wget是用于获取web的数据,chronyd是时间同步服务)
yum install wget lsof vim -y
yum -y install chrony
7.开启chronyd服务,关闭防火墙服务和selinux(防止防火墙影响主机之间的通信)
systemctl enable chronyd
systemctl start chronyd
systemctl stop firewalld
systemctl disable firewalld
关闭selinux:vim /etc/selinux/config,设置SELINUX=disabled
2.nginx搭建
1.安装好epel源和nginx服务
yum install epel-release -y
yum install nginx -y
2. 启动nginx并设置为开机自启
systemctl start nginx
systemctl enable nginx
3.编辑配置文件
vim /etc/nginx/nginx.conf
将
listen 80 default_server;
修改成:
listen 80;
ps:对于.conf文件的配置做一个简介
全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
server块:配置虚拟主机的相关参数,一个http中可以有多个server。
location块:配置请求的路由,以及各种页面的处理情况
4.自定义一个server用来检测
ps:后面搭建filebeat时就是收集/var/log/nginx/sc/access.log下的日志
vim /etc/nginx/conf.d/sc.conf
server {
listen 80 default_server;
server_name www.sc.com;
#html源代码文本路径
root /usr/share/nginx/html;
#访问日志的保存路径
access_log /var/log/nginx/sc/access.log main;
location / {
}
}
5.语法检测
nginx -t
6.重新加载nginx服务
nginx -s r