ELK企业级日志分析平台
目录
一、elasticsearch
1、集群部署
2、cerebro部署
3、elasticsearch-head插件部署
4、elasticsearch集群角色分类
二、logstash
1、部署
2、elasticsearch输出插件
3、file输入插件
4、file输出插件
5、syslog 插件
6、多行过滤插件
7、grok过滤
三、kibana数据可视化
1、部署
2、定制数据可视化
(1)网站访问量
(2)访问量排行榜
(3)创建dashboard(仪表盘),大屏展示
四、ES集群监控
1、启用xpack认证
2、metricbeat监控
3、filebeat日志采集
一、elasticsearch
Elasticsearch 是一个开源的分布式搜索分析引擎,建立在一个全文搜索引擎库 Apache Lucene基础之上。
Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎:
- 一个分布式的实时文档存储,每个字段 可以被索引与搜索
- 一个分布式实时分析搜索引擎
- 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据
基础模块
- cluster:管理集群状态,维护集群层面的配置信息。
- alloction:封装了分片分配相关的功能和策略。
- discovery:发现集群中的节点,以及选举主节点。
- gateway:对收到master广播下来的集群状态数据的持久化存储。
- indices:管理全局级的索引设置。
- http:允许通过JSON over HTTP的方式访问ES的API。
- transport:用于集群内节点之间的内部通信。
- engine:封装了对Lucene的操作及translog的调用。
elasticsearch应用场景:
- 信息检索
- 日志分析
- 业务数据分析
- 数据库加速
- 运维指标监控
官网:https://www.elastic.co/cn/
1、集群部署
主机 | ip | 角色 |
docker | 192.168.67.10 | cerebro/elasticsearch-head |
elk1 | 192.168.67.31 | elasticsearch |
elk2 | 192.168.67.32 | elasticsearch |
elk3 | 192.168.67.33 | elasticsearch |
elk4 | 192.168.67.34 | logstash |
elk5 | 192.168.67.35 | kibana |
软件安装
rpm -ivh elasticsearch-7.6.1-x86_64.rpm
修改配置
cluster.name: my-es
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["server1", "server2", "server3"]
cluster.initial_master_nodes: ["server1", "server2", "server3"]
系统设置
vim /etc/security/limits.conf
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
elasticsearch - nofile 65535
elasticsearch - nproc 4096vim /usr/lib/systemd/system/elasticsearch.service
[service]
...
LimitMEMLOCK=infinity
systemctl daemon-reloadswapoff -avim /etc/fstab
#/dev/mapper/rhel-swap swap swap defaults 0 0systemctl daemon-reload
systemctl enable --now elasticsearch
完成部署:
2、cerebro部署
docker pull lmenezes/cerebro
docker run -d --name cerebro -p 9000:9000 lmenezes/cerebro


3、elasticsearch-head插件部署
安装依赖
yum install -y nodejs-9.11.2-1nodesource.x86 64.rpmtar xf phantomjs-2.1.1-linux-x86 64.tar.bz2
cd phantomjs-2.1.1-linux-x86 64/
cd bin/
mv phantomjs /usr/local/bin/
phantomjs
安装插件
rpm -ivh nodejs-9.11.2-1nodesource.x86_64.rpm
unzip elasticsearch-head-master.zip
cd elasticsearch-head-master/
npm install --registry=https://registry.npm.taobao.org
vim _site/app.js
启动服务
npm run start &
netstat -antlp|grep :9100
修改es配置
vim /etc/elasticsearch/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"
systemctl restart elasticsearch.service
创建索引
查看ES状态
4、elasticsearch集群角色分类
- Master:
- 主要负责集群中索引的创建、删除以及数据的Rebalance等操作。Master不负责数据的索引和检索,所以负载较轻。当Master节点失联或者挂掉的时候,ES集群会自动从其他Master节点选举出一个Leader。
- Data Node:
- 主要负责集群中数据的索引和检索,一般压力比较大。
- Coordinating Node:
- 原来的Client node的,主要功能是来分发请求和合并结果的。所有节点默认就是Coordinating node,且不能关闭该属性。
- Ingest Node:
- •专门对索引的文档做预处理
- Machine learning node:
- 机器学习节点提供了机器学习功能,该节点运行作业并处理机器学习 API 请求.
- 在生产环境下,如果不修改elasticsearch节点的角色信息,在高数据量,高并发的场景下集群容易出现脑裂等问题。
- 默认情况下,elasticsearch集群中每个节点都有成为主节点的资格,也都存储数据,还可以提供查询服务。
- 节点角色是由以下属性控制:(以下是默认值)
- node.master: true
- node.voting_only: false
- node.data: true
- node.ingest: true
- node.ml: true
- xpack.ml.enabled: true
- search.remote.connect: true
- node.master:这个属性表示节点是否具有成为主节点的资格
注意:此属性的值为true,并不意味着这个节点就是主节点。因为真正的主节点,是由多个具有主节点资格的节点进行选举产生的。
- node.data:这个属性表示节点是否存储数据。
- node.ingest: 是否对文档进行预处理。
- search.remote.connect:是否禁用跨集群查询
- 生产集群中可以对这些节点的职责进行划分
- 建议集群中设置3台以上的节点作为master节点,这些节点只负责成为主节点,维护整个集群的状态。
- 再根据数据量设置一批data节点,这些节点只负责存储数据,后期提供建立索引和查询索引的服务,这样的话如果用户请求比较频繁,这些节点的压力也会比较大。
- 所以在集群中建议再设置一批协调节点,这些节点只负责处理用户请求,实现请求转发,负载均衡等功能。
- 节点需求
- master节点:普通服务器即可(CPU、内存 消耗一般)
- data节点:主要消耗磁盘、内存。
- path.data: data1,data2,data3
这样的配置可能会导致数据写入不均匀,建议只指定一个数据路径,磁盘可以使用raid0阵列,而不需要成本高的ssd。
- Coordinating节点:对cpu、memory要求较高。
vim /etc/elasticsearch/elasticsearch.yml
node.master: true
node.data: false
node.ingest: true
node.ml: false
等组合 node.ingest: true 至少一个节点要有
如果重启有错误 这个上面有数据需要清理迁移到其他节点
查看:
不同插件查看
二、logstash
- Logstash是一个开源的服务器端数据处理管道。
- logstash拥有200多个插件,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的 “存储库” 中。(大多都是 Elasticsearch。)
- Logstash管道有两个必需的元素,输入和输出,以及一个可选元素过滤器。
- 输入:采集各种样式、大小和来源的数据
- Logstash 支持各种输入选择 ,同时从众多常用来源捕捉事件。
- 能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。
- 过滤器:实时解析和转换数据
- 数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。
- 利用 Grok 从非结构化数据中派生出结构
- 从 IP 地址破译出地理坐标
- 将 PII 数据匿名化,完全排除敏感字段
- 简化整体处理,不受数据源、格式或架构的影响
- 输出:选择您的存储库,导出您的数据
- 尽管 Elasticsearch 是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。
- Logstash 提供众多输出选择,您可以将数据发送到您要指定的地方,并且能够灵活地解锁众多下游用例。
1、部署
新建一台虚拟机elk4部署logstash
yum install -y jdk-11.0.15_linux-x64_bin.rpm
yum install -y logstash-7.6.1.rpm
命令方式
/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
2、elasticsearch输出插件
cd /etc/logstash/conf.d
vim test.confinput {stdin { }
}output {stdout {}elasticsearch {hosts => "192.168.67.31:9200"index => "logstash-%{+YYYY.MM.dd}"}
}
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf
3、file输入插件
vim fileput.confinput {file {path => "/var/log/messages"start_position => "beginning"}
}output {stdout {}elasticsearch {hosts => "192.168.67.31:9200"index => "syslog-%{+YYYY.MM.dd}"}}/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/fileput.conf
.sincedb文件保存文件读取进度,避免数据冗余读取
cd /usr/share/logstash/data/plugins/inputs/file/
sincedb文件一共6个字段
- inode编号
- 文件系统的主要设备号
- 文件系统的次要设备号
- 文件中的当前字节偏移量
- 最后一个活动时间戳(浮点数)
- 与此记录匹配的最后一个已知路径
删除后重新读取
4、file输出插件
vim file.confinput {stdin { }
}
output {file {path => "/tmp/logstash.txt" codec => line { format => "custom format: %{message}"} }
}/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/file.conf
5、syslog 插件
vim syslog.confinput {syslog {}
}output {stdout {}elasticsearch {hosts => "192.168.67.31:9200"index => "rsyslog-%{+YYYY.MM.dd}"}}/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/syslog.conf
vim /etc/rsyslog.conf
去掉以下行的注释
$ModLoad imudp
$UDPServerRun 514*.* @@192.168.36.34:514

6、多行过滤插件
多行过滤可以把多行日志记录合并为一行事件
cd /var/log/elasticsearchscp my-es.log elk4:/var/log/
在elk4上执行
vim multiline.confinput {file {path => "/var/log/my-es.log"start_position => "beginning"codec => multiline {pattern => "^\["negate => truewhat => previous}}}output {stdout {}elasticsearch {hosts => "192.168.67.31:9200"index => "myeslog-%{+YYYY.MM.dd}"}}/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/multiline.conf
7、grok过滤
安装httpd
yum install -y httpd
systemctl enablel --now httpd
echo www.westos.org > /var/www/html/index.html
访问此站点生成日志信息
ab -c1 -n 300 http://192.168.67.34/index.html
编写文件
vim grok.confinput {file {path => "/var/log/httpd/access_log"start_position => "beginning"}
}filter {grok {match => { "message" => "%{HTTPD_COMBINEDLOG}" }}
}output {stdout {}elasticsearch {hosts => "192.168.67.31:9200"index => "apachelog-%{+YYYY.MM.dd}"}}/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/grok.conf
三、kibana数据可视化
- Kibana 核心产品搭载了一批经典功能:柱状图、线状图、饼图、旭日图,等等。
- 将地理数据融入任何地图
- 精选的时序性 UI,对您Elasticsearch 中的数据执行高级时间序列分析。
- 利用 Graph 功能分析数据间的关系
1、部署
新建虚拟机elk5,部署kibana
rpm -ivh kibana-7.6.1-x86_64.rpm
修改配置文件
server.host: "0.0.0.0"elasticsearch.hosts: ["http://192.168.67.31:9200"]i18n.locale: "zh-CN"
启动
systemctl enable --now kibana
netstat -antlp |grep :5601
访问:
创建索引
2、定制数据可视化
(1)网站访问量
(2)访问量排行榜
提前在各个节点 ab -c1 -n 500 http://192.168.67.34/index.html 一下
保存视图
(3)创建dashboard(仪表盘),大屏展示

把上面创建的两个可视化添加到仪表板中
四、ES集群监控
1、启用xpack认证
在elk1上生成证书
cd /usr/share/elasticsearch/
bin/elasticsearch-certutil ca
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
cp elastic-certificates.p12 /etc/elasticsearch
cd /etc/elasticsearch/
chown elasticsearch elastic-certificates.p12
修改配置文件
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /etc/elasticsearch/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /etc/elasticsearch/elastic-certificates.p12
拷贝文件到elk2,3节点
二三节点同理
重启成功
等待所有集群节点重启成功后,设置认证账户密码
cd /usr/share/elasticsearch/
bin/elasticsearch-setup-passwords interactive
ES启用xpack之后,其它服务都需要配置认证
cd /etc/elasticsearch/
vim elasticsearch.ymlhttp.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type启动:
cd elasticsearch-head-master/
npm run start &
访问:http://192.168.67.101:9100/?auth_user=elastic&auth_password=123456
cerebro访问:直接使用账号密码登录
vim /etc/logstash/conf.d/grok.confinput {file {path => "/var/log/httpd/access_log"start_position => "beginning"}
}filter {grok {match => { "message" => "%{HTTPD_COMBINEDLOG}" }}
}output {stdout {}elasticsearch {hosts => "192.168.56.11:9200"index => "apachelog-%{+YYYY.MM.dd}"user => "elastic"password => "westos"}}
kibana访问:
vim /etc/kibana/kibana.ymlelasticsearch.username: "kibana"
elasticsearch.password: "westos"systemctl restart kibana.service
2、metricbeat监控
官网:https://www.elastic.co/guide/en/elasticsearch/reference/7.6/configuring-metricbeat.html
首先使用内部检测,然后进入设置模式
选择启动metricbeat的节点,然后根据提示步骤操作
安装软件 修改配置文件添加账号密码
rpm -ivh metricbeat-7.6.1-x86_64.rpm
cd /etc/metricbeat/modules.d
metricbeat modules enable elasticsearch-xpackvim elasticsearch-xpack.yml
cd ..
vim metricbeat.yml
systemctl enable --now metricbeat.service
其它节点依次类推
Kibana监控:
同上安装软件 不同的模块
metricbeat modules enable kibana-xpack
systemctl enable --now metricbeat.service
禁用内部检测
vim /etc/kibana/kibana.ymlxpack.monitoring.kibana.collection.enabled: false
3、filebeat日志采集
文档:https://www.elastic.co/guide/en/beats/filebeat/7.6/filebeat-module-elasticsearch.html
安装
rpm -ivh filebeat-7.6.1-x86_64.rpm
cd /etc/filebeat/modules.d
filebeat modules enable elasticsearch
修改配置
vim elasticsearch.yml- module: elasticsearch# Server logserver:enabled: true# Set custom paths for the log files. If left empty,# Filebeat will choose the paths depending on your OS.var.paths:- /var/log/elasticsearch/*.log # Plain text logs- /var/log/elasticsearch/*_server.json # JSON logsgc:enabled: true# Set custom paths for the log files. If left empty,# Filebeat will choose the paths depending on your OS.var.paths:- /var/log/elasticsearch/gc.log.[0-9]*- /var/log/elasticsearch/gc.logaudit:enabled: true# Set custom paths for the log files. If left empty,# Filebeat will choose the paths depending on your OS.var.paths:- /var/log/elasticsearch/*_access.log # Plain text logs- /var/log/elasticsearch/*_audit.json # JSON logsslowlog:enabled: true# Set custom paths for the log files. If left empty,# Filebeat will choose the paths depending on your OS.var.paths:- /var/log/elasticsearch/*_index_search_slowlog.log # Plain text logs- /var/log/elasticsearch/*_index_indexing_slowlog.log # Plain text logs- /var/log/elasticsearch/*_index_search_slowlog.json # JSON logs- /var/log/elasticsearch/*_index_indexing_slowlog.json # JSON logsdeprecation:enabled: true# Set custom paths for the log files. If left empty,# Filebeat will choose the paths depending on your OS.var.paths:- /var/log/elasticsearch/*_deprecation.log # Plain text logs- /var/log/elasticsearch/*_deprecation.json # JSON logscd ..
vim filebeat.yml
systemctl enable --now filebeat.service
2,3节点
相关文章:

ELK企业级日志分析平台
目录 一、elasticsearch 1、集群部署 2、cerebro部署 3、elasticsearch-head插件部署 4、elasticsearch集群角色分类 二、logstash 1、部署 2、elasticsearch输出插件 3、file输入插件 4、file输出插件 5、syslog 插件 6、多行过滤插件 7、grok过滤 三、kibana数…...
.NET面试题1
1.什么是C#? C#(读作"C sharp")是一种通用的、面向对象的编程语言,由Microsoft开发。它是一种静态类型语言,支持强类型检查和面向对象编程(OOP)的概念。C#主要用于开发Windows应用程序…...
mongodb 日志详情
1 mongodb日志简介 MongoDB的日志包括两个主要部分:操作日志(oplog)和系统日志。 1.1 操作日志 操作日志(oplog)是一个特殊的集合,用于记录所有对数据库进行的操作(如插入、更新和删除&#x…...

Oracle中文显示???????解决办法
项目场景: Oracleoracle中文显示???解决办法 问题描述 原因分析: Oracle中文显示???通常是由于字符集不匹配或者编码问题导致的。当数据库中的数据使用的是某种字符集,而客户端或者应用程序使用的是另一种字符集时,就会出…...
Java查询数据放入word模板中并在前端导出下载
需求:查询数据放入word模板中并在前端导出下载 解决方法:在模板的位置定义参数如 {{name}} {{age}}等等,使用 poi 处理 伪代码: PostMapping("/practiceAppr")public AjaxResult practiceAppr(OutputStream outputSt…...

HarmonyOS ArkTS 应用添加弹窗(八)
概述 在我们日常使用应用的时候,可能会进行一些敏感的操作,比如删除联系人,这时候我们给应用添加弹窗来提示用户是否需要执行该操作,如下图所示: 弹窗是一种模态窗口,通常用来展示用户当前需要的或用户必须…...

排序算法-----快速排序(非递归实现)
目录 前言 快速排序 基本思路 非递归代码实现 算法分析 空间复杂度 时间复杂度 稳定性 前言 很久没跟新数据结构与算法这一栏了,因为数据结构与算法基本上都发布完了,哈哈,那今天我就把前面排序算法那一块的快速排序完善一下࿰…...

el-input限制输入整数等分析
文章目录 前言1、在 Vue 中,可以使用以下几种方式来限制 el-input 只能输入整数1.1 设置input 的 type为number1.2 使用inputmode1.3 使用自定义指令1.4 使用计算属性1.5 使用 onafterpaste ,onkeyup1.6 el-input-number 的precision属性 总结 前言 input 限制输入…...

医院手术麻醉信息系统全套源码,自主版权,支持二次开发
医院手术麻醉信息系统全套商业源码,自主版权,支持二次开发 手术麻醉信息系统是HIS产品的中的一个组成部分,主要应用于医院的麻醉科,属于电子病历类产品。医院麻醉监护的功能覆盖整个手术与麻醉的全过程,包括手术申请与…...

canvas扩展001:利用fabric绘制图形,可以平移,旋转,放缩
canvas可以使用Fabric.js来做扩展,您可以在画布上创建和填充对象; 诸如简单几何形状之类的对象 - 矩形、圆形、椭圆形、多边形或由数百或数千条简单路径组成的更复杂的形状。 然后,您可以使用鼠标缩放、移动和旋转这些对象; 修改它…...

什么是机器学习
前言 机器学习(Machine Learning, ML)是一个总称,用于解决由各位程序员自己基于 if-else 等规则开发算法而导致成本过高的问题,想要通过帮助机器 「发现」 它们 「自己」 解决问题的算法来解决 ,而不需要程序员将所有…...

电子桌牌如何赋能数字化会务?以深圳程序员节为例。
10月24日,由深圳市人民政府指导,深圳市工业和信息化局、龙华区人民政府、国家工业信息安全发展研究中心、中国软件行业协会联合主办的2023深圳中国1024程序员节开幕式暨主论坛活动在深圳龙华区启幕。以“领航鹏城发展,码动程序世界”为主题&a…...
打包和部署Java应用程序:Maven和Shell脚本的实用方法
在软件开发领域,高效打包和分发Java应用程序是至关重要的。本博客将探讨一种使用Maven插件和Shell脚本的简化方法,以创建一个分发包,其中包含了您项目的可执行JAR文件、配置文件和一个方便的启动脚本。 步骤1:Maven插件配置 旅程…...

Windows Python3安装salt模块失败处理
复现CVE-2020-11651时候运行CVE-2020-11651的poc时候需要salt模块 在下载时出现了错误 尝试在网上寻找解决方法: 1.更新 setuptools 和 wheel pip install --upgrade setuptools wheel 2. 安装Microsoft Visual C 14.0 因为salt模块包包使用了 C/C 扩展&#x…...

RabbitMQ 消息队列编程
安装与配置 安装 RabbitMQ 读者可以在 RabbitMQ 官方文档中找到完整的安装教程:Downloading and Installing RabbitMQ — RabbitMQ 本文使用 Docker 的方式部署。 RabbitMQ 社区镜像列表:https://hub.docker.com/_/rabbitmq 创建目录用于映射存储卷…...

基于安卓android微信小程序的个人管理小程序
运行环境 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包&a…...

免费图书教材配套资料:Spark大数据技术与应用(第2版)
《Spark大数据技术与应用(第2版)》课程内容全面介绍了Spark大数据技术的相关知识,内容包含包括Spark概述、Scala基础、Spark编程、Spark编程进阶、Spark SQL结构化数据文件处理、Spark Streaming实时计算框架、Spark GraphX图计算框架、Spark…...
SecureCRT9汉化版安装
CRT中文版安装说明 一、安装步骤1. 安装注意:2. 右键压缩包,解压到本地文件夹内3. 解压后进入目录,双击CRT_SFX_91_Run_Script激活脚本 3 如果运行结果是下图,就激活成功了:4. 双击桌面的CRT和FX图标5. 如果提示下图,,点击总是忽略即可6. 第一次安装CRT会出现下图,让你…...

【VSCode】VSCode 使用
目录 文章目录 目录插件配置设置代码不显示 git 提示 "xxx months ago | 1 author"设置打开项目不自动选择 CMakeLists 插件 以下插件为 C 开发偏好设置。 C/CCMakeCMake ToolsGitLensRemote DevelopmentRemote Explorer 配置 设置代码不显示 git 提示 “xxx mon…...
【ARM 嵌入式 编译系列 2.2 -- 如何在Makefile 中添加编译时间 | 编译作者| 编译 git id】
请阅读【ARM GCC 编译专栏导读】 上篇文章:【ARM 嵌入式 编译系列 2.1 – GCC 编译参数学习】 下篇文章:【ARM 嵌入式 编译系列 2.3 – GCC 中指定 ARMv8-M 的 Thumb 指令集参数详细介绍】 文章目录 编译参数介绍 编译参数介绍 通常我们在 OS 启动的时…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...