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

  1. 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

  1. tar -xzf apache-zookeeper-3.6.2-bin.tar.gz

    mv apache-zookeeper-3.6.2-bin /opt/zookeeper

    ```

    2. 配置Zookeeper:

  1. 在`/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

  1. de1、node2、node3上部署Kafka。

    1. 下载并解压Kafka:

```bash

wget https://downloads.apache.org/kafka/2.7.0/kafka_2.13-2.7.0.tgz

  1. tar -xzf kafka_2.13-2.7.0.tgz

    mv kafka_2.13-2.7.0 /opt/kafka

    ```

    2. 配置Kafka:

  1. 修改`/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

  1. de1、node2、node3上部署Elasticsearch。

    1. 下载并解压Elasticsearch:

```bash

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-linux-x86_64.tar.gz

  1. tar -xzf elasticsearch-7.10.0-linux-x86_64.tar.gz

    mv elasticsearch-7.10.0 /opt/elasticsearch

    ```

    2. 配置Elasticsearch:

  1. 修改`/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

  1. de4、node5上部署Logstash。

    1. 下载并解压Logstash:

```bash

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.10.0-linux-x86_64.tar.gz

  1. tar -xzf logstash-7.10.0-linux-x86_64.tar.gz

    mv logstash-7.10.0 /opt/logstash

    ```

    2. 配置Logstash:

  1. 创建`/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

  1. de4、node5上部署Kibana。

    1. 下载并解压Kibana:

```bash

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.0-linux-x86_64.tar.gz

  1. 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

  1. ```

    3. 启动Kibana:

```bash

/opt/kibana/bin/kibana &

```

### 3.7 部署Filebeat

  1. de6、node7上部署Filebeat。

    1. 下载并安装Filebeat:

```bash

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.0-linux-x86_64.tar.gz

  1. 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:

  1. - /var/log/*.log

    output.kafka:

    hosts: ["node1:9092", "node2:9092", "node3:9092"]

    topic: "logs"

    ```

    3. 启动Filebeat:

  1. ```bash

    /opt/filebeat/filebeat -e -c /opt/filebeat/filebeat.yml &

    ```

    ## 4. 验证部署

    1. 访问Kibana:`http://node4:5601` 或 `http://node5:5601

  2. . 在Kibana中创建索引模式`logs-*`,并查看日志数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/72259.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.数据结构:1.Tire 字符串统计

1.Tire 字符串统计 #include<algorithm> #include<cstring> #include<iostream>using namespace std;const int N100010; int son[N][26];//至多 N 层&#xff0c;每一层至多 26 个节点&#xff08;字母&#xff09; int cnt[N];//字符串至多 N 个&#xff…

算法(四)——位运算与位图

文章目录 位运算、位图位运算基本位运算异或运算交换两个数无比较返回最大值缺失的数字唯一出现奇数次的数唯二出现奇数次的数唯一出现次数少于m次的数 位运算进阶判断一个整数是不是2的幂判断一个整数是不是3的幂大于等于n的最小的2的幂[left, right]内所有数字&的结果反转…

本地部署deepseek大模型后使用c# winform调用(可离线)

介于最近deepseek的大火&#xff0c;我就在想能不能用winform也玩一玩本地部署&#xff0c;于是经过查阅资料&#xff0c;然后了解到ollama部署deepseek,最后用ollama sharp NUGet包来实现winform调用ollama 部署的deepseek。 本项目使用Vs2022和.net 8.0开发&#xff0c;ollam…

SpringBoot原理-02.自动配置-概述

一.自动配置 所谓自动配置&#xff0c;就是Spring容器启动后&#xff0c;一些配置类、bean对象就自动存入了IOC容器当中&#xff0c;而不需要我们手动声明&#xff0c;直接从IOC容器中引入即可。省去了繁琐的配置操作。 我们可以首先将spring项目启动起来&#xff0c;里面有一…

P10265 [GESP样题 七级] 迷宫统计

题目描述 在神秘的幻想⼤陆中&#xff0c;存在着 n 个古老而神奇的迷宫&#xff0c;迷宫编号从 1 到 n。有的迷宫之间可以直接往返&#xff0c;有的可以⾛到别的迷宫&#xff0c;但是不能⾛回来。玩家小杨想挑战⼀下不同的迷宫&#xff0c;他决定从 m 号迷宫出发。现在&#x…

Spring框架中的工厂模式

在Spring框架里&#xff0c;工厂模式的运用十分广泛&#xff0c;它主要帮助我们创建和管理对象&#xff0c;让对象的创建和使用分离&#xff0c;提高代码的可维护性和可扩展性。下面为你详细介绍Spring框架中工厂模式的具体体现和示例&#xff1a; 1. BeanFactory 作为工厂模式…

音视频-WAV格式

1. WAV格式说明&#xff1a; 2. 格式说明&#xff1a; chunkId&#xff1a;通常是 “RIFF” 四个字节&#xff0c;用于标识文件类型。&#xff08;wav文件格式表示&#xff09;chunkSize&#xff1a;表示整个文件除了chunkId和chunkSize这 8 个字节外的其余部分的大小。Forma…

SQL Server Management Studio的使用

之前在https://blog.csdn.net//article/details/140961550介绍了在Windows10上安装SQL Server 2022 Express和SSMS&#xff0c;这里整理下SSMS的简单使用&#xff1a; SQL Server Management Studio(SSMS)是一种集成环境&#xff0c;提供用于配置、监视和管理SQL Server和数据…

数据集笔记:NUSMods API

1 介绍 NUSMods API 包含用于渲染 NUSMods 的数据。这些数据包括新加坡国立大学&#xff08;NUS&#xff09;提供的课程以及课程表的信息&#xff0c;还包括上课地点的详细信息。 可以使用并实验这些数据&#xff0c;它们是从教务处提供的官方 API 中提取的。 该 API 由静态的…

剑指 Offer II 031. 最近最少使用缓存

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20031.%20%E6%9C%80%E8%BF%91%E6%9C%80%E5%B0%91%E4%BD%BF%E7%94%A8%E7%BC%93%E5%AD%98/README.md 剑指 Offer II 031. 最近最少使用缓存 题目描述 运用所掌握的…

uniapp 测试 IPA 包安装到测试 iPhone

将uniapp测试IPA包安装到测试iPhone有以下几种方法&#xff1a; 使用Xcode安装 确保计算机上安装了Xcode&#xff0c;并将iOS设备通过数据线连接到计算机。打开Xcode&#xff0c;在菜单栏中选择Window->Devices and Simulators&#xff0c;在设备列表中找到要安装的iPhone…

vcredist_x64 资源文件分享

vcredist_x64 是 Microsoft Visual C Redistributable 的 64 位版本&#xff0c;用于在 64 位 Windows 系统上运行使用 Visual C 开发的应用程序。它包含了运行这些应用程序所需的运行时组件。 vcredist_x64 资源工具网盘下载链接&#xff1a;https://pan.quark.cn/s/ef56f838f…

weaviate 安装与测试

weaviate 安装 前提条件&#xff1a;docker安装完成 步骤&#xff1a; 开启docker 在终端运行命令 docker run -p 8080:8080 -p 50051:50051 cr.weaviate.io/semitechnologies/weaviate:1.29.0 weaviate 测试 python-client安装代码测试 import weaviate client weaviat…

机器学习:监督学习、无监督学习和强化学习

机器学习&#xff08;Machine Learning, ML&#xff09;是人工智能&#xff08;AI&#xff09;的一个分支&#xff0c;它使计算机能够从数据中学习&#xff0c;并在没有明确编程的情况下执行任务。机器学习的核心思想是使用算法分析数据&#xff0c;识别模式&#xff0c;并做出…

自学微信小程序的第六天

DAY6 1、使用录音API首先需要通过wx.getRecorderManager()方法获取到一个RecorderManager实例,该实例是一个全局唯一的录音管理器,用于实现录音功能。 表32:RecorderManager实例的常用方法 方法名称 说明 start() 开始录音 pause() 暂停录音 resume() 继续录音 stop() 停止…

【数据分析】上市公司市场势力数据测算+dofile(1992-2023年)

市场势力通常指的是公司在市场中的相对竞争力和定价能力。具有较强市场势力的公司通常能够控制价格、影响市场规则&#xff0c;并在竞争中占据主导地位。A股公司市场势力数据是对中国资本市场中公司竞争力的深入分析&#xff0c;A股市场中&#xff0c;公司市场势力的强弱不仅影…

Linux三种网络方式

前言 发现运维啥都得会&#xff0c;这周就遇到了网络问题自己无法解决&#xff0c;因此痛定思痛学一下。 参考文献 你管这破玩意叫网络&#xff1f; 桥接模式、NAT模式、仅主机模式&#xff0c;原来是这样工作的 交换机 构成局域网&#xff0c;实现所有设备之间的通信。 …

DeepSeek + Mermaid编辑器——常规绘图

下面这张图出自&#xff1a;由清华大学出品的 《DeepSeek&#xff1a;从入门到精通》。 作为纯文本生成模型&#xff0c;DeepSeek虽不具备多媒体内容生成接口&#xff0c;但其开放式架构允许通过API接口与图像合成引擎、数据可视化工具等第三方系统进行协同工作&#xff0c;最终…

javaweb将上传的图片保存在项目文件webapp下的upload文件夹下

前端HTML表单 (upload.html) 首先&#xff0c;创建一个HTML页面&#xff0c;允许用户选择并上传图片。 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>图片上传</title> </head> <…

2025最新Flask学习笔记(对照Django做解析)

前言&#xff1a;如果还没学Django的同学&#xff0c;可以看Django 教程 | 菜鸟教程&#xff0c;也可以忽略下文所提及的Django内容&#xff1b;另外&#xff0c;由于我们接手的项目大多都是前后端分离的项目&#xff0c;所以本文会跳过对模板的介绍&#xff0c;感兴趣的朋友可…