当前位置: 首页 > 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.dtcms.com/a/98703.html

      相关文章:

    • 页码设置相关问题记录
    • React 揭秘:从新手到高手的进阶之路
    • day19学习numpy库和matplotlib库
    • 使用postcss-px-to-viewport-8-plugin将页面转响应式
    • git | 版本切换的相关指令
    • Qt Creator 中文 “error: C2001: 常量中有换行符“ 问题解决方法
    • 树的基础_遍历(蓝桥云课)
    • Qt之Service开发
    • 复盘与导出工具最新版V20.0版本更新--覆盖标记新增龙头标记---连板标记--普通标记3种选择
    • 深度学习4.4笔记
    • 游戏AI实现-GOAP
    • 【华为OD技术面试真题 - 技术面】- Java面试题(16)
    • 【免费】中国电子学会2025年03月份青少年软件编程Python等级考试试卷六级真题(含答案)
    • 解决obsidian无法加载社区的解决的尝试
    • DeepSeek-R1国产大模型实战:从私有化部署到内网穿透远程使用全攻略
    • 【Java】Java核心知识点与相应面试技巧(七)——类与对象(二)
    • c++游戏开发第一期
    • 【大模型基础_毛玉仁】5.3 附加参数法:T-Patcher
    • 《新凯来 :中国半导体设备制造行业从“跟随者”向“挑战者”的角色转变》
    • 【蓝桥杯速成】| 15.完全背包
    • docker pull lss233/one-api:latest 在哪里运行,作用是什么
    • 【VUE】day08黑马头条小项目
    • (三)点亮LED
    • ngx_http_core_merge_srv_conf
    • 外观模式(Facade Pattern):复杂系统的“统一入口”
    • Qwen-0.5b linux部署
    • 订单超时自动关闭:电商系统的技术难题与解决方案
    • 常用登录Linux系统的方法以及操作指南
    • Spring Cloud Gateway详细介绍简单案例
    • Js 主线程和异步队列哪个先执行