ELK 日志分析系统

article/2025/11/7 9:20:41

目录

  • 引言
  • 一、ELK 日志分析系统简介
    • 1. 日志服务器
    • 2. ELK 是什么
    • 3. Logstash 四种工具
    • 4. 日志处理步骤
  • 二、Elasticsearch 的基础核心概念
    • 1. 概述
    • 2. 关系型数据库与 Elasticsearch 对应的关系
    • 3. 核心概念
  • 三、Logstash 介绍
    • 1. logStash 的主要组件
    • 2. LogStash 主机分类
  • 四、Kibana 介绍
    • 1. 简介
    • 2. 主要功能


引言

  • 日志分析是运维工程师解决系统故障,发现问题的主要手段。
  • 日志主要包括系统日志、应用程序日志和安全日志,系统运维和开发人员可以通过日志了解服务器软硬件信息检查配过程中的错误及错误发生的原因。
  • 经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误
  • 通常,日志被分散的储存在不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志,既繁琐又效率低下。为此,我们可以使用集中化的日志管理,例如:开源的 syslog,将所有服务器上的日志收集汇总
  • 集中化管理日志后,日志的统计和检承又成为一件比较麻烦的事情,一般我们使用 grep、awk 和 wc 等 Linux 命令能实现检索和统计,但是对于更高要求的查询、排序和统计等,再加上庞大的机器数量,使用这样的方法依然难免有点力不从心
  • 开源实时日志分析 ELK 平台能够完美的解决我们上述的问题,ELK 由 ElasticSearch、Logstash 和 Kiabana 这三个开源工具组成

一、ELK 日志分析系统简介

1. 日志服务器

  • 提高安全性:仅是基于日志来恢复和定位故障,是很困难的
  • 集中存放日志,即集中化管理
  • 缺陷:对日志的分析困难,因为集中化管理,所以信息量更加巨大

2. ELK 是什么

日志简化分析的管理工具,由Elasticsearch(ES)、Logstash、Kibana三个开源工具组成

官方网站

  • ES(nosql非关数据库):存储功能和索引
  • Logstash(收集日志):到应用服务器上拿取 log,并进行格式转换后输出到 es 中
    ① 通过 input 功能来收集/采集 log
    ② filter 过滤器:格式化数据
    ③ output 输出:日志输出到es数据库内
  • Kibana(展示工具):将es内的数据在浏览器展示出来,通过UI界面展示(可以根据自己的需求对日志进行处理,方便查阅读取)

3. Logstash 四种工具

  • Packetbeat ( 搜集网络流量数据)
  • Topbeat (搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
  • Filebeat (搜集文件数据),相较于 Logstash 是轻量级工具
  • Winlogbeat (搜集Windows事件日志数据)

4. 日志处理步骤

  • ① Logstash 收集 AppServer 产生的 Log,并将log进行集中化管理
  • ② 将日志格式化(Logstash) 并存放到 ElasticSearch 集群中
  • ③ 对格式化后的数据进行索引|和存储( Elasticsearch)
  • ④ Kibana 则从 Es 集群中查询数据生成图表,再返回给 browsers

mark

二、Elasticsearch 的基础核心概念

1. 概述

  • 提供了一个分布式多用户能力的全文搜索(索引)引擎,开源,使用 Java 开发
  • 分布式即数据不会放在一个地方
  • 正是 ES 这些优秀的机制,所以会被百度等龙头企业所选择

2. 关系型数据库与 Elasticsearch 对应的关系

mysqlElasticsearch
database数据库index索引
table表type类型
row行document文档
column列属性

3. 核心概念

  • 接近实时(NRT)
    elasticsearch是一个接近实时的搜索平台,这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒)

  • 集群(cluster)
    集群有一个唯一性标示的名字,默认是 elasticsearch;
    集群就是由一个或多个节点组织在一起,它们共同持有整个的数据,并一起提供索引和搜索功能;
    其中一个节点为主节点,这个主节点是可以通过选举产生的,并提供跨节点的联合索引和搜索的功能;
    集群名字很重要,每个节点是基于集群名字加入到其集群中的

  • 节点(node)
    节点就是一台单一的服务器,是集群的一部分,存储数据并参与集群的索引和搜索功能;
    像集群一样,节点也是通过名字来标识,默认是在节点启动时随机分配的字符名,可以自己定义;
    名字在集群中用于识别服务器对应的节点

  • 索引(index)
    一个索引就是一个拥有几分相似特征的文档的集合;
    一个索引由一个名字来标识(必须全部是小写字母的),并且当我们要对对应于这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字

  • 类型(type)
    在一个索引中,你可以定义一种或多种类型。一个类型是你的索引的一个逻辑上的分类/分区;通常,会为具有一组共同字段的文档定义一个类型

  • 文档( document )
    文档以JSON ( Javascript object Notation)格式来表示,而JSON是一个到处存在的互联网数据交互格式。
    虽然一个文档在物理上位于一个索引中,实际上一个文档必须在一个索引内被索引和分配一个类型。

  • 分片shards
    即es作为搜索引擎快的原因:
    在实际情况下,索引存储的数据可能超过单个节点的硬件限制。如一个10亿文档需1TB空间可能不适合存储在单个节点的磁盘上,或者从单个节点搜索请求太慢了。为了解决这个问题,elasticsearch提供将索引分成多个分片的功能。当在创建索引时,可以定义想要分片的数量。每一个分片就是一个全功能的独立的索引,可以位于集群中任何节点上。

分片的好处:
水平分割扩展,增大存储量
分布式并行跨分片操作,提高性能和吞吐量

  • 副本replicas
    为了防止网络问题等其它问题造成数据丢失,需要有一个故障切换机制,为此,elasticsearch让我们将索引分片复制一份或多份,称之为分片副本或副本。

副本也有两个最主要原因:
高可用性,以应对分片或者节点故障,需要在不同的节点上
提高性能, 增大吞吐量,搜索可以并行在所有副本上执行

  • 总之,每个索引可以被分成多个分片。一个索引也可以被复制0次( 意思是没有复制)或多次。一旦复制了,每个索引就有了主分片(作为复制源的原来的分片)和复制分片(主分片的拷贝)之别。分片和副本的数量可以在索引创建的时候指定。在索引创建之后,你可以在任何时候动态地改变副本的数量,但是你事后不能改变分片的数量。

三、Logstash 介绍

  • Logstash 由 JRuby 语言编写,基于消息(message-based) 的简单架构,并运行在 Java 虚拟机(JVM)上。LogStash可配置单一的代理端(agent) 与其它开源软件结合,以实现不同的功能。
  • Logstash 的理念很简单,它只做3件事情:Collect:数据输入、Enrich:数据加工,1如过滤,改等、Transport:数据输出( 被其他模块进行调用)
    mark

1. logStash 的主要组件

  • ① Shipper(日志收集者):负责监控本地日志文件的变化,及时把日志文件的最新内容收集起来。通常,远程代理端(agent)只需要运行这个组件即可;
  • ② Indexer(日志存储者):负责接收日志并写入到本地文件。
  • ③ Broker(日志Hub):负责连接多个Shipper和多个Indexer
  • ④ Search and Storage(搜索和存储器):允许对事件进行搜索和存储;
  • ⑥ Web Interface(web界面端):基于Web的展示界面

2. LogStash 主机分类

  • ① 代理主机(agent host) :作为事件的传递者(shipper),将各种日志数据发送至中心主机;只需运行Logstash代理( agent)
  • ② 程序中心主机(central host) :可运行包括中间转发器(Broker) 、索引器(Indexer) 、搜索和存储器( Search and
    Storage )、web界面端(web Interface)在内的各个组件,以实现对日志数据的接收、处理和存储

四、Kibana 介绍

1. 简介

  • Kibana 是一个针对 Elasticsearch 的开源分析及可视化平台,用来搜索、查看交互存储在 Elasticsearch 索引中的数据。
  • 使用 Kibana,可以通过各种图表进行高级数据分析及展示。它操作简单,基于浏览器的用户界面可以快速创建仪表板( dashboard)实时显示Elasticsearch查询动态。
  • 设置 Kibana 非常简单。无需编写代码,几分钟内就可以完成 Kibana 安装并启动 Elasticsearch 索引监测。

2. 主要功能

  • Elasticsearch 无缝之集成:
    Kibana架构为 Elasticsearch 定制, 可以将任何结构化和非结构化数据加入Elasticsearch索引;Kibana 还充分利用了 Elasticsearch 强大的搜索和分析功能。
  • 整合你的数据:
    Kibana 能够更好地处理海量数据,并据此创建柱形图、折线图、散点图、直方图、饼图和地图。
  • 复杂数据分析:
    Kibana 提升了 Elasticsearch 分析能力,能够更加智能地分析数据,执行数学转换并且根据要求对数据切割分块。
  • 让更多团队成员受益:
    强大的数据库可视化接口让各业务岗位都能够从数据集合受益。
  • 接口灵活,分享更容易:
    使用 Kibana 可以更加方便地创建、保存、分享数据,并将可视化数据快速交流。
  • 配置简单:
    Kibana 的配置和启用非常简单,用户体验非常友好。Kibana自带Web服务器,可以快速启动运行。
  • 可视化多数据源:
    Kibana 可以非常方便地把来自 Logstash、 ES-Hadoop、 Beats 或第三方技术的数据整合到Elasticsearch,支持的第三方技术包括Apache Flume、 Fluentd等。
  • 简单数据导出:
    Kibana 可以方便地导出感兴趣的数据,与其它数据集合并融合后快速建模分析,发现新结果。

http://chatgpt.dhexx.cn/article/ssJgorhu.shtml

相关文章

ELk日志分析系统搭建

一、什么是ELK ​ ELK是Elasticsearch Logstash Kibana 这种架构的简写. 二、ELK常见的架构 Elasticsearch Logstash Kibana 这是一种最简单的架构。这种架构,通过logstash收集日志,Elasticsearch分析日志,然后在Kibana(web界面)中展示。…

Linux 基础命令入门 创建文件

Linux 基础命令入门 创建文件 实操 从当前目录下切换到根目录下 su 或者 su root创建yibodong命名的文件夹 创建文件夹并查看列表 mkdir yibodong显示当前路径 pwd在yibodong命名的文件夹下创建一个文件YBD mkdir -p yibodong/YBD创建该文件的软连接 ln -s yibodong/YBD…

Linux之shell命令

1、shell入门 在计算机科学中,shell就是一个命令解释器。 shell是位于操作系统和应用程序之间,是他们二者最主要的接口。 shell负责把应用程序的输入命令信息解释给操作系统,将操作系统指令处理后的结果解释给应用程序。 一句话,shell就是在操作系统和应用程序之间的一个命…

Linux 基础命令入门 man

Linux 基础命令入门 man 1、使用man命令查看find命令的用法 输入Man,系统会提示您需要什么册页? man输入Man find (下图只是一部分) man find按下CtrlZ退出 2、创建以2017开头的多个文件 touch 20179999.txt 20171111.txt 2…

Linux之ping命令

【Linux常用命令速查手册】关注【入门小站】,后台回复 「1001」 自取。 ping命令是用于排除故障,测试和诊断网络连接问题的最常用的命令之一。 Ping通过将一个或多个ICMP(Internet控制消息协议)Echo请求包发送到指定目标IP并等待回…

Linux命令学习教程【建议收藏】

大家好,我是辣条。 目录 一、操作系统 二、虚拟机软件 三、Ubuntu操作系统 四、Linux内核及发行版 五、查看目录命令 六、切换目录命令 七、绝对路径和相对路径 八、创建、删除文件及目录命令 九、复制、移动文件及目录命令 十、终端命令格式的组成 十…

Linux 命令完全手册

这本《Linux 命令完全手册》将涵盖你作为开发者需要用到的 60 个核心 Bash 命令。每个命令都附有代码示例和用法提示。 这本手册遵循二八定律:你花两成的时间学习一个主题,便可获得其中八成的知识。 我觉得这种方式能给你一个全面的概述。 这本手册并…

Linux新手入门教程

下面给你讲解新手第一次接触Linux操作系统 一、学习Linux:1、Linux系统、Linux命令、ssh、websever(apache)、MySQL、缓存、PHP、Python、java、必备服务 2、Linux能做什么:企业服务器、嵌入式开发 3、Linux的学习方法(强迫自己一个学习环境)&#xff…

linux怎样打开终端命令,Linux命令-初学者入门之打开终端

打开终端 在Ubuntu 18.04系统上,您可以通过单击屏幕左上方的“ 活动”项,然后键入“terminal”, “command”, “prompt” or “shell”的前几个字母来找到终端的启动器。是的,开发人员已经为启动器设置了所有最常见的同义词,因此您应该不会有任何问题。 其他版本的Linux或…

阿里云送你Hands-on Labs X linux联名T恤——阿里云高校计划《Linux命令入门》训练营

阿里云送你Hands-on Labs X linux联名T恤——阿里云高校计划《Linux命令入门》训练营 准备工作进行实验进入考试领取T恤附:考题附:T恤网图阿里云高校计划《Linux命令入门》训练营,学习Linux命令,搭建云上博客,学完领阿里云爆款T恤。每天零点发布T恤500件,6月20前有效。活…

linux常用命令大全,入门基础版

目录 一、常用的基本命令 1.目录管理 2.进程管理 3.修改文件属性 4.文件内容查看 5.安装软件 6.Vim编辑器 7.基本属性 8.账号管理 9.用户组管理 10.磁盘管理 二、Linux 目录结构 一、常用的基本命令 1.目录管理 ls: #列出目录-a: #参数: all ,查看全部的文件,包…

Linux基本命令

目录 1、Linux的目录结构 Linux路径的描述方式 2、Linux命令入门 Linux命令基础格式 ls命令 隐藏文件、文件夹: pwd命令 cd命令 HOME目录 相对路径、绝对路径 特殊路径符 mkdir命令(常见文件) touch命令(创建文件夹&am…

常用的Linux命令(小白入门指南)

下面为大家整理一些常用的linux命令 文章目录 linux命令一.文件与目录操作命令1.clear(ctrll)2.ls(list)/tree3.cd(change directory)4.touch5.mkdir(make directory)6.cp(copy)7.mv(move)8.cat9.tar10.rm(remove)11.find12.Senior command(组合命令) 二.用户权限操作命令1.查看…

linux Shell入门

一、初始shell (1)什么是shell? (2)什么是变量? (3)程序和进程的区别? 二、语言 (1)计算能理解的语言是什么呢 ? (2…

linux常用vim命令大全,Linux基础入门 vim常用命令详解

介绍 vim是一个文本编辑程序 没有菜单,只有命令,且命令繁多 命令行模式下相关命令 1. 移动光标 h: ← 左移 ​ l: → 右移 ​ j: ↓ 下移 ​ k: ↑ 上移 ​ gg: 光标移动文件开头 ​ G: 光标移动到文件末尾 ​ 0: 光标移动到行首 ​ $: 光标移动到行尾 ​ 123G:跳转到第123行…

Linux常用命令

🏆作者简介:哪吒,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多届新星计划导师✌、博客专家💪 ,专注Java硬核干货分享,立志做到Java赛道全网Top N。 🏆本文收录于,Java基础教程系列,目前已经700+订阅,CSDN最强Java专栏,包含全部Java基础知识点、Java8新特性、…

linux入门命令总结

1.登录: Login: root(管理员名) Password:linux的密码 2.关机、注销、重启(关机:halt ,shutdown, init 0,poweroff)         (重启:halt ,shutdown, init 0,…

linux命令入门

这一系列的Linux入门都是本人在《鸟哥的Linux私房菜》的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不是书本上推荐的CentOS,建议装双系统,不要使用虚拟机。 代码在gi…

Linux 入门常见命令大全-初学者必看

本文是我在学习linux过程学习到的相关基本命令行。 1.目录相关 ls 查看文件列表 ls –a 查看所有文件其中包括隐藏文件 ls -l 查看本目录文件的信息 ls -lh 文件列表里面的以人以懂的方式呈现。 pwd 查看当前目录的路径 cd 更改路径可以分为两种 1.相对路径&#xff…

【linux操作系统】基础指令(入门必备)

目录 ls指令 🎨基本概念 🎯实例分析 pwd指令 🎨基本概念 🎯实例分析 cd指令 🎨基本概念 🎯实例分析 touch指令 🎨基本概念 🎯实例分析 mkdir指令(重要) &#x1f3a8…