3. Filebeat 连接 Logstash 报 “connection refused”
4. Logstash Beats 插件报 “地址已在使用”
5.Elasticsearch 报错问题:Java 环境找不到
6. Kibana / Elasticsearch 配置小坑
前言
在分布式系统和微服务架构成为主流的今天,日志管理已成为运维工作的核心挑战。面对海量且分散的日志数据,传统的命令行工具显得力不从心。
ELK Stack(Elasticsearch、Logstash、Kibana)作为开源日志解决方案的标杆,能够实现日志的集中收集、实时分析和可视化展示,让运维人员从繁琐的日志排查中解放出来。
本文将以实战为核心,手把手带你搭建一套完整可用的ELK系统。无论你是运维工程师还是开发人员,都能通过本文掌握企业级日志平台的构建方法。
现在,让我们开始这场日志管理的技术之旅!
相关知识简介
1. ELK 概述
ELK 是 Elasticsearch、Logstash 和 Kibana 三个开源工具的组合,提供一套完整的日志集中处理与分析解决方案:
-
Elasticsearch:核心搜索和分析引擎,用于存储日志并提供全文检索、聚合分析能力。
-
Logstash:数据收集与处理管道,从多种来源采集数据、清洗、转换后输出到 Elasticsearch。
-
Kibana:可视化与交互式分析工具,基于 Elasticsearch 数据构建仪表盘、图表和报告。
ELK Stack 能帮助企业统一收集、存储和分析来自多台服务器、不同应用的日志数据,适合日志分析、实时监控、数据可视化等场景。
2. Elasticsearch 核心知识
-
核心功能:全文检索、实时数据分析、分布式架构、RESTful API。
-
架构组件:集群、节点、索引、文档、分片、副本。
-
典型场景:日志和事件数据分析、全文搜索应用、监控与告警、商业智能。
-
优缺点:性能高、可扩展、灵活;但内存消耗大、管理复杂。
3. Logstash 核心知识
Logstash 是数据收集引擎,支持动态从各种数据源收集数据并进行过滤、分析、统一格式化后输出。
-
特点:多源数据采集、灵活过滤处理、丰富输出插件、插件可扩展、实时处理。
-
使用场景:日志收集与分析、数据清洗与转换、数据流整合。
-
轻量替代方案:
-
Filebeat:轻量级日志收集器,安装在客户端把日志直接发到 Logstash 或 Elasticsearch。
-
Fluentd:资源占用更少,在 Kubernetes 集群中常与 Elasticsearch 组成 EFK 方案。
-
4. Kibana 核心知识
Kibana 是 Elasticsearch 的可视化面板。
-
主要功能:丰富的数据可视化、交互式仪表板、日志搜索与管理、时间序列分析、报警与监控、基于角色的访问控制、地理可视化、报表生成。
-
使用场景:集中化日志管理与分析、实时监控、业务数据分析、安全分析、机器学习与趋势预测。
-
工作原理:Kibana 自身不存储数据,通过 REST API 从 Elasticsearch 查询数据并展示。
5. 为什么要用 ELK
传统的 grep/awk 在单机日志上还能用,但在多台服务器、大规模分布式环境下检索和统计困难、效率低。ELK 提供集中化收集、索引、可视化分析,大幅提高排障、监控和决策效率。
6. 完整日志系统特征
-
收集:多源日志采集。
-
传输:稳定解析和过滤并传输到存储系统。
-
存储:集中存储日志数据。
-
分析:友好的 UI 分析界面。
-
告警:支持错误报告和监控。
7. ELK 工作原理
-
在需要收集日志的服务器上部署 Logstash(或使用 Filebeat 先收集到日志服务器)。
-
Logstash 收集日志并格式化后写入 Elasticsearch。
-
Elasticsearch 对数据进行索引和存储。
-
Kibana 从 Elasticsearch 查询数据并生成图表展示。
实验环境规划(本次实验未使用node2,配置仅供参考)
| 节点名称 | IP地址 | 部署服务 |
|---|---|---|
| Node1 | 192.168.114.252 | Elasticsearch、Kibana |
| Node2 | 192.168.10.14 | Elasticsearch |
| Apache节点 | 192.168.114.251 | Logstash、Apache |
| Filebeat节点 | 192.168.114.253 | Filebeat |
基础环境准备
系统配置
在所有节点上执行以下操作:
bash
# 关闭防火墙和SELinux systemctl stop firewalld setenforce 0 # 设置主机名(分别在对应节点执行) hostnamectl set-hostname node1 # Node1节点 hostnamectl set-hostname node2 # Node2节点 hostnamectl set-hostname apache # Apache节点 hostnamectl set-hostname filebeat # Filebeat节点 # 配置主机解析 echo "192.168.114.252 node1" >> /etc/hosts echo "192.168.10.14 node2" >> /etc/hosts echo "192.168.114.251 apache" >> /etc/hosts echo "192.168.114.253 filebeat" >> /etc/hosts # 安装Java环境 yum -y install java java -version
Elasticsearch集群部署
安装Elasticsearch
在Node1和Node2节点上执行:
bash
cd /opt rpm -ivh elasticsearch-6.6.1.rpm systemct

最低0.47元/天 解锁文章
1714

被折叠的 条评论
为什么被折叠?



