首页 > 其他分享 >ELK基础介绍

ELK基础介绍

时间:2022-11-22 23:36:25浏览次数:52  
标签:ELK 收集 基础 介绍 Elasticsearch 日志 数据 Logstash

前戏:

运维人员需要对系统和业务日志进行精准把控,便于分析系统和业务状态。日志分布在不同的服务器上,传统的使用传统的方法依次登录每台服务器查看日志,既繁琐又效率低下。所以我们需要集中化的日志管理工具将位于不同服务器上的日志收集到一起, 然后进行分析展示。

市场上的产品

  • 简单的 Rsyslog,Syslog-ng
  • 商业化的 Splunk
  • 开源的
  • FaceBook 公司的 Scribe,
  • Apache 的 Chukwa,
  • Linkedin 的 Kafak,
  • Cloudera 的 Fluentd,
  • ELK

​Splunk​​是一款非常优秀的产品,但是它是商业产品,价格昂贵,让许多老板而却步.

ELK 协议栈介绍及体系结构

​ELK​​其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写,​​Elasticsearch​​,​​Logstash​​ 和 ​​Kibana​​。这三款软件都是开源软件,通常是配合使用,而且又先后归于 Elastic.co 公司名下,故被简称为​​ELK​​协议栈

ELK基础介绍_服务器

Elasticsearch

​Elasticsearch​​ 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 ​​Apache Lucene​​基础上的搜索引擎,使用​​Java​​语言编写

主要特点 实时分析 分布式实时文件存储,并将每一个字段都编入索引 文档导向,所有的对象全部是文档 高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards 和 Replicas)。接口友好,支持 JSON

Logstash

官方产品介绍:https://www.elastic.co/cn/products/logstash

​Logstash​​ 是一个具有实时渠道能力的数据收集引擎。使用 JRuby 语言编写。其作者是世界著名的运维工程师乔丹西塞 (JordanSissel)

主要特点

  • 几乎可以访问任何数据
  • 可以和多种外部应用结合
  • 支持弹性扩展

logstash可以采集任何格式的数据,当然我们这里主要是讨论采集系统日志,服务日志等日志类型数据。

ELK基础介绍_elasticsearch_02

Kibana

​Kibana​​是一款基于 ​​Apache​​开源协议,使用 ​​JavaScript​​语言编写,为 ​​Elasticsearch​​提供分析和可视化的 Web 平台。它可以在​​Elasticsearch​​的索引中查找,交互数据,并生成各种维度的表图.

Filebeat

​ELK​​​ 协议栈的新成员,一个轻量级开源日志文件数据搜集器,基于 ​​Logstash-Forwarder​​​源代码开发,是对它的替代。在需要采集日志数据的 ​​server​​​ 上安装​​​​Filebeat​​​,并指定日志目录或日志文件后,​​Filebeat​​​就能读取数据,迅速发送到​​Logstash​​​进行解析,亦或直接发送到 ​​Elasticsearch​​进行集中式存储和分析。

ELK基础介绍_数据_03

因为logstash消耗内存等资源太高,如果在要采集的服务上都安装logstash,这样对应用服务器的压力增加。所以我们要用轻量级的采集工具才更高效,更省资源。

beats是轻量级的日志收集处理工具,Beats占用资源少

  1. Packetbeat: 网络数据(收集网络流量数据)
  2. Metricbeat: 指标 (收集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
  3. Filebeat: 文件(收集日志文件数据)
  4. Winlogbeat: windows事件日志(收集 Windows 事件日志数据)
  5. Auditbeat:审计数据 (收集审计日志)
  6. Heartbeat:运行时间监控 (收集系统运行时的数据)













标签:ELK,收集,基础,介绍,Elasticsearch,日志,数据,Logstash
From: https://blog.51cto.com/u_15222272/5878739

相关文章

  • Grafana+OpenSearch+Spring Boot集成(一) 【基础环境配置】
    先决条件1、环境Windows,内存最好在8GB以上已安装DockerDesktop(下载地址:https://www.docker.com/products/docker-desktop/)2、知识准备了解如何使用Docker了解Op......
  • elasticSearch基础(一)
    es的一些概念索引:相同类型的文档的集合,相当于MySQL的表的概念文档:es是面向文档(Document)存储的,可以是数据库中的一条商品数据,一个订单信息。文档数据会被序列化为jso......
  • webpack基础
    webpackwebpack是代码编译工具,有入口、出口、loader和插件。webpack是一个用于现代[JavaScript](https://baike.baidu.com/item/JavaScript/321142?fromModule=lem......
  • Linux线程同步介绍和示例
     线程同步的概念    线程同步?怎么同步?一起运行?一起停止?我当年听说线程同步这个词的时候,也是一头雾水。    在人们的日常生活中,所说的锁大概有两种:一种是不允......
  • Linux信号signal的介绍和示例
     如何让程序在后台运行    在之前的章节中,如果要运行程序,在命令提示行下输入程序名后回车,程序被执行,然后等待程序运行完成。在程序运行的过程中,可以用Ctrl+c中止它......
  • linux多进程介绍和示例
     进程的概念什么是进程?进程这个概念是针对系统而不是针对程序员的,对程序员来说,我们面对的概念是程序。当程序员敲入命令执行一个程序的时候,对系统而言,它将启动一个进程。进......
  • socket通信基础知识
     socket的概念    socket用于网络中一台计算机中的程序与其他计算机的程序之间需要交换数据。    socket也称作“套接字”,用于描述IP地址和端口,是一个通信链......
  • C++语言类的多态介绍和示例
         多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就可能会用到多态。    C++多态就是当调用成员函数时,会根据调用函数......
  • C++语言类的继承与派生介绍和示例
     继承    继承是面向对象程序设计中最重要的一个概念。继承允许我们根据一个类来定义另一个类,达到了代码功能重用效果。    当创建一个类时,如果待创建的类与......
  • C++语言动态内存管理介绍和示例
     C++动态内存    在C++程序中,所有内存需求都是在程序执行之前通过定义所需的变量来确定的。但是可能存在程序的内存需求只能在运行时确定的情况。在这些情况下,程序......