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

# Rocky Linux 9.5 搭建 Kafka + ELK 完整日志平台技术文档

1. 概述

提供在 Rocky Linux 9.5 环境下,从零搭建Filebeat -> Kafka -> Logstash -> Elasticsearch -> Kibana架构的标准化操作指南。该架构通过 Kafka 实现日志的缓冲与削峰,利用 ELK 栈完成日志的清洗、存储与可视化,最终实现全链路日志的浏览器端实时监控。

执行范围:所有节点

2.1 关闭防火墙与 SELinux

为降低测试环境的网络配置复杂度,需关闭系统安全策略

systemctl stop firewalld && systemctl disable firewalld

setenforce 0

sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

2.2 调整系统资源限制

Elasticsearch 对虚拟内存与文件描述符有严格要求,需执行以下调优

# 调整虚拟内存映射echo 'vm.max_map_count=262144' >> /etc/sysctl.conf && sysctl -p

# 调整文件描述符和进程数限制

cat <<EOF >> /etc/security/limits.conf

* soft nofile 65535

* hard nofile 65535

* soft nproc 4096

* hard nproc 4096

EOF

2.3 安装 Java 运行环境 (JDK 17)

wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.11%2B9/OpenJDK17U-jdk_x64_linux_hotspot_17.0.11_9.tar.gz

tar -zxvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.11_9.tar.gz -C /usr/local/

mv /usr/local/jdk-17.0.11+9 /usr/local/jdk17

cat <<EOF >> /etc/profil

eexport JAVA_HOME=/usr/local/jdk17

export PATH=\$JAVA_HOME/bin:\$PATHEOF

source /etc/profile

java -version # 验证输出

3. 核心组件部署

3.1 部署 Elasticsearch (存储与检索)

1.下载与解压

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

tar -zxvf elasticsearch-8.15.0-linux-x86_64.tar.gz -C /usr/local/

mv /usr/local/elasticsearch-8.15.0 /usr/local/elasticsearch

2创建专用用户(ES 严禁 root 运行):

useradd es
chown -R es:es /usr/local/elasticsearch

3修改核心配置(/usr/local/elasticsearch/config/elasticsearch.yml):

cluster.name: elk-cluster

node.name: node-1

network.host: 0.0.0.0

http.port: 9200

discovery.type: single-node

xpack.security.enabled: false

xpack.security.http.ssl.enabled: false

4启动服务

su - es -c "/usr/local/elasticsearch/bin/elasticsearch -d"

curl http://localhost:9200 # 验证返回 JSON 信息

3.2 部署 Kafka (消息缓冲)

5下载与解压:

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

tar -zxvf kafka_2.13-4.0.1.tgz -C /opt/

mv /opt/kafka_2.13-4.0.1 /opt/kafka

6初始化 KRaft 模式

KAFKA_CLUSTER_ID="$(/opt/kafka/bin/kafka-storage.sh random-uuid)"

/opt/kafka/bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c /opt/kafka/config/kraft/server.properties --standalone

7启动服务

/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/kraft/server.properties

3.3 部署 Logstash (数据清洗与转发)

8.下载与解压

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

tar -zxvf logstash-8.15.0-linux-x86_64.tar.gz -C /usr/local/

mv /usr/local/logstash-8.15.0 /usr/local/logstash

9编写数据流转配置(/usr/local/logstash/config/kafka-to-es.conf):

input {

kafka {

bootstrap_servers => "localhost:9092"

topics => ["app-logs"]

codec => "json"

}

}

output {

elasticsearch {

hosts => ["http://localhost:9200"]

index => "app-logs-%{+YYYY.MM.dd}"

}

}

10.启动服务

/usr/local/logstash/bin/logstash -f /usr/local/logstash/config/kafka-to-es.conf &

3.4 部署 Filebeat (日志采集)

11下载与解压

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

tar -zxvf filebeat-8.15.0-linux-x86_64.tar.gz -C /usr/local/

mv /usr/local/filebeat-8.15.0-linux-x86_64 /usr/local/filebeat

12修改配置文件(/usr/local/filebeat/filebeat.yml):

filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log # 替换为实际日志路径

output.kafka:
hosts: ["localhost:9092"]
topic: "app-logs"
required_acks: 1

13启动服务

/usr/local/filebeat/filebeat -e -c /usr/local/filebeat/filebeat.yml &

4. 浏览器可视化方案

4.1 部署 Kibana (查看清洗后的日志)

14下载解压

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

tar -zxvf kibana-8.15.0-linux-x86_64.tar.gz -C /usr/local/

mv /usr/local/kibana-8.15.0-linux-x86_64 /usr/local/kibana

15修改配置(/usr/local/kibana/config/kibana.yml):

server.host: "0.0.0.0"

elasticsearch.hosts: ["http://localhost:9200"]

i18n.locale: "zh-CN"

16启动与访问

/usr/local/kibana/bin/kibana &

浏览器访问http://<服务器IP>:5601,在 Stack Management 中创建app-logs-*索引模式,即可在 Discover 中查看日志。

4.2 部署 Kafka-UI (查看 Kafka 原始消息)

若需在浏览器中直接监控 Kafka 缓冲区的消息,可通过 Docker 快速部署 Kafka-UI:

docker run -d --name kafka-ui -p 8080:8080 \

-e KAFKA_CLUSTERS_0_NAME=local \

-e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=localhost:9092 \

provectuslabs/kafka-ui:latest

浏览器访问http://<服务器IP>:8080,点击对应 Topic 即可浏览实时消息内容。

17.版本一致性

Elasticsearch、Logstash、Kibana、Filebeat 的主版本号必须完全一致(本文统一为 8.15.0),否则会导致通信协议不兼容。

18.内存分配

Elasticsearch 默认占用 2G 内存。若服务器内存较小,需修改/usr/local/elasticsearch/config/jvm.options中的-Xms-Xmx参数。

19.权限问题

若 ES 启动报错,首先检查目录归属权是否为es用户,严禁使用root启动 Elasticsearch。

20.路径检查:

确保所有配置文件路径正确,特别是 Kafka 的配置文件路径可能需要根据实际安装位置调整。

21.网络连通性

确保各组件之间的网络端口可以互相访问,特别是 9092(Kafka)、9200(Elasticsearch)、5601(Kibana) 端口

http://www.jsqmd.com/news/1092382/

相关文章:

  • 番外篇 F05:电机控制与PID调节实战《电机控制中的PID调节:位置式/增量式算法解析与使用场景全攻略》
  • 拼多多运营整体框架(2026 最新精细化玩法)
  • 【无标题】实训平台基础软件基于自研Docker容器编排管理引擎,运用云原生和容 器技术构建训练环境
  • 【实战解析】从噪声到特征:ECG信号预处理与智能筛选全流程拆解
  • 5大架构设计原则:深入剖析React Icons开源项目架构
  • 第86题 2026年国家级科研痛点——碳化硅(SiC)单晶衬底缺陷控制与扩径技术
  • MSPM0微控制器GPAMP与VREF模块:构建高精度模拟信号链的实战指南
  • Grad-CAM实战:从理论到热力图生成
  • WPF现代化界面开发架构解析:HandyControls控件库核心技术实现与性能优化指南
  • 正则表达式详解(C++20 )
  • 这些宝藏级在线工具,让你的效率原地起飞
  • HarmonyOS技术精讲-应用间跳转:一键调用系统能力(系统应用跳转)
  • 鹤壁企业采购白酒,怎么选得知道
  • Unity Mod Manager:轻松管理Unity游戏模组的终极指南
  • 专业级暗黑3战斗自动化工具深度解析:5大核心功能实战指南
  • 大麦网Python自动化抢票系统:技术架构与实战应用解析
  • MSP432硬件调试实战:适配器与插座板配置详解
  • 戴森球计划3000+工厂蓝图终极指南:从新手到专家的完整解决方案
  • TrollInstallerX突破性指南:iOS 14-16.6.1设备快速部署TrollStore的实战手册
  • HarmonyOS技术精讲-应用间跳转:跨应用传递数据与返回结果
  • Java高并发编程核心原理:程序员进阶必会!
  • Docker--Docker引擎与镜像相关命令
  • 完整学习LLM(五):Embedding是什么,为什么文本能变成向量
  • 【infra之路】10-PagedAttention 与 KV Cache 管理
  • 配置中心:为什么需要它?如何选型?
  • 开源社区新动态,Github 上值得关注的 ROCm 项目推荐
  • 有限域原根求解:Python实现与数学原理
  • 3分钟掌握AI智能分层:Layerdivider让单图变多层的终极指南
  • 3分钟掌握WorkshopDL:无需Steam轻松下载创意工坊模组
  • 终极传送技巧:掌握GTA5线上小助手的多人载具传送与坐标微调