每日一学——日志管理工具(ELK Stack)
5.1 ELK Stack
5.1.1 Elasticsearch索引机制
嘿,小伙伴们!今天我们要聊聊ELK Stack——一套由Elasticsearch、Logstash和Kibana组成的强大日志管理工具集。通过这套工具,我们可以轻松地收集、存储、搜索和可视化日志数据。首先,让我们来了解Elasticsearch的索引机制。
Elasticsearch索引机制:
Elasticsearch 是一个分布式的搜索引擎和存储系统,它使用倒排索引来加速全文搜索。在Elasticsearch中,数据是以文档的形式存储在索引中的。
索引机制的关键概念:
-
1. 索引(Index):类似于数据库中的表,用于存储一类数据。
-
2. 文档(Document):一条记录或一条日志消息,是JSON格式的数据。
-
3. 映射(Mapping):定义了索引中文档的字段类型和结构。
-
4. 分片(Shard):索引的逻辑分片,用于水平扩展存储能力。
-
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个副本,并定义了三个字段:@timestamp
、message
和 source
。
5.1.2 Logstash过滤器配置
Logstash 是一个数据处理管道,用于接收、转换和发送数据到Elasticsearch。通过配置过滤器(filters),我们可以对日志数据进行清洗和格式化。
过滤器配置:
Logstash过滤器可以对输入的日志数据进行各种处理,如分割字段、添加标签、去除噪声等。下面是一些常用的过滤器:
-
1. grok:用于解析非结构化的日志数据,并提取出有意义的字段。
-
2. mutate:用于修改字段,如删除、重命名等。
-
3. date:用于解析日期时间字段,并转换成Elasticsearch支持的时间格式。
-
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. 创建索引模式:在Kibana中,首先需要创建一个索引模式来指定要可视化的数据源。
-
• 在Kibana中选择“Management” -> “Index Patterns”,点击“Create index pattern”。
-
• 输入索引名称前缀(如
logstash-*
)。
-
-
2. 创建仪表盘:在Kibana中,可以创建一个新的仪表盘来展示数据。
-
• 选择“Discover”来探索数据。
-
• 选择“Visualize”来创建图表。
-
• 选择“Dashboard”来组合多个图表。
-
创建图表示例:
假设我们想要创建一个图表来展示过去一周内不同来源的日志数量。
-
1. 创建数据视图:在“Discover”中,筛选出过去一周的日志数据。
-
2. 创建柱状图:在“Visualize”中,选择“柱状图”,并配置数据来源和字段。
-
3. 添加到仪表盘:在“Dashboard”中,将创建的图表拖拽到仪表盘中。
5.1.4 实战案例:日志数据收集与分析
现在,让我们通过一个实际的例子来看看如何使用ELK Stack来收集和分析日志数据。假设我们需要收集并分析来自多台服务器的日志。
步骤1:安装Elasticsearch、Logstash和Kibana
-
1. 下载并安装Elasticsearch对于Linux系统,可以使用包管理器安装:
sudo apt-get update
sudo apt-get install elasticsearch -
2. 下载并安装Logstash
sudo apt-get install logstash
-
3. 下载并安装Kibana
sudo apt-get install kibana
-
4. 启动服务使用命令启动Elasticsearch、Logstash和Kibana:
sudo systemctl start elasticsearch
sudo systemctl start logstash
sudo systemctl start kibana
步骤2:配置Logstash
-
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. 重新加载Logstash配置
sudo systemctl reload logstash
步骤3:安装Beats
-
1. 下载并安装Filebeat对于Linux系统,可以使用包管理器安装:
sudo apt-get install filebeat
-
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. 启动Filebeat
sudo systemctl start filebeat
步骤4:配置Kibana
-
1. 创建索引模式在Kibana中,选择“Management” -> “Index Patterns”,点击“Create index pattern”,输入索引名称前缀(如
logstash-*
)。 -
2. 创建仪表盘在Kibana中,选择“Dashboard” -> “Create Dashboard”,并添加需要的图表。
通过以上步骤,我们就成功地使用ELK Stack收集并分析了日志数据。ELK Stack的强大之处在于它可以处理海量的日志数据,并提供丰富的可视化工具来帮助我们理解数据背后的故事。希望这个例子能帮助你更好地理解和使用ELK Stack!
好了,现在你已经掌握了使用ELK Stack进行日志管理的基本技能,赶紧动手试试吧!加油,运维小伙伴们!
相关文章:
每日一学——日志管理工具(ELK Stack)
5.1 ELK Stack 5.1.1 Elasticsearch索引机制 嘿,小伙伴们!今天我们要聊聊ELK Stack——一套由Elasticsearch、Logstash和Kibana组成的强大日志管理工具集。通过这套工具,我们可以轻松地收集、存储、搜索和可视化日志数据。首先,…...

“智能筛查新助手:AI智能筛查分析软件系统如何改变我们的生活
嘿,朋友们!今天咱们来聊聊一个特别厉害的工具——AI智能筛查分析软件系统。想象一下,如果你有一个超级聪明的小助手,不仅能帮你快速找出问题的关键所在,还能提供精准的解决方案,是不是感觉工作和生活都变得…...

DeepSeek v3为何爆火?如何用其集成Milvus搭建RAG?
最近,DeepSeek v3(一个MoE模型,拥有671B参数,其中37B参数被激活)模型全球爆火。 作为一款能与Claude 3.5 Sonnet,GPT-4o等模型匹敌的开源模型DeepSeek v3不仅将其算法开源,还放出一份扎实的技术…...

linux-centos-安装miniconda3
参考: 最新保姆级Linux下安装与使用conda:从下载配置到使用全流程_linux conda-CSDN博客 https://blog.csdn.net/qq_51566832/article/details/144113661 Linux上删除Anaconda或Miniconda的步骤_linux 删除anaconda-CSDN博客 https://blog.csdn.net/m0_…...

html+css+js网页设计 美食 好厨艺西餐美食企业网站模板6个页面
htmlcssjs网页设计 美食 好厨艺西餐美食企业网站模板6个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 …...
QT-窗口嵌入外部exe
窗口类: #pragma once #include <QApplication> #include <QWidget> #include <QVBoxLayout> #include <QProcess> #include <QTimer> #include <QDebug> #include <Windows.h> #include <QWindow> #include <…...

C#中使用系统默认应用程序打开文件
有时您可能希望程序使用默认应用程序打开文件。 例如,您可能希望显示 PDF 文件、网页或互联网上的 URL。 System.Diagnostics.Process类的Start方法启动系统与文件关联的应用程序。 例如,如果文件扩展名为.txt,则系统会在 NotePad、WordPa…...

如何在 Ubuntu 22.04 上配置 Logrotate 高级教程
简介 本教程将教你如何在 Ubuntu 22.04 上进行 Logrotate 的高级配置。 日志管理对于维护系统性能和确保你的日志不会占用太多磁盘空间至关重要。在 Ubuntu 上,logrotate 是一个强大的工具,它可以通过轮转、压缩和删除旧日志来自动管理日志文件。在本教…...

java项目之校园管理系统的设计与实现(源码+文档)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的校园管理系统的设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: springboot校园…...

关于 webservice 日志中 源IP是node IP的问题,是否能解决换成 真实的客户端IP呢
本篇目录 1. 问题背景2. 部署gitlab 17.52.1 添加repo源2.2 添加repo源 下载17.5.0的charts包2.3 修改values文件2.3.1 hosts修改如下2.3.2 appConfig修改如下2.3.3 gitlab下的sidekiq配置2.3.4 certmanager修改如下2.3.5 nginx-ingress修改如下2.3.6 <可选> prometheus修…...

Serializable接口
最近写项目的时候,发现有一些类要实现Serializable接口,一开始只是粗略的知道实现了Serializable接口,这个类的对象可以被序列化,但我比较轴,想知道这个接口到底有什么作用。 我点开这个接口发现什么方法都没有实现&am…...

如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈 问题背景 由于我司最早期19年使用的是gitee,因此大部分仓库都在gitee有几百个库的代码,…...
【HDU】1089 A+B for Input-Output Practice (I)
1089 AB for Input-Output Practice (I):以EOF结尾的输入 Problem Description Your task is to Calculate a b. Too easy?! Of course! I specially designed the problem for acm beginners. You must have found that some problems have the same titles with this one,…...

lua库介绍:数据处理与操作工具库 - leo
leo库简介 leo 模块的创作初衷旨在简化数据处理的复杂流程,提高代码的可读性和执行效率,希望leo 模块都能为你提供一系列便捷的工具函数,涵盖因子编码、多维数组创建、数据框构建、列表管理以及管道操作等功能。 要使用 Leo 模块,…...

逆向入门(1)C篇-正儿巴经的第1个实验
接触了这么久,第一次不是使用CV大法编写程序,认认真真的重头开始学习,记录一下找调试的感觉。 第一段代码,重温原码,反码和补码。 #include "stdafx.h"int main(int argc, char* argv[]) {char x -7;print…...

vue数据请求通用方案:axios的options都有哪些值
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 Node.js 中。 在使用 Axios 发送请求时,可以通过传递一个配置对象来指定请求的各种选项。 以下是一些常用的 Axios 配置选项及其说明: 1.url: (必需)请求的 …...

使用R语言绘制标准的中国地图和世界地图
在日常的学习和生活中,有时我们常常需要制作带有国界线的地图。这个时候绘制标准的国家地图就显得很重要。目前国家标准地图服务系统向全社会公布的标准中国地图数据,是最权威的地图数据。 今天介绍的R包“ggmapcn”,就是基于最新公布的地图…...

【PyTorch】迁移学习、数据增强
PyTorch官网 介绍 PyTorch 是一个开源的机器学习库,由 Facebook 的人工智能研究实验室开发。它提供了两种主要的功能:张量计算(类似于 NumPy,但具有 GPU 加速)和基于动态计算图的深度学习工具。PyTorch 因其灵活性、…...

Lucas-Kanade光流法详解
简介:个人学习分享,如有错误,欢迎批评指正。 光流(Optical Flow)描述的是图像序列中各像素点随时间的运动情况,是计算机视觉中的基本问题之一。光流问题涉及尝试找出一幅图像中的许多点在第二幅图像中移动的…...
python多张图片生成/合成gif
你可以通过调整帧率来提高GIF的流畅度。默认情况下,代码中的帧率为每秒1帧(fps=1)。我们可以增加这个值来加快动画速度。 下面是修改后的代码,将帧率从每秒1帧提高到每秒5帧(你可以根据需要进一步调整): 在这个版本中,我添加了一个可选参数fps,默认值为5帧每秒。你可…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...

负载均衡器》》LVS、Nginx、HAproxy 区别
虚拟主机 先4,后7...