尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

# Rocky Linux 9.5 搭建 Kafka + ELK 完整日志平台技术文档
📅 发布时间:2026/6/29 23:24:11

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) 端口

相关新闻

  • MSPM0微控制器GPAMP与VREF模块:构建高精度模拟信号链的实战指南
  • WPF现代化界面开发架构解析:HandyControls控件库核心技术实现与性能优化指南
  • 5大架构设计原则:深入剖析React Icons开源项目架构

最新新闻

  • 五个提升SpringBoot项目效率的实用技巧
  • 在Kubernetes上构建高可用Hadoop集群:从原理到实践
  • SQLite数据库:Python内置数据库使用
  • 老师上课整理讲义:2026年3款视频链接转文字工具快速出文稿
  • 大数据专业适合冲一冲还是稳一稳?2026年别只看分数,要看你能不能扛住这条成长曲线
  • TI Sensium CC981H超低功耗无线传感平台:医疗级可穿戴设备设计实战

日新闻

  • 【计算机毕业设计案例】基于 Spring Boot+Vue 的电影售票系统设计与实现 前后端分离架构下影院在线购票管理平台(程序+文档+讲解+定制)
  • 到底 TMD 用哪个: npm, pnpm, Yarn, Bun, Deno? 傻瓜, 当然用 npm 啦
  • Google限制Meta使用Gemini模型 凸显AI授权竞争白热化

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号