日志(elk stack)基础语法学习,零基础学习
ELK Stack 是一组开源的日志管理工具,包括 Elasticsearch、Logstash 和 Kibana。Elasticsearch 用于存储和搜索日志数据,Logstash 用于收集和处理日志数据,而 Kibana 提供了一个强大的可视化界面来分析和监控这些数据。以下是 ELK Stack 的基础语法学习资料。
1. 安装和配置
1.1 安装 Java
Elasticsearch 和 Logstash 都需要 Java 运行时环境(JRE)或 Java 开发工具包(JDK)。建议使用 OpenJDK 11 或更高版本。
-
在 Ubuntu 上安装 OpenJDK 11
bash
sudo apt-get update
sudo apt-get install openjdk-11-jdk
- 验证安装:
bash
java -version
1.2 安装 Elasticsearch
-
下载并安装 Elasticsearch
bash
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elasticsearch.list'
sudo apt-get update && sudo apt-get install elasticsearch
- 启动 Elasticsearch
bash
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
- 验证安装
bash
curl -X GET "localhost:9200/"
1.3 安装 Logstash
-
下载并安装 Logstash
bash
sudo systemctl start logstash
sudo systemctl enable logstash
1.4 安装 Kibana
-
下载并安装 Kibana
bash
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/kibana.list'
sudo apt-get update && sudo apt-get install kibana
- 启动 Kibana
bash
sudo systemctl start kibana
sudo systemctl enable kibana
-
访问 Kibana 界面:打开浏览器,访问
http://<your_server_ip>:5601。
2. 基本概念和配置
2.1 Elasticsearch
2.1.1 创建索引
bash
curl -X PUT "localhost:9200/my_index"
2.1.2 插入文档
bash
curl -X POST "localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d'
{"name": "John Doe","age": 30,"email": "john.doe@example.com"
}'
2.1.3 搜索文档
bash
curl -X GET "localhost:9200/my_index/_search?q=name:John"
2.1.4 删除索引
bash
curl -X DELETE "localhost:9200/my_index"
2.2 Logstash
2.2.1 配置文件示例
创建一个基本的 Logstash 配置文件 logstash.conf:
conf
input {file {path => "/path/to/your/logfile.log"start_position => "beginning"}
}filter {grok {match => { "message" => "%{COMBINEDAPACHELOG}" }}date {match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]}
}output {elasticsearch {hosts => ["localhost:9200"]index => "apache_logs-%{+YYYY.MM.dd}"}stdout { codec => rubydebug }
}
2.2.2 启动 Logstash
bash
sudo /usr/share/logstash/bin/logstash -f /path/to/logstash.conf
2.3 Kibana
2.3.1 配置索引模式
- 打开 Kibana 界面。
- 导航到
Management->Index Patterns。 - 输入
apache_logs-*并点击Next step。 - 选择时间字段
@timestamp并点击Create index pattern。
2.3.2 查看数据
导航到 Discover 页面,你可以看到从 Logstash 收集的数据。
2.3.3 创建仪表板
- 导航到
Visualize页面。 - 创建新的可视化图表(例如饼图、折线图等)。
- 将这些可视化图表添加到一个新的仪表板中。
3. 示例:完整的 ELK 流程
3.1 准备日志文件
假设你有一个 Apache 日志文件 /var/log/apache2/access.log,内容如下:
127.0.0.1 - - [20/Jun/2023:13:55:36 +0800] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
127.0.0.1 - - [20/Jun/2023:13:55:37 +0800] "GET /about HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
3.2 创建 Logstash 配置文件
conf
# logstash-apache.conf
input {file {path => "/var/log/apache2/access.log"start_position => "beginning"}
}filter {grok {match => { "message" => "%{COMBINEDAPACHELOG}" }}date {match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]}
}output {elasticsearch {hosts => ["localhost:9200"]index => "apache_logs-%{+YYYY.MM.dd}"}stdout { codec => rubydebug }
}
3.3 启动 Logstash
bash
sudo /usr/share/logstash/bin/logstash -f /path/to/logstash-apache.conf
3.4 在 Kibana 中查看数据
- 打开 Kibana 界面。
- 导航到
Management->Index Patterns。 - 输入
apache_logs-*并点击Next step。 - 选择时间字段
@timestamp并点击Create index pattern。 - 导航到
Discover页面,查看解析后的日志数据。 - 导航到
Visualize页面,创建图表并将它们添加到仪表板中。
通过以上步骤,你已经完成了从日志收集、处理到可视化的整个流程。希望这些内容能帮助你更好地理解和掌握 ELK Stack 的基础语法和功能!
相关文章:
日志(elk stack)基础语法学习,零基础学习
ELK Stack 是一组开源的日志管理工具,包括 Elasticsearch、Logstash 和 Kibana。Elasticsearch 用于存储和搜索日志数据,Logstash 用于收集和处理日志数据,而 Kibana 提供了一个强大的可视化界面来分析和监控这些数据。以下是 ELK Stack 的基…...
Mysql InnoDB B+Tree是什么?
“mysql中常用的数据库搜索引擎InnoDB,其索引通过BTree的方式进行构建。” 实在想不起来BTree是怎么一回事了。以点带线,将涉及到的数据结构一起复习一下。 文章目录 数据结构定义红黑树定义使命 BTree定义使命 BTree定义 InnoDB BTree 旋转与调整二叉排序树插入删…...
Java基础(二)
提示:这部分内容对逆向重要,需重点掌握。 1.常见数据类型 1.1 List系列 类似于Python中的列表 List是一个接口,接口下面有两个常见的类型(目的是可以存放动态的多个数据) ArrayList,连续的内存地址存储(内部自动扩容) -> Python列表的特点LinkedList,底层基于链表…...
【网络协议】【http】【https】TLS1.3
【网络协议】【http】【https】TLS1.3 TLS1.3它的签名算法和密钥交换算法,默认情况下是被固定了下来的,他的加密套件里面呢,只包含了对称加密算法和摘要算法 客户端和服务器第一次连接 仍然需要1RTT ,不能0-RTT 第一次连接 1.客…...
K8S中Pod控制器之Job控制器
Job,主要用于负责批量处理(一次要处理指定数量任务)短暂的一次性(每个任务仅运行一次就结束)任务。 一次性任务:Job 用于运行那些只需要执行一次的任务,如数据分析、图像渲染或批量处理。 成功终止:Job 会跟踪其创建的 Pod 的成功…...
macOS安装Gradle环境
文章目录 说明安装JDK安装Gradle 说明 gradle8.5最高支持jdk21,如果使用jdk22建议使用gradle8.8以上版本 安装JDK mac系统安装最新(截止2024.9.13)Oracle JDK操作记录 安装Gradle 下载Gradle,解压将其存放到资源java/env目录…...
2024年美赛C题评委文章及O奖论文解读 | AI工具如何影响数学建模?从评委和O奖论文出发-O奖论文做对了什么?
模型假设仅仅是简单陈述吗?允许AI的使用是否降低了比赛难度?还在依赖机器学习的模型吗?处理题目的方法有哪些?O奖论文的优点在哪里? 本文调研了当年赛题的评委文章和O奖论文,这些问题都会在文章中一一解答…...
LDD3学习9--数据类型和定时器
这部分对应的是第七章和第十一章,因为内容也不是很多,就一起写了。里面的内容基本上就是一个个的点,所以也就一个个点简单总结一下。 1 数据类型 1.1 数据长度 不同操作系统类型长度可能不一样,看图的话最好用u8,u16&…...
一文夯实垃圾收集的理论基础
如何判断一个引用是否存活 引用计数法 给对象中添加一个引用计数器,每当有一个地方引用它,计数器就加 1;当引用失效,计数器就减 1;任何时候计数器为 0 的对象就是不可能再被使用的。 优点:可即刻回收垃圾&a…...
OpenWRT Conserver 共享串口服务实现
安装驱动 查看当前可在线安装的USB驱动 opkg update 查看安装的USB驱动 opkg list-installed *usb-serial* 查看所有的USB串口驱动 opkg list *usb-serial* 确认console线的芯片厂商 kmod-usb-serial-pl2303 - 5.15.167-1 - Kernel support for Prolific PL2303 USB-to…...
第12章:Python TDD完善货币加法运算(一)
写在前面 这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许…...
Springboot项目Jackson支持多种接收多种时间格式
前言 在springboot项目中经常会使用Jackson框架,当前端给后端传输时间类型时,我们一般需要先配置好时间格式,否则后端无法接收。以下是一些配置方法 统一配置 spring:jackson:time-zone: GMT+8date-format: yyyy-MM-dd HH:mm:ss这种配置就是要求前端统一传输的格式是yyyy-…...
两台电脑互PING不通的解决办法
当两台电脑无法通过网络Ping通时,可以按照以下步骤进行排查和解决: 一. 检查网络连接 确保两台电脑连接到同一个局域网。 如果是通过网线连接,检查网线是否松动或损坏。 如果是无线连接,确保Wi-Fi信号正常。 二. 检查IP配置 确…...
No. 34 笔记 | Python知识架构与数据类型相关内容 | 实操
在今天的Python学习中,我对Python的知识架构有了更深入的理解,同时也对Python的数据类型及其操作有了全面的认识和实践。 一、Python知识架构理解 Python是一门功能强大且应用广泛的编程语言,其知识架构可以从多个层面来理解。 从整体结构上…...
【2024年华为OD机试】 (B卷,100分)- 字符串分割(Java JS PythonC/C++)
一、问题描述 题目解析 问题描述 给定一个非空字符串 s,要求将该字符串分割成若干子串,使得每个子串的 ASCII 码值之和均为“水仙花数”。具体要求如下: 若分割不成功,则返回 0;若分割成功且分割结果不唯一,则返回 -1;若分割成功且分割结果唯一,则返回分割后子串的数…...
Pix2Pix :用于图像到图像转换的条件生成对抗网络
1. 背景与问题 图像到图像的转换(Image-to-Image Translation)是计算机视觉中的一个重要任务,指的是在输入一张图像的情况下,生成一张风格、内容或其他条件不同但语义一致的图像。随着深度学习的发展,尤其是生成对抗网…...
基于VSCODE+GDB+GDBSERVER远程单步调试设备篇(可视化界面)
目录 说明 配置方法 1)VSCODE必备插件 2)配置launch.json文件,用于GDB调试 调试步骤 目标板运行程序 1)已启动程序,通过attach方式进入调试 2)通过gdbserver启动时加载程序(程序路径根据实际情…...
CamemBERT:一款出色的法语语言模型
摘要 预训练语言模型在自然语言处理中已无处不在。尽管这些模型取得了成功,但大多数可用模型要么是在英语数据上训练的,要么是在多种语言数据拼接的基础上训练的。这使得这些模型在除英语以外的所有语言中的实际应用非常有限。本文探讨了为其他语言训练…...
0基础跟德姆(dom)一起学AI 自然语言处理18-解码器部分实现
1 解码器介绍 解码器部分: 由N个解码器层堆叠而成每个解码器层由三个子层连接结构组成第一个子层连接结构包括一个多头自注意力子层和规范化层以及一个残差连接第二个子层连接结构包括一个多头注意力子层和规范化层以及一个残差连接第三个子层连接结构包括一个前馈全连接子层…...
我的创作纪念日——我与CSDN一起走过的365天
目录 一、机缘:旅程的开始 二、收获:沿路的花朵 三、日常:不断前行中 四、成就:一点小确幸 五、憧憬:梦中的重点 一、机缘:旅程的开始 最开始开始写博客是在今年一二月份的时候,也就是上一…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
