每日一学——日志管理工具(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进行日志管理的基本技能,赶紧动手试试吧!加油,运维小伙伴们!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker内外如何实现ROS通信

写在前面 在一台电脑上装有docker,docker内外均装有ROS系统,现在想要实现docker内外的ROS通信,怎么办呢? 首先,因为是同一台电脑的docker内外,所以IP本身是互通的,不需要在/etc/hosts中添加IP…

双指针与滑动窗口

双指针 相向双指针 两数之和 题意是找到不同两个数使得它们相加和为target,数组有序 利用数组有序的性质,判断指针前后的区间的性质 例如:2 3 4 6 8, target 9 2 8 10 > 9, 因为非递减序列,2之后的每个数都会大等于2&…

unity开发之shader 管道介质流动特效

效果 shader graph 如果出现下面的效果,那是因为你模型的问题,建模做贴图的时候没有设置好UV映射,只需重新设置下映射即可

python +tkinter绘制彩虹和云朵

python tkinter绘制彩虹和云朵 彩虹,简称虹,是气象中的一种光学现象,当太阳光照射到半空中的水滴,光线被折射及反射,在天空上形成拱形的七彩光谱,由外圈至内圈呈红、橙、黄、绿、蓝、靛、紫七种颜色。事实…

stable diffusion安装mov2mov

第一步: 下载mov2mov,地址:https://gitcode.com/gh_mirrors/sd/sd-webui-mov2mov 下载包到web-ui的sd-webui-aki-v4.10\extensions文件夹面解压 第二步:在文件夹中调出cmd窗口,执行下列命令, git restore…

SpringSpringBoot常用注解总结

目录 1. SpringBootApplication 2. Spring Bean 相关 2.1. Autowired 2.2. Component,Repository,Service, Controller 2.3. RestController 2.4. Scope 2.5. Configuration 3. 处理常见的 HTTP 请求类型 3.1. GET 请求 3.2. POST 请求 3.3. PUT 请求 3.4. DELETE 请…

STM32 软件I2C读写

单片机学习! 目录 前言 一、软件I2C读写代码框架 二、I2C初始化 三、六个时序基本单元 3.1 引脚操作的封装和改名 3.2 起始条件执行逻辑 3.3 终止条件执行逻辑 3.4 发送一个字节 3.5 接收一个字节 3.5 发送应答&接收应答 3.5.1 发送应答 3.5.2 接…

七种改进爬山算法的方法

一、爬山算法 爬山算法(Hill Climbing Algorithm)是一种启发式的基于局部最优解的搜索算法,用于在给定的搜索空间中寻找全局最优解或足够好的解。它属于局部搜索算法,通常用于解决优化问题,包括连续和离散问题。 爬山算法模拟了爬山的过程,从某个随机起始点开始,不断向更…

MYSQL--------MYSQL中的运算符

以下是 MySQL 中各种运算符的介绍及代码示例: 算术运算符 算术运算符用于执行基本的数学运算,包括加、减、乘、除、取模(取余)。 -- 创建一个名为 operator_demo 的表 CREATE TABLE operator_demo (a INT,b INT );-- 插入示例数…

MySQL图形化界面工具--DataGrip

之前介绍了在命令行进行操作,但是不够直观,本次介绍图形化界面工具–DataGrip。 安装DataGrip 官网链接:官网下载链接 常规的软件安装流程。 参考链接:DataGrip安装 使用DataGrip 添加数据源: 第一次使用最下面会…

【虚拟机】VMware 16图文安装和配置 AlmaLinux OS 9.5 教程

准备工作 下载AlmaLinux ISO文件:从AlmaLinux官方网站(https://almalinux.org/)下载最新版本的ISO文件。 安装VMware Workstation:确保您的计算机上已安装VMware Workstation。(注:我这边使用的是VMware16…

中国联通首次推出一套量化大模型的新标准

新基准的诞生 中国联通的研究团队近日公布了一套创新性的量化标准,主要针对大型语言模型的能力评估。这一基准的灵感来源于动物智能演化的规律,为用户在选择语言模型时提供了科学依据。现代社会中,各种语言模型如雨后春笋般涌现,…

aardio —— 虚表 —— 使用ownerDrawCustom列类型制作喜马拉雅播放器列表

不会自绘也能做漂亮列表,你相信吗? 看看这个例子,虚表_vlistEx_ColType_OwnerDrawCustom列类型,移植自godking.customPlus,简单好用,做漂亮列表的大杀器,玩aardio必备利器! 请更新…

网安数学基础期末复习

目录 整除同余同余方程群和环 整除 a的显然因数/平凡因数1,a整除的传递性和组合性 若 a ∣ b , b ∣ a a|b,b|a a∣b,b∣a 则 a b a\pm b ab欧几里得带余除法 公因数和最大公因数在整除里的定义,最大公因数为1则两数互质,注意公因数有正…

【论文阅读笔记】SCI算法与代码 | 低照度图像增强 | 2022.4.21

目录 一 SCI 1 SCI网络结构 核心代码(model.py) 2 SCI损失函数 核心代码(loss.py) 3 实验 二 SCI效果 1 下载代码 2 运行 一 SCI 💜论文题目:Toward Fast, Flexible, and Robust Low-Light Image …

AcWing练习题:平均数2

读取三个浮点数 A,B 和 C 的值,对应于三个学生的成绩。 请你计算学生的平均分,其中 A 的成绩的权重为 2,B 的成绩的权重为 3,C 的成绩的权值为 5。 成绩的取值范围在 0 到 10 之间,且均保留一位小数。 输…

aardio —— 改变按钮文本颜色

import win.ui; /*DSG{{*/ var winform win.form(text"改变按钮颜色示例";right279;bottom239;composited1) winform.add( button{cls"button";text"点这里1";left16;top104;right261;bottom159;fontLOGFONT(h-14);z1}; button2{cls"butto…

Scratch教学作品 | 白水急流——急流勇进,挑战反应极限! ‍♂️

今天为大家推荐一款刺激又好玩的Scratch冒险作品——《白水急流》!由AgentFransidium制作,这款作品将带你体验惊险的急流救援任务,帮助那位“睡着的疯狂人”安全穿越湍急水域!想要挑战自己的反应极限?快来试试吧&#…

Android测试ABD环境及语句

1、什么是adb ADB 全称为 Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是 Android 设备。 ADB 也是 Android SDK 中的一个工具,可以直接操作管理 Android 模拟器或者真…

库伦值自动化功耗测试工具

1. 功能介绍 PlatformPower工具可以自动化测试不同场景的功耗电流,并可导出为excel文件便于测试结果分析查看。测试同时便于后续根据需求拓展其他自动化测试用例。 主要原理:基于文件节点 coulomb_count 实现,计算公式:电流&…