ELKF日志学习(七)Filebeat解析json

filebeat采集json日志到logstash 在这里只讲配置,不讲作用,建议看官网(https://www.elastic.co/cn/)。 filebeat ①配置filebeat.yml文件 - type: log //开启监视,不开不采集 enable: true paths: # 采集日志的路径这里是容器内的path - /var/english.log #keys_under_root... 阅读详情

这是 EKF 的部分,抛去了 Logstash。

前言

有些时候,我们已经将日志存储成了 json 的格式,而且不需要经过 Logstash 了,我们可以直接将日志写入 Elasticsearch 中。

代码仓库

talk-lucky/elkf-study

识别 json

FileBeat 可以解析 json 格式的日志,并将其传递给 Elasticsearch。 比如:

filebeat.inputs:
  - type: log
    enabled: true
    fields:
      source: nginx_access_log
    json.keys_under_root: true
    json.overwrite_keys: true
    paths:
      - /var/log/nginx/access.log

keys_under_root

keys_under_root 默认值是 false。

我们查看日志时会是这样子的:

在这里插入图片描述

为了能够让 json 的键提升到第一级,我们设置 keys_under_root: true,就会变成这样:

在这里插入图片描述

overwrite_keys

字面意思,如果 json 中存在的字段和 FileBeat 默认添加的字段(type, source, offset 等)冲突了,那么 json 中的属性会覆盖原有的。

最后

官方提供了很多的能力,我们可以根据不同的业务场景来做不同的事情。

【ELKF】搭建部署V1版 复盘Logstash之grok格式化日志安装Logstash插件问题Mysql的一个web-slow.log日志是多行,且有多个message字段,解决处理开启多行合并一行问题Logstash还有两个message字段使用grok插件来处理日志为JSON格式# 日志案例:},},",},"log" => {},},"ecs" => {},], 阅读详情

相关推荐

Python金融数据获取工具库之baostock使用详解

在金融数据分析和量化交易中,获取准确及时的市场数据是非常重要的。baostock是一个专门为中国股市数据提供支持的 Python 库,它提供了免费的股票数据接口,用户可以方便地获取股票、指数、基金等各种金融数据。本文将详细介绍baostock库,包括其安装方法、主要特性、基本和高级功能,以及实际应用场景,帮助全面了解并掌握该库的使用。

Rocky006的博客 5345

filebeat解析日志时对于json格式的处理

最近在用filebeat想对收集到的日志进行这样的解析:如果为json的话,就将json对象中的每个子字段解析成顶级结构下的一个字段,但是发现,解析后,保存日志完整内容的message字段(也即完整的json串)消失了,最终找到如下解决方法: 用processors中的decode_json_fields处理器进行处理,它类似logstash中的filter,具体格式如下: processo...

metheir的博客 2万+

ollama接入图像识别大模型

ollama接入图像识别大模型

qq_36437991的博客 2075

Filebeat输出json格式的日志并指定message字段的值

目录 1.开启json格式所需的字段概述 2.配置示例 3.如果问题没有解决可点击官网 1.开启json格式所需的字段概述 filebeat配置input要有以下字段 json.keys_under_root: true json.overwrite_keys: true # 默认情况下,解码后的 JSON 位于输出文档中的“json”键下。如果启用此设置,则键将在输出文档中的顶层复制。默认值为 false # 如果启用了此设置,则解码的 JSON 对象中的值将覆盖 Filebeat 在发

kali_yao的博客 9123

Codex 100个真实案例 - 用AI批量清洗Excel脏数据(10万行3分钟搞定)

每个做数据分析的人都被"脏数据"折磨过——空值、重复行、日期格式五花八门、手机号多一位少一位……手动清洗几千行就已经让人崩溃,更别提10万行了。本文将展示如何用 Codex 生成一套完整的 Python pandas 数据清洗工具,从读取Excel/CSV、识别脏数据、自动清洗、生成清洗报告,到可视化对比清洗前后的数据质量,全程自然语言驱动,10万行数据3分钟搞定!

yueyeguzhuo的专栏 88

解答网友疑问:聊聊 SAP MRP 中追溯需求的技术实现

笔者到 SE37 里一查,果然有这个 Function Module,并且在里面设置断点之后,执行事务码 MD09 之后,设置在该 Function Module 内的断点也触发了,看来 ChatGPT 比较靠谱。因为红色区域的显示,是通过用户在 MD09 的 ALV 界面上双击触发的,因此我们直奔用户输入模块,PROCESS AFTER INPUT,在 check_fcode 的实现体内设置断点。通过这种追溯,企业可以了解需求和供应之间的关系,从而优化生产和采购计划,减少库存积压,提升供应链效率。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1027

使用Filebeat采集json日志未能成功解析的问题以及其他踩过的坑

使用Filebeat采集JSON格式日志入库到Elasticsearch中,Mark一下第一次配置时踩过的坑。 第1坑:每行日志被整个入到了ES索引中的一个message字段,而不是按照json解析后的字段入库 解决方案:这个问题的原因是因为json日志中只要有filebeat无法解析的格式,就会把整条记录当做一个字符串处理,入库到一个message字段,我是日志中有Windows...

yk20091201的专栏 1万+

从原理到落地:Java+TensorRT打造YOLO模型GPU极致推理方案

Java+TensorRT的YOLO模型GPU加速方案,核心是通过JNI桥接实现Java与TensorRT的高效交互,结合TensorRT的底层优化能力,最大化GPU算力。该方案既保留了Java后端的工程化优势(如易维护、生态完善),又解决了AI模型推理的性能瓶颈,可落地于实时视频分析、智能监控、工业质检等场景。基于TensorRT Dynamic Shape实现多尺寸输入的自适应优化;结合Java的协程(Virtual Thread)提升异步推理的并发效率;

2601_94871597的博客 766

filebeat 解析json日志

filebeat配置 input_type: log paths: /var/log/nginx/nginx.log fields: host.name: 192.159.60.71 fields_under_root: true service: nginx tags: test processors: decode_json_fields: fields: [‘message’] overwrite_keys: true nginx配置 log_format log_json '{“@time

fyttttttt的博客 1553

目标检测YOLO实战应用案例100讲-跨模态、多级别融合的RGB-D显著目标检测方法研究(续)

在第二章介绍了本研究的跨模态特征融合方法,第二章对于多级别特征的融合, 使用的是与基线模型baseline相同的方法:相邻级别的特征中,高级特征进行上采 样到与低级特征相同的尺度,再将高级特征通过降维得到与低级特征相同的通道数 量,最后对二者进行特征叠加,如此自顶向下的进行多级别的特征融合。本章主要 介绍本研究在特征层面的另一发现,并基于此发现引出的本文的第二个创新点:多 级别特征的融合方法。另外,在网络最深层,本文设计了一个新的模块来获取大的 感受野,对于大尺度目标能够增加更多语义信息,提升检测效果。 骨

qq_36130719的博客 467

基于Simulink的自适应反步法(Adaptive Backstepping)控制​

本文针对非线性系统控制中未知参数和强非线性耦合的挑战,提出基于Simulink的自适应反步法解决方案。通过融合参数在线估计与反步递归设计,该方法显著提升了永磁同步电机(PMSM)速度控制的鲁棒性,使跟踪误差从20%降至3%,参数估计收敛时间小于0.5秒。文章详细阐述了从算法推导到Simulink实现的完整流程,包括系统架构设计、核心算法推导(以PMSM为例)、模块化建模方法、参数优化策略以及工程部署建议。提供的自适应控制器MATLAB代码和关键参数表可直接应用于实际工程,为电机驱动、机械臂等非线性系统控制提

xiaoheshang_123的博客 101

ELKF日志学习(一)前言

背景 随着业务的不断发展,公司也越来越注重产品的质量和其稳定性,主张快速发现问题,快速解决问题。 日志分析也就进入了我们必做的环节之一。 由于公司目前都是自建的服务,现有的服务是 EKF 的形式,也就基于这个学习了一番。 在经过一番了解后,对日志系统有了一定的了解,便以文章记录所学。 代码仓库 talk-lucky/elkf-study 什么是ELKF ELKF 是 Elasticsearch 、 Logstash 、 Kibana 、 Filebeat 的简称。 下面是对于这些软件作用的简述: 名

IMJCW的博客 582

【深度学习驱动流体力学】Python流体力学Ansys Fluent

PyFluent 是一个将 Python 编程语言与 Ansys Fluent 流体动力学 (CFD) 仿真软件集成的工具。它允许用户通过 Python 脚本来控制和自动化 Fluent 中的仿真任务,实现从预处理、求解到后处理的全流程控制。PyFluent 结合了 Python 的灵活性和 Fluent 的强大功能,提供了一种高效且灵活的 CFD 仿真方法。PyFluent 是一个强大而灵活的工具,使用户能够通过 Python 脚本全面利用 Ansys Fluent 的功能。

源代码杀手的博客 3123

ELKF日志学习(三)EKF平台搭建 Docker单机

本文和 《ELKF日志学习(二)ELKF平台搭建 Docker单机》 的区别如下: 去除了 Logstash 模块。 Filebeat 直接写入 Elasticsearch。 熟悉者可以直接进入相应目录安装环境。 前言 本文是基于 hub.docker.com 站点提供的 Docker 容器进行搭建的,且是 单机 ,仅用于学习。 代码仓库 talk-lucky/elkf-study EKF目录 说明 为了能够达到更好的学习效果,这里将 Elasticsearch 设置成了无需密码的状态。 同时,El.

IMJCW的博客 462

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ELKF日志学习(十)Logstash解析日志成json

前言 之前大致说了一下 Logstash 的能力。 关于输入输出并不多做介绍了,这里主要讲解一下日志解析部分。 代码仓库 talk-lucky/elkf-study Grok 原理很简单,就是 正则。 这里有个非常实用的网站 Grok Debugger,可以帮助我们验证调试解日志的正则。(可能需要自备梯子) 官方有一部分预定义 grok 的表达式,可以参考,我们也可以编写一些预定义的表达式供后续使用。 Kibana 也提供了相应的工具,只不过没那么好用罢了。 示例 比如,有这么一段日志(nginx/acce

IMJCW的博客 1084

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ELKF日志学习(八)Filebeat写入Elasticsearch

前言 上节将日志存储为 json 格式了,并通过 FileBeat 解析了 json 格式。 那我们可以直接将 json 日志写入 Elasticsearch 中了。 写入 Elasticsearch 官方文档:传送门 直接写入 为了方便,这里设置了 Elasticsearch 是免密的。 output.elasticsearch: hosts: ["elasticsearch:9200"] 默认的 index 是 filebeat-* 格式的。 我们可以自定义 index。 output.elast

IMJCW的博客 766

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

ELK收集tomcat日志_docker elkf tomcat收集日志

但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

2401_84247505的博客 1015

ELK收集tomcat日志_docker elkf tomcat收集日志(1)

转载来源 :ELK收集tomcat日志 :https://www.jianshu.com/p/9f4ba87e4e15。

2401_84790808的博客 313

ELKF日志学习(九)Logstash基础介绍

前言 Logstash 是数据收集引擎,可以对数据进行过滤、分析、丰富、统一格式等操作,存储到用户指定的位置,包含但不限于文件、 elasticsearch 。 配置 Logstash 的配置分为 3 部分,输入、过滤器 和 输出。 input { # 这里填写输入部分 } filter { # 这里填写过滤、解析部分 } output { # 这里填写解析部分 } 输入 官方文档传送门 相对于 FileBeat,Logstash 的输入类型丰富很多。 支持 FileBeat、

IMJCW的博客 219

ELK收集tomcat日志_docker elkf tomcat收集日志,资深软件测试开发带你入门Framework

不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!转载来源 :ELK收集tomcat日志 :https://www.jianshu.com/p/9f4ba87e4e15。[root@db01 ~]# vim /etc/tomcat/server.xml ##编辑配置文件。##找到139行,将`pattern=“%h %l %u %t “%r” %s %b” />删除。注意:需要提前安装好java环境。

2401_84266125的博客 599

ELFK自定义安装,并收集nginx日志-浅入浅出

ELFK自定义安装,并收集nginx日志-浅入浅出参考文档概述部署架构图大致如下Logstash和filebeat是什么关系服务端环境JDKElastsearch编辑配置启动Elasticsearch启动报错再次启动Elasticsearch访问ElasticsearchKibana下载指南编辑配置启动Kibana访问KibanaLogstash编辑配置启动Logstash客户端安装Filebea...

大锅霍皮久的博客 2936

ELK收集tomcat日志

转载来源 :ELK收集tomcat日志 :https://www.jianshu.com/p/9f4ba87e4e15 1.安装tomcat 注意:需要提前安装好java环境 [root@db01 ~]# yum install -y tomcat tomcat-webapps tomcat-admin-webapps tomcat-docs-webapp tomcat-javadoc 2.修改tomcat日志为json格式 [root@db01 ~]# vim /etc/tomcat/server.x

qq_40907977的博客 987

ELK / ELFK日志审计系统(一)ELFK介绍

ELFK指的是由四个核心开源软件组成的日志管理和分析解决方案的统称。它是最流行的集中式日志处理架构之一。: 一个分布式、RESTful 风格的搜索和分析引擎。它负责存储、索引和快速检索来自任何来源的大规模数据。它是整个架构的“数据库”和搜索引擎。: 一个服务器端的数据处理管道,可以同时从多个来源采集数据,转换数据,然后将数据发送到您喜欢的“存储库”(如 Elasticsearch)。它是数据的收集、过滤和转发工具。: 一个轻量型的日志采集器。

IT运维记录 951

efk入门搭建

ELFK各功能 Elasticsearch: 数据库,存储数据 java语言 logstash: 日志收集,过滤数据 java语言 kibana: 分析,过滤,展示 java语言 filebeat: 收集日志,传输到ES或logstash go语言 Elasticsearch入门: 简单介绍: 开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful 风格接口,多数据源,自动搜索负载等。 官方网站: https://www

weixin_47445145的博客 479

filebeat安装配置-简单版

filebeat安装配置

suject的专栏 857

ELK收集docker中的日志

容器中的日志在哪? 上图可以看到docker容器中组件的位置以及组件对应的日志位置。其中e0d336cc一串的字符串就是容器id。 filebeat配置文件: filebeat.inputs: - type: docker containers.ids: - "e0d336cc9f7b1403ede7ac1008003558b270ed3ee7ce946ba4b03b9e3cf3c260" tags: ["access"] output.elasticsearch: ..

wyl9527的博客 1696
上一篇: ELKF日志学习(六)FileBeat过滤日志
下一篇: ELKF日志学习(八)Filebeat写入Elasticsearch
IMJCW
博客等级 码龄10年 13粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值