当前位置: 首页 > news >正文

基于kafka的分布式日志收集平台项目(第三部分)

续第一部分最后面没精讲部分和后面剩余部分

nginx反向代理集群搭建

  • 安装nginx

输入yum install nginx -y

如果报错则输入以下两串命令

yum install epel-release -y
yum install nginx -y

##以下和以上这些操作都在kafka1里面进行,至于为什么要进行下面这些操作,是因为咱只用三台机器,没有那么多机器可用,所以我们在kafka2和kafka3上面又部署了两个python,让kafka1里面的nginx代理到下面两个python里面

  • 编辑配置文件 /etc/nginx/conf.d/sc.conf(进入目录 /etc/nginx/conf.d/,有sc.conf文件就直接编辑,没有就新建)

upstream flask {
   server kafka2;
   server kafka3;

}

server {
    server_name www.sc.com;
    location / {
       proxy_pass http://flask;
    }

}

启动nginx:

systemctl start nginx

后端flask程序(这一部分要在kafka2和kafka3两个里面都执行,kafka1不执行)

安装flask环境:

yum install python3 -y
pip3 install flask -i https://pypi.tuna.tsinghua.edu.cn/simple

编辑/opt/python-flask/app.py文件(新建文件夹python-flask再新建app.py文件并编辑,直接把下面的文本复制进去):

from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return "this is flask web kafka2"       #在kafka3节点里这个里面的kafka2就改为kafka3

app.run(host = "0.0.0.0")

启动flask:

python3 app.py

出现以下结果就算成功,并且不能中断

然后可以在网页输入IP地址:5000

例(以我自己为例):

#kafka2

输入 192.168.126.175:5000

然后输出结果

this is flask web kafka2

#kafka3

输入 192.168.126.176:5000

然后输出结果

this is flask web kafka3

#kafka1(可以一直按回车键,里面内容的kafka2和kafka3会一直变换)

输入 192.168.126.173:5000

然后输出结果

this is flask web kafka2

部署filebeat

可以先了解一下何为filebeat

  • 一篇文章搞懂filebeat(ELK) - 一寸HUI - 博客园https://www.cnblogs.com/zsql/p/13137833.html

安装:

1、rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
2、编辑 vim /etc/yum.repos.d/fb.repo
[elastic-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
3、yum安装
yum  install  filebeat -y

rpm -qa  |grep filebeat  #可以查看filebeat有没有安装  rpm -qa 是查看机器上安装的所有软件包
rpm -ql  filebeat  查看filebeat安装到哪里去了,牵扯的文件有哪些

配置,修改配置文件/etc/filebeat/filebeat.yml:

filebeat.inputs:
- type: log
  # Change to true to enable this input configuration.
  enabled: true
  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/nginx/access.log 
    - /var/log/nginx/error.log
#==========------------------------------kafka-----------------------------------
output.kafka:
  hosts: ["192.168.20.161:9092","192.168.20.162:9092","192.168.20.163:9092"]
  topic: nginxlog
  keep_alive: 10s

不对的就修改,没有的就增加

ip换上自己的ip

创建主题:

cd /opt/kafka_2.13-3.6.1
bin/kafka-topics.sh --create --bootstrap-server  kafka3:9092 --replication-factor 3 --partitions 3 --topic nginxlog

启动服务:

systemctl start  filebeat
systemctl enable filebeat  #设置开机自启

可以输入命令ps aux|grep filebeat 检查一下filebeat服务是否启动

#创建生产者,发送消息,测试用
bin/kafka-console-producer.sh --broker-list kafka3:9092 --topic my_topic
#创建消费者,获取数据,测试用
bin/kafka-console-consumer.sh --bootstrap-server kafka1:9092 --topic my_topic --from-beginning

用上述两条命令再创建生产者nginxlog 再创建消费者来消费(图有点不美观,随便输入了点啥,可以看到生产者输入的内容可以由消费者输出)

到此,日志收集平台部署完成!

                                              


      http://www.mrgr.cn/news/96379.html

      相关文章:

    • 杂草YOLO系列数据集4000张
    • 【网络编程】搭建一个简单的UDP通信服务器和客户端
    • 从24GHz到71GHz:Sivers半导体的广泛频率范围5G毫米波产品解析
    • Git和GitCode使用(从Git安装到上传项目一条龙)
    • 算法刷题记录——题解目录汇总(持续更新)
    • 学习不同电脑cpu分类及选购指南
    • 通信之光纤耦合器
    • 【HC-05】蓝牙串口通信模块调试与应用(1)
    • C++菜鸟教程 - 从入门到精通 第五节
    • Vue2 使用 v-if、v-else、v-else-if、v-show 以及 v-has 自定义指令实现条件渲染
    • 高并发系统下的订单号生成服务设计与实现
    • 综合实验2
    • 买卖股票的最佳时机(121)
    • 【vllm/瞎折腾】在内网wsl上安装vllm并尝试多节点部署(失败了)
    • 【云服务器】在Linux CentOS 7上快速搭建我的世界 Minecraft Fabric 服务器搭建,Fabric 模组详细搭建教程
    • 人生感悟8
    • GAMMA数据处理(十)
    • 【力扣刷题|第十七天】0-1 背包 完全背包
    • Day2 蓝桥杯省赛冲刺精炼刷题 —— 递归与递推
    • 全局思维与系统思考