企业级日志分析系统ELK之ELK概述
ELK 概述
ELK 介绍
什么是 ELK
早期IT架构中的系统和应用的日志分散在不同的主机和文件,如果应用出现问题,开发和运维人员想排
查原因,就要先找到相应的主机上的日志文件再进行查找和分析,所以非常不方便,而且还涉及到权限
安全问题,ELK的出现就很好的解决这一问题
ELK 是由一家 Elastic 公司开发的三个开源项目的首字母缩写,即是三个相关的项目组成的系统
-
Elasticsearch索引是什么?
Elasticsearch 索引指相互关联的文档集合。Elasticsearch 会以 JSON 文档的形式存储数据。每个文档都会在一组鏈(字段或属性的名称)和它们对应的值(字符串、数字、布尔值、日期、数值组、地理位置或其他类型的数据)之间建立联系。
Elasticsearch 使用的是一种名为倒排索引的数据结构,这一结构的设计可以允许十分快速地进行全文本搜索。倒排索引会列出在所有文档中出现的每个特有词汇,并且可以找到包含每个词汇的全部文档。在索引过程中,Elasticsearch 会存储文档并构建倒排索引,这样用户便可以近实时地对文档数据进行搜索。索引过程是在索引 API 中启动的,通过此 API您既可向特定索引中添加 JSON 文档,也可更改特定索引中的 JSON 文档。
-
Logstash 的用途是什么?
Logstash 是 Elastic Stack 的核心产品之一,可用来对数据进行聚合和处理,并将数据发送到 Elasticsearch。Logstash 是一个开源的服务器端数据处理管道,允许您在将数据索引到 Elasticsearch 之前同时从多个来源采集数据,并对数据进行充实和转换。 -
Kibana的用途是什么?
Kibana 是一款适用于 Elasticsearch 的数据可视化和管理工具,可以提供实时的直方图、线形图、饼状图和地图。Kibana 同时还包括诸如 Canvas 和 Elastic Maps 等高级应用程序;Canvas 允许用户基于自身数据创建定制的动态信息图表,而 Elastic Maps 则可用来对地理空间数据进行可视化。
这三个项目分别是:Elasticsearch、Logstash 和 Kibana。三个项目各有不同的功能
- Elasticsearch 是一个实时的全文搜索,存储库和分析引擎。
- Logstash 是数据处理的管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等存储库中。
- Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。
之后又增加了许多新项目, 于是 从5.X版本后改名为Elastic Stack
Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。
人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana)
目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。
ELK 版本演进: 0.X,1.X,2,X,5.X,6,X,7.X,8.X …
官网: https://www.elastic.co/
ELK官方介绍:https://www.elastic.co/cn/what-is/elk-stack
ELK 下载链接:https://www.elastic.co/cn/downloads/
ELK 说明: https://www.elastic.co/guide/cn/index.html
ELK 权威指南: https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
ELK stack的主要优点:
- 功能强大:Elasticsearch 是实时全文索引,具有强大的搜索功能
- 配置相对简单:Elasticsearch 全部其于 JSON,Logstash使用模块化配置,Kibana的配置都比较简单。
- 检索性能高效:基于优秀的设计,每次查询可以实时响应,即使百亿级数据的查询也能达到秒级响应。
- 集群线性扩展:Elasticsearch 和 Logstash都可以灵活线性扩展
- 前端操作方便:Kibana提供了比较美观UI前端,操作也比较简单
官方下载
https://www.elastic.co/cn/downloads/
EFK 由ElasticSearch、Fluentd和Kibana三个开源工具组成。
Fluentd是一个实时开源的数据收集器,和logstash功能相似,这三款开源工具的组合为日志数据提供了分布式的实时搜集与分析的监控系统。
Fluentd官网和文档:
https://www.fluentd.org/
https://docs.fluentd.org/
Elasticsearch
Elasticsearch 介绍
官方介绍
https://www.elastic.co/cn/what-is/elasticsearch
https://db-engines.com/en/ranking
Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件
Elasticsearch 支持数据的实时全文搜索搜索、支持分布式和高可用、提供API接口,可以处理大规模的各种日志数据的处理,比如: Nginx、Tomcat、系统日志等功能。
Elasticsearch 基于 Java 语言开发,利用全文搜索引擎 Apache Lucene 实现
为何使用 Elasticsearch?
- Elasticsearch 很快。由于 Elasticsearch 是在 Lucene 基础上构建而成的,所以在全文本搜索方面
表现十分出色。Elasticsearch 同时还是一个近实时的搜索平台,这意味着从文档索引操作到文档变
为可搜索状态之间的延时很短,一般只有一秒。因此,Elasticsearch 非常适用于对时间有严苛要求
的用例,例如安全分析和基础设施监测。 - Elasticsearch 具有分布式的本质特征。Elasticsearch 中存储的文档分布在不同的容器中,这些容
器称为分片,可以进行复制以提供数据冗余副本,以防发生硬件故障。Elasticsearch 的分布式特性
使得它可以扩展至数百台(甚至数千台)服务器,并处理 PB 量级的数据。 - Elasticsearch 包含一系列广泛的功能。除了速度、可扩展性和弹性等优势以外,Elasticsearch 还
有大量强大的内置功能(例如数据汇总和索引生命周期管理),可以方便用户更加高效地存储和搜
索数据。 - Elastic Stack 简化了数据采集、可视化和报告过程。通过与 Beats 和 Logstash 进行集成,用户够在向 Elasticsearch 中索引数据之前轻松地处理数据。同时,Kibana 不仅可针对 Elasticsearch数据提供实时可视化,同时还提供 UI 以便用户快速访问应用程序性能监测 (APM)、日志和基础设 施指标等数据。
Elasticsearch 在速度和可扩展性方面都表现出色,而且还能够索引多种类型的内容,可用于多种场景:
- 应用程序搜索
- 网站搜索
- 企业搜索
- 日志处理和分析
- 基础设施指标和容器监测
- 应用程序性能监测
- 地理空间数据分析和可视化
- 安全分析
- 业务分析
原理
原始数据会从多个来源(包括日志、系统指标和网络应用程序)输入到 Elasticsearch 中。数据采集指在
Elasticsearch 中进行索引之前解析、标准化并充实这些原始数据的过程。这些数据在 Elasticsearch 中
索引完成之后,用户便可针对他们的数据运行复杂的查询,并使用聚合来检索自身数据的复杂汇总。在
Kibana 中,用户可以基于自己的数据创建强大的可视化,分享仪表板,并对 Elastic Stack 进行管理。
Elasticsearch 索引指相互关联的文档集合。Elasticsearch 会以 JSON 文档的形式存储数据。每个文档都
会在一组键(字段或属性的名称)和它们对应的值(字符串、数字、布尔值、日期、数组、地理位置或
其他类型的数据)之间建立联系。
Elasticsearch 使用的是一种名为倒排索引的数据结构,这一结构的设计可以允许十分快速地进行全文本
搜索。倒排索引会列出在所有文档中出现的每个特有词汇,并且可以找到包含每个词汇的全部文档。
在索引过程中,Elasticsearch 会存储文档并构建倒排索引,这样用户便可以近乎实时地对文档数据进行
搜索。索引过程是在索引 API 中启动的,通过此 API 您既可向特定索引中添加 JSON 文档,也可更改特
定索引中的 JSON 文档。
基本概念
Near Realtime(NRT) 几乎实时
Elasticsearch是一个几乎实时的搜索平台。意思是,从索引一个文档到这个文档可被搜索只需要一点点
的延迟,这个时间一般为毫秒级。
Cluster 集群
群集是一个或多个节点(服务器)的集合, 这些节点共同保存整个数据,并在所有节点上提供联合索引
和搜索功能。一个集群由一个唯一集群ID确定,并指定一个集群名(默认为“elasticsearch”)。该集群
名非常重要,因为节点可以通过这个集群名加入群集,一个节点只能是群集的一部分。
确保在不同的环境中不要使用相同的群集名称,否则可能会导致连接错误的群集节点。
Node 节点
节点是单个服务器实例,它是群集的一部分,可以存储数据,并参与群集的索引和搜索功能。就像一个
集群,节点的名称默认为一个随机的通用唯一标识符(UUID),确定在启动时分配给该节点。如果不希
望默认,可以定义任何节点名。这个名字对管理很重要,目的是要确定网络服务器对应于ElasticSearch
群集节点。
我们可以通过群集名配置节点以连接特定的群集。默认情况下,每个节点设置加入名为“elasticSearch”
的集群。这意味着如果启动多个节点在网络上,假设他们能发现彼此都会自动形成和加入一个名为
“elasticsearch”的集群。
在单个群集中,您可以拥有尽可能多的节点。此外,如果“elasticsearch”在同一个网络中,没有其他节
点正在运行,从单个节点的默认情况下会形成一个新的单节点名为"elasticsearch"的集群。
Index 索引
索引是具有相似特性的文档集合。例如,可以为客户数据提供索引,为产品目录建立另一个索引,以及
为订单数据建立另一个索引。索引由名称(必须全部为小写)标识,该名称用于在对其中的文档执行索
引、搜索、更新和删除操作时引用索引。在单个群集中,您可以定义尽可能多的索引。
注意: 索引名不支持大写字母
Type 类型
在索引中,可以定义一个或多个类型。类型是索引的逻辑类别/分区,其语义完全取决于您。一般来说,
类型定义为具有公共字段集的文档。例如,假设你运行一个博客平台,并将所有数据存储在一个索引
中。在这个索引中,您可以为用户数据定义一种类型,为博客数据定义另一种类型,以及为注释数据定
义另一类型。
Elasticsearch 版本对 type 概念的演变情况如下:
在 5.X 版本中,一个 index 下可以创建多个 type
在 6.X 版本中,一个 index 下只能存在一个 type
在 7.X 版本中,默认可以支持 type ,但可以禁用
在 8.X 版本中,直接就删除 type,即 index 不再支持 type
Document 文档
文档是可以被索引的信息的基本单位。例如,您可以为单个客户提供一个文档,单个产品提供另一个文
档,以及单个订单提供另一个文档。本文件的表示形式为JSON(JavaScript Object Notation)格式,这
是一种非常普遍的互联网数据交换格式。
在索引/类型中,您可以存储尽可能多的文档。请注意,尽管文档物理驻留在索引中,文档实际上必须索
引或分配到索引中的类型。
Shards & Replicas 分片与副本
索引可以存储大量的数据,这些数据可能超过单个节点的硬件限制。例如,十亿个文件占用磁盘空间
1TB的单指标可能不适合对单个节点的磁盘, 或者仅从单个节点的搜索请求服务可能太慢
为了解决这一问题,Elasticsearch提供细分指标分成多个块称为分片的能力。当创建一个索引,可以简
单地定义想要的分片数量。每个分片本身是一个全功能的、独立的“指数”,可以托管在集群中的任何节点。
Shards分片的重要性主要体现在以下两个特征:
-
分片允许您水平拆分或缩放内容的大小
-
分片允许你分配和并行操作的碎片(可能在多个节点上)从而提高性能/吞吐量
这个机制中的碎片是分布式的以及其文件汇总到搜索请求是完全由ElasticSearch管理,对用户来说是透
明的。
在同一个集群网络或云环境上,故障是任何时候都会出现的,拥有一个故障转移机制以防分片和结点因
为某些原因离线或消失是非常有用的,并且被强烈推荐。为此,Elasticsearch允许你创建一个或多个拷
贝,索引分片进入所谓的副本或称作复制品的分片,简称Replicas。
注意:ES的副本指不包括主分片的其它副本,即只包括备份,这与Kafka是不同的
Replicas的重要性主要体现在以下两个特征:
-
副本为分片或节点失败提供了高可用性。需要注意的是,一个副本的分片不会分配在同一个节点作
为原始的或主分片,副本是从主分片那里复制过来的。 -
副本允许用户扩展你的搜索量或吞吐量,因为搜索可以在所有副本上并行执行。
相关概念在关系型数据库和ElasticSearch中的对应关系
关系型数据库 | Elasticsearch |
---|---|
数据库 Database | 索引 Index,支持全文检索 |
表 Table | 类型 Type(废弃) |
数据行 Row | 文档 Document,但不需要固定结构,不同文档可以具有不同字段集合 |
数据列 Column | 字段 Field |
详细说明:
概念 | 说明 |
---|---|
索引库 indices | indices是index的复数,代表许多的索引, |
类型 type | 类型是模拟mysql中的table概念,一个索引库下可以有不同类型的索引,比如商品 索引,订单索引,其数据格式不同。不过这会导致索引库混乱,因此未来版本中会 移除这个概念 |
文档 document | 存入索引库原始的数据。比如每一条商品信息,就是一个文档 |
字段 field | 文档中的属性 |
Logstash
https://www.elastic.co/cn/what-is/elasticsearch
Logstash 是 Elastic Stack 的核心产品之一,可用来对数据进行聚合和处理,并将数据发送到
Elasticsearch。Logstash 是一个基于Java实现的开源的服务器端数据处理管道,允许您在将数据索引到
Elasticsearch 之前同时从多个来源采集数据,并对数据进行过滤和转换。
可以通过插件实现日志收集和转发,支持日志过滤,支持普通log、自定义json格式的日志解析。
Kibana
Kibana 是一款适用于 Elasticsearch 的基于Javascript语言实现的数据可视化和管理工具,可以提供实时
的直方图、线形图、饼状图和地图。Kibana 同时还包括诸如 Canvas 和 Elastic Maps 等高级应用程序;
Canvas 允许用户基于自身数据创建定制的动态信息图表,而 Elastic Maps 则可用来对地理空间数据进
行可视化。
官方文档
https://www.elastic.co/cn/what-is/kibana
主要是通过接口调用elasticsearch的数据,并进行前端数据可视化的展现。
Kibana 与 Elasticsearch 和更广意义上的 Elastic Stack 紧密的集成在一起,这一点使其成为支持以下场
景的理想选择:
- 搜索、查看并可视化 Elasticsearch 中所索引的数据,并通过创建柱状图、饼图、表格、直方图和
地图对数据进行分析。仪表板视图能将这些可视化元素组织到一起,然后通过浏览器进行分享,以
提供对海量数据的实时分析视图,所支持的用例如下:
1. 日志处理和分析
2. 基础设施指标和容器监测
3. 应用程序性能监测 (APM)
4. 地理空间数据分析和可视化
5. 安全分析
6. 业务分析
- 借助网络界面来监测和管理 Elastic Stack 实例并确保实例的安全
- 针对基于 Elastic Stack 开发的内置解决方案(面向可观测性、安全和企业搜索应用程序),将其访 问权限集中到一起
ELK 应用场景
运维主要应用场景:
- 将分布在不同主机的日志统一收集,并进行转换,通过集中的Web UI 进行查询和管理
- 通过查看汇总的日志,找到故障的根本原因
- Web 展示和报表功能
- 实现安全和事件等管理
大数据运维主要应用场景:
- 查询聚合, 大屏分析
- 预测告警, 网络指标,业务指标安全指标
- 日志查询,问题排查,基于API可以实现故障恢复和自愈
- 用户行为,性能,业务分析
ELK 应用架构
相关文章:
企业级日志分析系统ELK之ELK概述
ELK 概述 ELK 介绍 什么是 ELK 早期IT架构中的系统和应用的日志分散在不同的主机和文件,如果应用出现问题,开发和运维人员想排 查原因,就要先找到相应的主机上的日志文件再进行查找和分析,所以非常不方便,而且还涉及…...
scala隐式转换
概念: 在Scala编程语言中,隐式转换是一种强大的功能,它允许程序在需要时自动转换数据类型或增强对象功能。这种转换通常是通过定义一个标记为implicit的函数来实现的,这个函数能够将一种类型转换为另一种类型。隐式转换的使用可以…...
基于无线传感器网络的无线土壤湿度采集系统(附详细使用教程+完整代码+原理图+完整课设报告)
🎊项目专栏:【Zigbee课程设计系列文章】(附详细使用教程完整代码原理图完整课设报告) 前言 👑由于无线传感器网络(也即是Zigbee)作为🌐物联网工程的一门必修专业课,具有…...
367_C++_计算mouse移动过程中,视频框的右侧、底部边距,以及根据实时的右侧、底部边距计算—视频框的左上角位置
代码分析 1. restorePos 方法 restorePos 的作用是恢复 NavigationFrame 的位置,将其移动到父窗口或者指定矩形内的特定位置。 void NavigationFrame::restorePos() {// 获取目标矩形:优先使用 `m_pRect`,否则默认使用视频区域或父窗口区域RSRect videoRect(m_pVide...
Ubuntu下将Julia嵌入Jupyter内核
一.安装 Julia 如果 Julia 尚未安装: 打开终端,下载最新的 Julia 安装包: wget https://julialang-s3.julialang.org/bin/linux/x64/1.9/julia-1.9.3-linux-x86_64.tar.gz 解压并移动到 /opt: tar -xvzf julia-1.9.3-linux-x86_…...
babeltrace与CTF相关学习笔记-1
babeltrace与CTF相关学习笔记-1 写在前面代码下载代码代码编译相关的依赖bootstrapconfigure过程编译和安装注 编译完成后,初步的审视找到与ctf相关的工程tests./test-ctf-writer.sh先运行./test-ctf-writer.shctf-writer脚本 vscode跟踪ctf-writer.c后记࿱…...
国内Chrome浏览器下载安装教程,谷歌浏览器最新下载教程
今天主要讲解的是国内Chrome浏览器下载安装教程,谷歌浏览器最新下载教程,包括确认浏览器版本、ChromeDriver 驱动的下载,同理,这个教程同样适用于windows版本的,linux 版本的, mac 版本的。 众所周知&…...
使用秘钥登录服务器
在我们测试或生产环境中,为了服务器安全性,有时可能需要以 SSH 密钥的方式登录服务器,接下来,将演示如何通过 SSH 私钥的方式来远程服务器。 一、远程服务器生成密钥对 1、首先在目标远程服务器下生成 SSH 密钥对 ssh-keygen然…...
vscode中PyQt5模块代码提示问题
在VSCode中使用PyQt5时遇到代码提示缺失的问题,尝试了更新jedi、使用Pylance插件以及修改python.autoComplete.extraPaths配置均未见效。 ## 配置qgis的vscode开发环境 在vscode编辑器中qgis的引入会报错,请按一下步骤解决: 1. 在vscode中&a…...
SpringBoot 整合 RabbitMQ 实现流量消峰
RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。 消息中间件在互联网公司的使用中越来越多,刚才还看到新闻阿里将 RocketMQ 捐献给了 Apache,当然了今天的主角还…...
Jenkins与SonarQube持续集成搭建及坑位详解
Jenkins和SonarQube都是软件开发过程中常用的工具,它们在代码管理、构建、测试和质量管理方面发挥着重要作用。以下是关于Jenkins与SonarQube的作用及整合步骤环境搭建的详细解释: 一、Jenkins与SonarQube的作用 Jenkins: Jenkins是一个开源的持续集成和交付工具,它可以帮…...
从YOLOv5到训练实战:易用性和扩展性的加强
文章目录 前言一、模型介绍二、YOLOv5网络结构1.Input(输入端):智能预处理与优化策略2.Backbone(骨干网络):高效特征提取3.NECK(颈部):特征增强与多尺度融合4.Prediction…...
聊聊Oracle自适应查询优化
成也AQO败也AQO 因为工作的原因,我们接触到的客户大部分是金融和运营商行业,这些客户有个最大的特点是追求稳定,对于使用数据库新特性持保守的态度,不会轻易尝试某些可能会导致生产系统不稳定的新特性。上线前通常都会将一些新特…...
MySQL其四,各种函数,以及模拟了炸裂函数创建用户等操作
目录 一、MySQL中的函数 1、IFNULL 2、IF 3、case (难点) 4、exists(难) --存在的意思 二、常见的函数 1、字符串函数 2、数学函数 3、日期函数 (使用频率不是很高) 4、其他函数 5、关于字符集的问题 6、mysql炸裂函数…...
浅谈 php 采用curl 函数库获取网页 cookie 和 带着cookie去访问 网页的方法!!!!
由于近段时间帮朋友开发一个能够查询正方教务系统的微信公众平台号。有所收获。这里总结下个人经验。 开讲前,先吐槽一下新浪云服务器,一个程序里的 同一个函数 在PC测试可以正常运行,在它那里就会挂的现象。 老样子,我将在代…...
ssm-springmvc-学习笔记
简介 简单的来说,就是一个在表述层负责和前端数据进行交互的框架 帮我们简化了许多从前端获取数据的步骤 springmvc基本流程 用户在原本的没有框架的时候请求会直接调用到controller这个类,但是其步骤非常繁琐 所以我们就使用springmvc进行简化 当用…...
nVisual 登录页页面配置说明
一、概述 nVisual登录页面可根据具体客户需要通过public\config\access.js文件进行自定义配置。页面可以大致分为4个部分,头部、底部、可移动区域以及页面中间的信息填写区域。其中头部和底部又包含头部左侧、头部中间、头部右侧、底部左侧、底部中间、底部右侧六个…...
Qt6开发自签名证书的https代理服务器
目标:制作一个具备类似Fiddler、Burpsuit、Wireshark的https协议代理抓包功能,但是集成到自己的app内,这样无需修改系统代理设置,使用QWebengineview通过自建的代理服务器,即可实现https包的实时监测、注入等自定义功能…...
crapy 爬虫框架的使用
1.scrapy框架安装 安装前先安装python3和pycharm 社区版 执行命令安装scrapy, pip install scrapy 2.创建项目 执行命令: scrapy startproject test_spider 如图: 3.使用pycharm大开项目并设置pipenv虚拟机环境 虚拟环境是为了依赖隔…...
Edge SCDN 边缘安全加速有什么用?
Edge SCDN是最新推出的边缘安全加速服务,它是一种融合了安全防护和内容分发加速功能的网络服务技术,通过在网络边缘部署服务器节点,来优化内容的传输和用户的访问体验,同时保障网络安全。 抵御 DDoS 攻击: Edge SCDN …...
使用aarch64-unknown-linux-musl编译生成静态ARM64可执行文件
使用aarch64-unknown-linux-musl编译生成静态ARM64可执行文件 使用aarch64-unknown-linux-musl编译生成静态ARM64可执行文件1. 安装aarch64-unknown-linux-musl目标2. 安装交叉编译工具链安装musl-cross-make 3. 配置Rust编译器使用交叉编译工具链4. 编译你的Rust项目5. 运行或…...
u-boot移植、配置、编译学习笔记【刚开始就中止了】
教程视频地址 https://www.bilibili.com/video/BV1L24y187cK 【这个视频中途停更了…原因是实际中需要去改u-boot的情况比较少】 使用的u-boot的源码 视频中使用的是 u-boot-2017.03 学习到这里,暂停u-boot的移植、配置、编译学习,原因是经过与老师…...
torchaudio.load 段错误
使用 torchaudio.load 时出现崩溃,如图 解决: 安装 ffmpeg conda install ffmpeg -c conda-forge 尝试但没解决问题的方法包括 重装 cuda,重装 pytorch,安装 PySoundFile、SoundFile、sox。...
自定义函数库
求两点距离 double dis(double x1, double y1, double x2, double y2){return sqrt(pow(x2-x1, 2)pow(y2-y1, 2)); }判断闰年 bool isLeapYear(int year){return year%40 && year%100!0 || year%4000; }判断素数 bool isPrime(int num){if(num<2) return false;f…...
Tomcat的下载和使用,配置控制台输出中文日志
目录 1. 简介2. 下载3. 使用3.1 文件夹展示3.1.1 控制台输出乱码 3.2 访问localhost:80803.3 访问静态资源 4. 总结 1. 简介 Tomcat,全称为Apache Tomcat,是一个开源的Web应用服务器和Servlet容器,由Apache软件基金会的Jakarta项目开发。它实…...
STM32应用开发——BH1750光照传感器详解
STM32应用开发——BH1750光照传感器详解 目录 STM32应用开发——BH1750光照传感器详解前言1 硬件介绍1.1 BH1750简介1.2 硬件接线 2 软件编程2.1 软件原理2.1.1 IIC设备地址2.1.2 IIC读写2.1.3 BH1750指令集2.1.4 BH1750工作流程2.1.5 BH1750测量模式 2.2 测试代码2.3 运行测试…...
java jar包加密 jar-protect
介绍 java 本身是开放性极强的语言,代码也容易被反编译,没有语言层面的一些常规保护机制,jar包很容易被反编译和破解。 受classfinal(已停止维护)设计启发,针对springboot日常项目开发,重新编写安全可靠的jar包加壳加密技术,用于保护软件版权。 使用说…...
NMEA/观测文件/导航电文
NMEA-0183 NMEA-0183是美国国家海洋电子协会为海用电子设备制定的标准格式。它包含了定位时间,纬度,经度,高度,定位所用的卫星数,DOP,差分状态和校正时段等很多信息。 参考:GPS NMEA数据包解析…...
HTTPS的工作原理深入解析
在当今互联网时代,网络安全已经成为了一个备受关注的话题。随着越来越多的个人隐私和商业数据被传输在网络中,如何确保这些数据在传输过程中的安全性成为了每个网络开发者和用户关注的核心问题之一。而HTTPS(HyperText Transfer Protocol Sec…...
pandas.core.frame.DataFrame怎么进行对象内容的读写
在 Python 中,pandas.core.frame.DataFrame 是 Pandas 数据库的核心数据结构,可以方便地读取和操作表格数据。以下是几种常见的读取内容的方法: 读取特定列 通过列名获取数据。 # 假设 df 是一个 DataFrame data df["列名"] # …...
OFCA-OpenHarmony人才认证题库答案
单选题 1.[单选题] 位于后台的应用,启动组件需校验的权限是: A: ohos.permission.DISTRIBUTED_DATASYNC B: ohos.permission.START_ABILITIES_FROM_BACKGROUND C: ohos.permission.ABILITY_BACKGROUND_COMMUNICATION D: ohos.permission.START_INVISIBLE_ABIL…...
若依微服务如何获取用户登录信息
文章目录 1、需求提出2、应用场景3、解决思路4、注意事项5、完整代码第一步:后端获取当前用户信息第二步:前端获取当前用户信息 6、运行结果后端测试:前端展示: 总结 1、需求提出 在微服务架构中,获取当前用户的登录信…...
题目 2778: 判断数正负
题目 2778: 判断数正负 时间限制: 2s 内存限制: 192MB 提交: 12161 解决: 6681 题目描述 给定一个整数N,判断其正负。 输入格式 一个整数N(-109 < N < 109) 输出格式 如果N > 0, 输出positive; 如果N 0, 输出zero; 如果N < 0, 输…...
【Hexo】博客自动生成AI摘要
工具介绍 如何让博客支持AI摘要,使用TianliGPT自动生成文章的AI摘要 摘要AI-文章摘要生成工具 文章摘要是一个专业的文字摘要生成工具,你可以将需要提取摘要的文本内容发送给TianliGPT,稍等一会他就可以给你发送一个基于这段文本内容的摘要。…...
vue3-count-to实现数字动态增长效果
vue3-count-to 是一个用于 Vue 3的数字计数动画库,常用于在页面上实现数字的动态增长效果,类似于从某个起始值渐变到目标值的效果。它可以用来显示各种数字、统计数据或展示动画效果。 1 安装 vue3-count-to 首先,你需要安装 vue3-count-to …...
第一课【输入输出】(题解)
1.向世界问好 题目描述 编程输出以下内容: Hello World! Im a C program. 输入格式 本题无输入。 输出格式 请按照样例输出,注意大小写、空格、感叹号,句号,单引号都必须使用英文输入法里的符号。 样例输入/输出 输入数据 1 本题无…...
边缘AI和智能音频专家XMOS全球首家增值经销商(VAR)落地中国
强强合作——XMOS与飞腾云达成全球首家增值经销协议以用智能音频技术和产品服务全球厂商和消费者 中国深圳,2024年12月——全球领先的软件定义系统级芯片(SoC)开发商XMOS宣布:公司已与飞腾云科技达成增值分销协议,授权…...
实战 | 某院校小程序记录
视频教程在我主页简介里 目录: 前言: 渗透思路 1.绕过前端 2.信息泄露 3.爆破用户账号密码 4.信息泄露2 结束 前言: 遇到一个学校小程序的站点,只在前端登录口做了校验,后端没有任何校验,奇葩弱口令离…...
正则表达式——参考视频B站《奇乐编程学院》
智能指针 一、背景🎈1.1. 模式匹配🎈1.2. 文本替换🎈1.3. 数据验证🎈1.4. 信息提取🎈1.5. 拆分字符串🎈1.6. 高级搜索功能 二、原料2.1 参考视频2.2 验证网址 三、用法3.1 限定符3.1.1 ?3.1.2 *3.1.3 3.1.…...
【Vue + Print.js】前端打印, 自定义字体大小, 自定义样式, 封装共享样式
在前端开发中,打印功能是一个常见的需求,尤其是在生成报表、打印用户资料或者导出文档时,通常需要通过前端代码进行打印。Print.js 是一个非常流行的 JavaScript 库,它提供了简单而强大的打印功能,允许你灵活控制打印内…...
python模拟练习第一期
问题一 如果一个数 p 是个质数,同时又是整数 a的约数,则 p 称为 a的一个质因数。 请问 2024 有多少个质因数? 步骤 1: 分解 2024 首先,2024 是偶数,说明可以被 2 整除。我们从 2 开始进行除法分解: 202…...
Java-25 深入浅出 Spring - 实现简易Ioc-01 Servlet介绍 基本代码编写
点一下关注吧!!!非常感谢!!持续更新!!! 大数据篇正在更新!https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了: MyBatisÿ…...
华硕奥创软件在线安装和离线安装方法
华硕奥创软件在线安装和离线安装方法 1. 华硕奥创软件介绍2. 华硕奥创软件在线安装2.1 第一种2.2 第二种 3. 华硕奥创软件离线安装3.1 概述3.2 华硕奥创软件离线包下载方式 4. 卸载华硕奥创软件4.1 概述4.2 华硕奥创卸载软件下载与使用方式 结束语 1. 华硕奥创软件介绍 华硕奥…...
AI监控赋能健身馆与游泳馆全方位守护,提升安全效率
一、AI视频监控技术的崛起 随着人工智能技术的不断发展,AI视频监控正成为各行业保障安全、提升效率的关键工具。相比传统监控系统,AI技术赋予监控系统实时分析、智能识别和精准预警的能力,让“被动监视”转变为“主动防控”。 二、AI监控应用…...
SQL Server数据库还原差异备份
适用范围:SQL Server 本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中还原差异数据库备份。 限制和局限 不允许在显式或隐式事务中使用 RESTORE。 无法在早期版本的 SQL Server 中还原较新版本的 SQL Server创建的备份。 在…...
Python 给 Excel 写入数据的四种方法
Python 在数据处理领域应用广泛,其中与 Excel 文件的交互是常见需求之一。 本文将介绍四种使用 Python 给 Excel 文件写入数据的方法,并结合生活中的例子进行解释,帮助新手小白快速上手。 1. 使用 openpyxl 库 openpyxl 是一个用于读写 Exc…...
实验14 RNN的记忆能力和梯度爆炸实验
一 循环神经网络的记忆能力 1.数据集构建 创建了一个DigitSumDataset 类,包括初始化函数init、数据生成函数 generate_data、数据加载函数 load_data、__len__ 方法、__getitem__ 方法。 init函数:接受的参数是data_path( 存放数据集的目录…...
【电子通识】电流倒灌为什么需要注意?
电流倒灌是一个很常见的问题,以“IO电流倒灌”为关键词在百度上进行搜索,可以找到很多相关案例。 电流倒灌问题在5V电平的单片机时代几乎不会发生,主要是因为5V单片的IO耐压值高,单片机内部结构对IO保护设计很好。 到了3.3V单片机时代,这类问题有一定的偶发性,但…...
Elasticsearch 集群部署
Elasticsearch 是一个分布式的搜索和分析引擎,广泛应用于日志分析、全文搜索、实时数据分析等场景。它以其高性能、高可用性和易用性而著称。本文档将引导您完成一个基本的 Elasticsearch 集群配置,包括节点间的通信、客户端访问、安全设置等关键步骤。我…...
Windows系统VSCode 搭建ESP-IDF环境
VS Code,安装ESP-IDF插件 快捷键CTRLSHIFTP,弹出显示所有命令的窗口,选择ESP-IDF的欢迎 使用第一个选项,要选择一个ESP-IDF版本,选最新的就行 点击Install,等待下载 提示安装成功,如果过程中出现python已存…...