每日一学——日志管理工具(ELK Stack)

5.1 ELK Stack
5.1.1 Elasticsearch索引机制

嘿,小伙伴们!今天我们要聊聊ELK Stack——一套由Elasticsearch、Logstash和Kibana组成的强大日志管理工具集。通过这套工具,我们可以轻松地收集、存储、搜索和可视化日志数据。首先,让我们来了解Elasticsearch的索引机制。

Elasticsearch索引机制:

Elasticsearch 是一个分布式的搜索引擎和存储系统,它使用倒排索引来加速全文搜索。在Elasticsearch中,数据是以文档的形式存储在索引中的。

索引机制的关键概念:

  1. 1. 索引(Index):类似于数据库中的表,用于存储一类数据。

  2. 2. 文档(Document):一条记录或一条日志消息,是JSON格式的数据。

  3. 3. 映射(Mapping):定义了索引中文档的字段类型和结构。

  4. 4. 分片(Shard):索引的逻辑分片,用于水平扩展存储能力。

  5. 5. 副本(Replica):索引的备份,用于提高数据的可用性和容错性。

创建索引:

在Elasticsearch中创建索引时,可以指定索引的设置和映射。

PUT myindex
{
"settings":{
"number_of_shards":3,
"number_of_replicas":1
},
"mappings":{
"properties":{
"@timestamp":{"type":"date"},
"message":{"type":"text"},
"source":{"type":"keyword"}
}
}
}

在这个例子中,我们创建了一个名为myindex的索引,设置了3个分片和1个副本,并定义了三个字段:@timestampmessage 和 source

5.1.2 Logstash过滤器配置

Logstash 是一个数据处理管道,用于接收、转换和发送数据到Elasticsearch。通过配置过滤器(filters),我们可以对日志数据进行清洗和格式化。

过滤器配置:

Logstash过滤器可以对输入的日志数据进行各种处理,如分割字段、添加标签、去除噪声等。下面是一些常用的过滤器:

  1. 1. grok:用于解析非结构化的日志数据,并提取出有意义的字段。

  2. 2. mutate:用于修改字段,如删除、重命名等。

  3. 3. date:用于解析日期时间字段,并转换成Elasticsearch支持的时间格式。

  4. 4. split:用于根据正则表达式分割日志数据。

配置示例:

input {
  beats { port =>5044}
}

filter {
  grok {
    match =>{"message"=>"%{COMBINEDAPACHELOG}"}
}
  date {
    match =>["timestamp","ISO8601"]
}
  mutate {
    add_field =>{"[@metadata][event_type]"=>"weblog"}
}
}

output {
  elasticsearch { hosts =>["localhost:9200"]}
}

在这个例子中,我们配置了Logstash来接收来自Beats的数据,并使用grok过滤器来解析日志格式,使用date过滤器来解析时间戳,最后使用mutate过滤器来添加事件类型字段。

5.1.3 Kibana仪表盘设计

Kibana 是一个用于可视化Elasticsearch数据的Web界面。通过Kibana,我们可以轻松地创建仪表盘来展示日志数据的趋势和统计信息。

仪表盘设计步骤:

  1. 1. 创建索引模式:在Kibana中,首先需要创建一个索引模式来指定要可视化的数据源。

    • • 在Kibana中选择“Management” -> “Index Patterns”,点击“Create index pattern”。

    • • 输入索引名称前缀(如logstash-*)。

  2. 2. 创建仪表盘:在Kibana中,可以创建一个新的仪表盘来展示数据。

    • • 选择“Discover”来探索数据。

    • • 选择“Visualize”来创建图表。

    • • 选择“Dashboard”来组合多个图表。

创建图表示例:

假设我们想要创建一个图表来展示过去一周内不同来源的日志数量。

  1. 1. 创建数据视图:在“Discover”中,筛选出过去一周的日志数据。

  2. 2. 创建柱状图:在“Visualize”中,选择“柱状图”,并配置数据来源和字段。

  3. 3. 添加到仪表盘:在“Dashboard”中,将创建的图表拖拽到仪表盘中。

5.1.4 实战案例:日志数据收集与分析

现在,让我们通过一个实际的例子来看看如何使用ELK Stack来收集和分析日志数据。假设我们需要收集并分析来自多台服务器的日志。

步骤1:安装Elasticsearch、Logstash和Kibana

  1. 1. 下载并安装Elasticsearch对于Linux系统,可以使用包管理器安装:sudo apt-get update
    sudo apt-get install elasticsearch

  2. 2. 下载并安装Logstashsudo apt-get install logstash

  3. 3. 下载并安装Kibanasudo apt-get install kibana

  4. 4. 启动服务使用命令启动Elasticsearch、Logstash和Kibana:sudo systemctl start elasticsearch
    sudo systemctl start logstash
    sudo systemctl start kibana

步骤2:配置Logstash

  1. 1. 创建Logstash配置文件/etc/logstash/conf.d目录下创建一个名为01-log-input.conf的文件:input {
      beats {
        port =>5044
    }
    }

    filter {
      grok {
        match =>{"message"=>"%{COMBINEDAPACHELOG}"}
    }
      date {
        match =>["timestamp","ISO8601"]
    }
      mutate {
        add_field =>{"[@metadata][event_type]"=>"weblog"}
    }
    }

    output {
      elasticsearch {
        hosts =>["localhost:9200"]
        index =>"logstash-%{+YYYY.MM.dd}"
    }
    }

  2. 2. 重新加载Logstash配置sudo systemctl reload logstash

步骤3:安装Beats

  1. 1. 下载并安装Filebeat对于Linux系统,可以使用包管理器安装:sudo apt-get install filebeat

  2. 2. 配置Filebeat/etc/filebeat/filebeat.yml中配置Filebeat:filebeat.inputs:
    -type:log
    enabled:true
    paths:
    -/var/log/nginx/access.log
    -/var/log/nginx/error.log

    output.logstash:
    hosts:["localhost:5044"]

  3. 3. 启动Filebeatsudo systemctl start filebeat

步骤4:配置Kibana

  1. 1. 创建索引模式在Kibana中,选择“Management” -> “Index Patterns”,点击“Create index pattern”,输入索引名称前缀(如logstash-*)。

  2. 2. 创建仪表盘在Kibana中,选择“Dashboard” -> “Create Dashboard”,并添加需要的图表。

通过以上步骤,我们就成功地使用ELK Stack收集并分析了日志数据。ELK Stack的强大之处在于它可以处理海量的日志数据,并提供丰富的可视化工具来帮助我们理解数据背后的故事。希望这个例子能帮助你更好地理解和使用ELK Stack!

好了,现在你已经掌握了使用ELK Stack进行日志管理的基本技能,赶紧动手试试吧!加油,运维小伙伴们!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/948442.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch 创建索引 Mapping映射属性 索引库操作 增删改查

Mapping Type映射属性 mapping是对索引库中文档的约束,有以下类型。 text:用于分析和全文搜索,通常适用于长文本字段。keyword:用于精确匹配,不会进行分析,适用于标签、ID 等精确匹配场景。integer、long…

【Ubuntu】 Ubuntu22.04搭建NFS服务

安装NFS服务端 sudo apt install nfs-kernel-server 安装NFS客户端 sudo apt install nfs-common 配置/etc/exports sudo vim /etc/exports 第一个字段:/home/lm/code/nfswork共享的目录 第二个字段:指定哪些用户可以访问 ​ * 表示所有用户都可以访…

【谷歌开发者月刊】十二月精彩资讯回顾,探索科技新可能

我们在今年的尾声中回顾本月精彩,开发者们借助创新技术为用户打造温暖的应用体验,展现技术与实用的结合。欢迎您查阅本期月刊,掌握最新动态。 本月看点 精彩看点多多,请上下滑动阅览 01DevFest 北京站和上海站圆满举办&#xff0c…

浙江中医药大学携手云轴科技ZStack荣获“鼎信杯”金鼎实践奖

近日,2024“鼎信杯”信息技术发展论坛(以下简称“论坛”)在北京隆重召开。本次论坛汇聚多位领导和专家,以及业内骨干企业、研究机构、用户单位、行业组织代表等500余人,共同探讨信息技术应用创新产业趋势,分…

嵌入式linux系统中CMake的基本用法

第一:CMake的基本使用 在上篇文章中,我们聊了聊 Makefile。虽然它是 C/C++ 项目编译的“老司机”,但写起来真的是让人头大。尤其是当项目文件一多,手写依赖就像在搬砖,费时又费力。 那么问题来了,难道我们就没有更优雅的工具了吗?答案是:有! 这时候,CMake 就像一个…

vulnhub Earth靶机

搭建靶机直接拖进来就行 1.扫描靶机IP arp-scan -l 2.信息收集 nmap -sS -A -T4 192.168.47.132 得到两个DNS; 在443端口处会让我们加https dirb https://earth.local/ dirb https://terratest.earth.local/ #页面下有三行数值 37090b59030f11060b0a1b4e0000000000004312170a…

【AI日记】25.01.04 kaggle 比赛 3-3 | 王慧玲与基层女性

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 参加:kaggle 比赛 Forecasting Sticker Sales时间:6 小时 读书 书名:基层女性时间:3 小时原因:虽然我之前就知道这个作者,因为我…

《learn_the_architecture_-_aarch64_exception_model》学习笔记

1.当发生异常时,异常级别可以增加或保持不变,永远无法通过异常来转移到较低的权限级别。从异常返回时,异常级别可能会降低或保持不变,永远无法通过从异常返回来移动到更高的权限级别。EL0级不进行异常处理,异常必须在比…

linux上安装MySQL教程

1.准备好MySQL压缩包,并进行解压 tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -C /usr/local 2.检查是否有mariadb数据库 rpm -aq|grep mariadb 关于mariadb:是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目…

量子力学复习

黑体辐射 热辐射 绝对黑体: (辐射能力很强,完全的吸收体,理想的发射体) 辐射实验规律: 温度越高,能量越大,亮度越亮 温度越高,波长越短 光电效应 实验装置&#xf…

OSI模型的网络层中产生拥塞的主要原因?

( 1 )缓冲区容量有限;( 1.5 分) ( 2 )传输线路的带宽有限;( 1.5 分) ( 3 )网络结点的处理能力有限;( 1 分…

Spring Boot 的自动配置,以rabbitmq为例,请详细说明

Spring Boot 的自动配置特性能够大大简化集成外部服务和组件的配置过程。以 RabbitMQ 为例,Spring Boot 通过 spring-boot-starter-amqp 提供了自动配置支持,开发者只需在应用中添加相关依赖并配置必要的属性,Spring Boot 会自动配置所需的连…

visual studio 安全模式

一、安全模式: 在 Visual Studio 中,安全模式是一种启动方式,允许你在禁用所有扩展和自定义设置的情况下启动 Visual Studio。这个模式可以帮助排除插件或扩展引起的问题,特别是在 Visual Studio 无法正常启动时。 二、安全模式下…

使用SSH建立内网穿透,能够访问内网的web服务器

搞了一个晚上,终于建立了一个内网穿透。和AI配合,还是得自己思考,AI配合才能搞定,不思考只依赖AI也不行。内网服务器只是简单地使用了python -m http.server 8899,但是对于Gradio建立的服务器好像不行,会出…

服务器信息整理:用途、操作系统安装日期、设备序列化、IP、MAC地址、BIOS时间、系统

文章目录 引言I BIOS时间Windows查看BIOS版本安装日期linux查看BIOS时间II 操作系统安装日期LinuxWindowsIII MAC 地址IV 设备序列号Linux 查看主板信息知识扩展Linux常用命令引言 信息内容:重点信息:用途、操作系统安装日期、设备序列化、IP、MAC地址、BIOS时间、系统 Linux…

java项目之读书笔记共享平台(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的闲一品交易平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 读书笔记共享平台的主要使…

【信息系统项目管理师】【综合知识】【备考知识点】【思维导图】第十一章 项目成本管理

word版☞【信息系统项目管理师】【综合知识】【备考知识点】第十一章 项目成本管理 移动端【思维导图】☞【信息系统项目管理师】【思维导图】第十一章 项目成本管理

1、单片机寄存器-io输入实验笔记

1、硬件 时钟总线如下: PB端口挂载在AHB1总线上,因此要对该位进行使能。 引脚 LED0和LED1挂载在PB0和PB1上:推挽输出、100M、 上拉默认高电平,低电平点亮。 2、软件 位带操作 #ifndef _IO_BIT_H_ #define _IO_BIT_H_#define …

【嵌入式硬件】嵌入式显示屏接口

数字显示串行接口(Digital Display Serial Interface) SPI 不过多赘述。 I2C-bus interface 不过多赘述 MIPI DSI MIPI (Mobile Industry Processor Interface) Alliance, DSI (Display Serial Interface) 一般用于移动设备,下面是接口…

【LC】240. 搜索二维矩阵 II

题目描述: 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1: 输入:matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,…