deepseek部署:ELK + Filebeat + Zookeeper + Kafka
## 1. 概述
本文档旨在指导如何在7台机器上部署ELK(Elasticsearch, Logstash, Kibana)堆栈、Filebeat、Zookeeper和Kafka。该部署方案适用于日志收集、处理和可视化场景。
## 2. 环境准备
### 2.1 机器分配
| 机器编号 | 主机名 | IP地址 | 部署组件
|----------|--------------|--------------|-----------------------------------------------|
| 1 | node1 | 192.168.1.1 | Elasticsearch, Zookeeper, Kafka
| 2 | node2 | 192.168.1.2 | Elasticsearch, Zookeeper, Kafka
| 3 | node3 | 192.168.1.3 | Elasticsearch, Zookeeper, Kafka
| 4 | node4 | 192.168.1.4 | Logstash, Kibana
| 5 | node5 | 192.168.1.5 | Logstash, Kibana
| 6 | node6 | 192.168.1.6 | Filebeat
| 7 | node7 | 192.168.1.7 | Filebeat
### 2.2 系统要求
- 操作系统:CentOS 7.x 或 Ubuntu 18.04 LTS
- Java版本:JDK 11
- 内存:至少16GB
- 硬盘:至少100GB
- 网络:所有机器之间互通
### 2.3 软件版本
- Elasticsearch: 7.10.0
- Logstash: 7.10.0
- Kibana: 7.10.0
- Filebeat: 7.10.0
- Zookeeper: 3.6.2
- Kafka: 2.7.0
## 3. 部署步骤
### 3.1 安装Java
在所有机器上安装JDK 11:
```bash
sudo yum install java-11-openjdk-devel # CentOS
sudo apt-get install openjdk-11-jdk # Ubuntu
```
验证安装:
```bash
java -version
```
### 3.2 部署Zookeeper
- de1、node2、node3上部署Zookeeper。
1. 下载并解压Zookeeper:
```bash
wget https://downloads.apache.org/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
- tar -xzf apache-zookeeper-3.6.2-bin.tar.gz
mv apache-zookeeper-3.6.2-bin /opt/zookeeper
```
2. 配置Zookeeper:
- 在`/opt/zookeeper/conf`目录下创建`zoo.cfg`文件:
```ini
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper
clientPort=2181
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
```
在`dataDir`目录下创建`myid`文件,内容分别为1、2、3。
3. 启动Zookeeper:
```bash
/opt/zookeeper/bin/zkServer.sh start
```
### 3.3 部署Kafka
- de1、node2、node3上部署Kafka。
1. 下载并解压Kafka:
```bash
wget https://downloads.apache.org/kafka/2.7.0/kafka_2.13-2.7.0.tgz
- tar -xzf kafka_2.13-2.7.0.tgz
mv kafka_2.13-2.7.0 /opt/kafka
```
2. 配置Kafka:
- 修改`/opt/kafka/config/server.properties`:
```properties
broker.id=1 # 在node2和node3上分别改为2和3
listeners=PLAINTEXT://node1:9092 # 在node2和node3上分别改为node2和node3
zookeeper.connect=node1:2181,node2:2181,node3:2181
```
3. 启动Kafka:
```bash
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties &
```
### 3.4 部署Elasticsearch
- de1、node2、node3上部署Elasticsearch。
1. 下载并解压Elasticsearch:
```bash
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-linux-x86_64.tar.gz
- tar -xzf elasticsearch-7.10.0-linux-x86_64.tar.gz
mv elasticsearch-7.10.0 /opt/elasticsearch
```
2. 配置Elasticsearch:
- 修改`/opt/elasticsearch/config/elasticsearch.yml`:
```yaml
cluster.name: my-cluster
node.name: node1 # 在node2和node3上分别改为node2和node3
network.host: 0.0.0.0
discovery.seed_hosts: ["node1", "node2", "node3"]
cluster.initial_master_nodes: ["node1", "node2", "node3"]
```
3. 启动Elasticsearch:
```bash
/opt/elasticsearch/bin/elasticsearch &
```
### 3.5 部署Logstash
- de4、node5上部署Logstash。
1. 下载并解压Logstash:
```bash
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.10.0-linux-x86_64.tar.gz
- tar -xzf logstash-7.10.0-linux-x86_64.tar.gz
mv logstash-7.10.0 /opt/logstash
```
2. 配置Logstash:
- 创建`/opt/logstash/config/logstash.conf`:
```yaml
input {
kafka {
bootstrap_servers => "node1:9092,node2:9092,node3:9092"
topics => ["logs"]
}
}
output {
elasticsearch {
hosts => ["node1:9200", "node2:9200", "node3:9200"]
index => "logs-%{+YYYY.MM.dd}"
}
}
```
3. 启动Logstash:
```bash
/opt/logstash/bin/logstash -f /opt/logstash/config/logstash.conf &
```
### 3.6 部署Kibana
- de4、node5上部署Kibana。
1. 下载并解压Kibana:
```bash
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.0-linux-x86_64.tar.gz
- tar -xzf kibana-7.10.0-linux-x86_64.tar.gz
mv kibana-7.10.0-linux-x86_64 /opt/kibana
```
2. 配置Kibana:
修改`/opt/kibana/config/kibana.yml`:
```yaml
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://node1:9200", "http://node2:9200", "http://node3:9200
- ```
3. 启动Kibana:
```bash
/opt/kibana/bin/kibana &
```
### 3.7 部署Filebeat
- de6、node7上部署Filebeat。
1. 下载并安装Filebeat:
```bash
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.0-linux-x86_64.tar.gz
- tar -xzf filebeat-7.10.0-linux-x86_64.tar.gz
mv filebeat-7.10.0-linux-x86_64 /opt/filebeat
```
2. 配置Filebeat:
- `/opt/filebeat/filebeat.yml`:
```yaml
filebeat.inputs:
- type: log
paths:
- - /var/log/*.log
output.kafka:
hosts: ["node1:9092", "node2:9092", "node3:9092"]
topic: "logs"
```
3. 启动Filebeat:
- ```bash
/opt/filebeat/filebeat -e -c /opt/filebeat/filebeat.yml &
```
## 4. 验证部署
1. 访问Kibana:`http://node4:5601` 或 `http://node5:5601
- . 在Kibana中创建索引模式`logs-*`,并查看日志数据。
相关文章:
deepseek部署:ELK + Filebeat + Zookeeper + Kafka
## 1. 概述 本文档旨在指导如何在7台机器上部署ELK(Elasticsearch, Logstash, Kibana)堆栈、Filebeat、Zookeeper和Kafka。该部署方案适用于日志收集、处理和可视化场景。 ## 2. 环境准备 ### 2.1 机器分配 | 机器编号 | 主机名 | IP地址 | 部署组件 |-…...
微软Office 2016-2024 x86直装版 v16.0.18324 32位
微软 Office 是一款由微软公司开发的办公软件套装,能满足各种办公需求。包含 Word、Excel、PowerPoint、Outlook 和 OneNote 等软件。Word 有强大文档编辑功能和多人协作;Excel 可处理分析大量数据及支持宏编程;PowerPoint 用于制作演示文稿且…...
CMake宏定义管理:如何优雅处理第三方库的宏冲突
在C/C项目开发中,我们常常会遇到这样的困境: 当引入一个功能强大的第三方库时,却发现它定义的某个宏与我们的项目产生冲突。比如: 库定义了 BUFFER_SIZE 1024,而我们需要 BUFFER_SIZE 2048库内部使用 DEBUG 宏控制日志…...
【SpringCloud】Gateway
目录 一、网关路由 1.1.认识网关 1.2.快速入门? 1.2.1.引入依赖 1.2.2.配置路由 二、网关登录校验 2.1.Gateway工作原理 ?2.2.自定义过滤器 2.3.登录校验 2.4.微服务获取用户 2.4.1.保存用户信息到请求头 2.4.2.拦截器获取用户? ?2.5.OpenFeign传递用户 三、…...
Maven入门教程
一、Maven简介 Maven 是一个基于项目对象模型(Project Object Model)的构建工具,用于管理 Java 项目的依赖、构建流程和文档生成。它的核心功能包括: 依赖管理(Dependency Management):自动下载和管理第三方库&#x…...
大数据与金融科技:革新金融行业的动力引擎
大数据与金融科技:革新金融行业的动力引擎 在今天的金融行业,大数据与金融科技的结合正在以惊人的速度推动着金融服务的创新与变革。通过精准的数据分析与智能化决策,金融机构能够更高效地进行风险管理、客户服务、资产管理等一系列关键操作…...
Autosar RTE配置-Port Update配置及使用-基于ETAS工具
文章目录 前言Autosar Rte中enableUpdate参数定义ETAS工具中的配置生成代码分析总结前言 在E2E校验中,需要对Counter进行自增,但每个报文周期不一样,导致自增的周期不一样。且Counter应该在收到报文之后才进行自增。基于这些需求,本文介绍使用RTE Port中的参数enableUpdat…...
【AVRCP】深入理解蓝牙音频 / 视频远程控制规范:从基础到应用
AVRCP(Audio/Video Remote Control Profile)作为蓝牙音频 / 视频控制领域的重要规范,通过其完善的协议架构、丰富的功能分类以及对用户需求的深入考量,为我们带来了便捷、高效的音频 / 视频设备控制体验。无论是在日常生活中的音乐…...
AWS SQS跨账户访问失败排查指南
引言 在使用AWS SQS(Simple Queue Service)时,跨账户访问是常见的业务场景。例如,账户A的应用程序向队列发送消息,账户B的消费者从队列拉取消息。尽管AWS官方文档明确支持此类配置,但在实际应用中,由于权限模型的复杂性,开发者和运维人员常会遇到“策略已配置但无法接…...
算法训练(leetcode)二刷第三十八天 | 1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和、392. 判断子序列
刷题记录 1143. 最长公共子序列1035. 不相交的线53. 最大子数组和动态规划优化版 392. 判断子序列 1143. 最长公共子序列 leetcode题目地址 本题和300. 最长递增子序列相似(题解)。 使用动态规划: dp数组含义:dp[i][j]表示 以…...
【JavaWeb学习Day20】
Tlias智能学习系统 员工登录 三层架构: Controller:1.接收请求参数(用户名,密码)2.调用Service方法3.响应结果 具体实现: /*** 登录*/ PostMapping("/login") public Result login(Reque…...
2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(二级)真题 + 答案
青少年软件编程(Python)等级考试试卷(二级) ↓↓↓↓↓↓ 模拟 分数:100 题数:37 一、单选题(共25题,共50分) 1. 已知字典如下 dic1 = { name: Ming, age:20, grade: A, Tel:6666666 } 以下哪个代码运行结果为20?( ) A. dic1(age) B. dic1[1] C. dic1(20) D. dic1[ag…...
一、对iic类模块分析与使用
bmp280驱动代码 说明: 1、该模块用于获取气压,温度,海拔等数据。 vcc,gnd接电源 sda ,scl 接iic通信引脚 2、该模块使用iic通信,通过iic发送请求相关类的寄存器值,芯片获取对应寄存器返回的数据…...
ROS 2机器人开发--CMakeLists.txt 文件详解
很多小白宝宝不懂CMakeLists.txt 究竟是干什么的,本文对CMakeLists.txt 文件进行详解 CMakeLists.txt 是 CMake 的核心文件,用户通过这个文件告诉 CMake 如何构建项目。这个文件通常包括设置项目名称、版本号、语言标准、编译器选项、查找依赖包、添加可…...
kan与小波,和不知所云的画图
文章目录 小波应用范围与pde小波的名字 画图图(a):数值解向量 \( u \)图(b):数值解向量 \( v \)结论图4 小波 在你提供的代码中,小波变换(Wavelet Transform)被用于 KANLinear 类中。具体来说,小波变换在 …...
使用DeepSeek实现自动化编程:类的自动生成
目录 简述 1. 通过注释生成C类 1.1 模糊生成 1.2 把控细节,让结果更精准 1.3 让DeepSeek自动生成代码 2. 验证DeepSeek自动生成的代码 2.1 安装SQLite命令行工具 2.2 验证DeepSeek代码 3. 测试代码下载 简述 在现代软件开发中,自动化编程工具如…...
算法题:快速排序
一、快速排序 1、快速排序总结 快速排序是一种高效的排序算法,基于分治法的思想。 分区操作是快速排序的核心,将数组分为两部分。 原地分区可以减少空间复杂度,提高效率。 快速排序的平均时间复杂度为 O(n log n),但在最坏情况…...
Python的那些事第三十六篇:基于 Vega 和 Vega-Lite 的数据可视化解决方案,Altair 声明式可视化库
Altair 声明式可视化库:基于 Vega 和 Vega-Lite 的数据可视化解决方案 摘要 在数据科学和分析领域,有效的数据可视化是理解数据、发现模式和传达见解的关键。Python 作为数据科学的主要编程语言之一,提供了多种数据可视化库。其中,Altair 是一个基于 Vega 和 Vega-Lite 的…...
aws(学习笔记第三十课) 练习使用transit gateway
aws(学习笔记第三十课) 使用transit gateway 学习内容: 什么是transit gateway构造两个vpc,并且使用session manager访问private subnet的ec2练习使用transit gateway 1. 什么是transit gateway Transit Gateway的概念 Transit Gateway就是VPC和OnPro…...
Phpstudy中的MySQL无法正常启动或启动后自动暂停,以及sqlilab环境搭建出现的问题解决方法
【解决方法】 无法启动的原因是Phpstudy中的MySQL与本地的mysql重名,导致无法正常启动;所以这时我们就需要将本地的MySQL进行修改名称; 或者修改phpstudy中数据库的端口号,但是我觉得还是不是很好解决这种问题 最后一个方法&#…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
