ELK 实时日志平台搭建并在 Spring Boot 和 Nginx 项目中使用

实战:ELK环境部署并采集springboot项目日志 相信作为一个资深的搬砖人,在处理问题的时候免不了查看应用系统日志,且可以根据这个日志日志精准、快速的解决实际的问题。一般情况下我们的系统日志都放置在包的运行目录下面,非常不便于查看和分类。那么。今天我们就引入ELK的日志处理架构来解决它。 阅读详情
ELK 实时日志平台搭建并在 Spring Boot 和 Nginx 项目中使用
目录:
  1. ELK简介
  2. ELK的工作原理
  3. Elasticsearch
  4. Logstash
  5. Kibana
  6. Spring Boot 中使用 ELK
  7. Nginx 中使用 ELK
一. ELK简介

ELK 是一个开源的实时日志分析平台,它主要由 Elasticsearch、Logstash 和 Kiabana 三部分组成。

  • Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等

  • Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)

  • Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

二.ELK 的工作原理图

原理图

三. Elasticsearch
3.1 Elasticsearch 简介

Elasticsearch (ES)是一个分布式的 Restful 风格的搜索和数据分析引擎,它具有以下特点:

  • 查询:允许执行和合并多种类型的搜索 — 结构化、非结构化、地理位置、度量指标 — 搜索方式随心而变。
  • 分析:Elasticsearch 聚合让您能够从大处着眼,探索数据的趋势和模式。
  • 速度:很快,可以做到亿万级的数据,毫秒级返回。
  • 可扩展性:可以在笔记本电脑上运行,也可以在承载了 PB 级数据的成百上千台服务器上运行。
  • 弹性:运行在一个分布式的环境中,从设计之初就考虑到了这一点。
  • 灵活性:具备多个案例场景。支持数字、文本、地理位置、结构化、非结构化,所有的数据类型都欢迎。
3.2 安装
3.2.1 安装目录:
mkdir -p server/{application, tools}
cd server/tools
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz

下载安装之后进行解压

tar -avxf elasticsearch-7.3.0-linux-x86_64.tar.gz
#进入解压后的文件
cd elasticsearch-7.3.0-linux-x86_64
#可根据自身服务器的配置进行修改jvm的参数
vim /conf/jvm.options

配置修改成功之后,就可以进行启动

cd elasticsearch-7.3.0-linux-x86_64
#!!!!:需要注意的是 elasticSearch 是不允许使用roo用户进启动的, 因此需要创建一个用户
useradd elk
#切换至此目录 分配权限 (注意:如果没有分配权限,在启动时,容易报错)
chown -R elk:elk elasticsearch-7.3.0-linux-x86_64
#一切成功之后进行启动
./bin/elasticsearch
#终端输入
[root@ElasticSearch-Server ~]# curl 127.0.0.1:9200
{
  "name" : "ElasticSearch-Server",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "E0ci937JSQ6-SekhOVvJ-g",
  "version" : {
    "number" : "7.8.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
    "build_date" : "2020-06-14T19:35:50.234439Z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
表示安装成功

常见错误

max virtual memory areas vm.max_map_count [65530] is too low
解决方案
max file descriptors [4096] for elasticsearch process is too low
解决方案

四:Logstash
4.1 Logstash 简介

官方介绍:Logstash is an open source data collection engine with real-time pipelining capabilities。简单来说logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景。

4.2 Logstash的安装
#进入到工具目录
cd /server/tools
#下载链接
wget  https://artifacts.elastic.co/downloads/logstash/logstash-7.8.0.tar.gz
#下载成功之后进行解压
tar -avxf logstash-7.8.0.tar.gz
4.3 解压成功之后进行配置
input {
    kafka {
        bootstrap_servers => "10.211.55.13:9092"
        topics => ["logs"]
        consumer_threads => 5  
        decorate_events => false 
        codec => "plain"
        }
    }
    
output {
        elasticsearch {
            action => "index"
            hosts => ["127.0.0.1:9200"]
            index => "logs-%{+YYYY.MM.dd}"
            document_type => "logs"
        }
}

详细参数讲解请见官网: 官网地址

4.4 配置成功之后进行启动
#首先进行配置验证
./bin/logstash -f conf/logs.conf -t
#验证成功之后进行启动
./bin/logstash -f conf/logs.conf

在这里插入图片描述

4.5 验证

如显示上图, 则表示安装成功.

!!! 注意: 启动顺序

  1. elasticSearch, kibana
  2. kafaka, zookeeper
  3. logstash
五. Kibana
5.1 Kibana简介

Kibana 是一款开源的数据分析和可视化平台,它是Elastic Stack 成员之一,设计用于和Elasticsearch 协作。 您可以使用Kibana 对Elasticsearch 索引中的数据进行搜索、查看、交互操作。 您可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现。

5.2 Kibana 安装
#进入到工具目录
cd /server/tools
#下载链接
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-linux-x86_64.tar.gz
#下载成功之后 先解压再 进行于 ES 的配置
tar -avxf kibana-7.8.0-linux-x86_64.tar.gz
#进行授权 (注:kibana于Elasticsearch一样同样不允许 root用户启动)
chown -R elk:elk kibana-7.8.0-linux-x86_64
#进行es配置
cd kibana-7.8.0-linux-x86_64/conf
vim kibana.yml

配置修改 kibana.yml

#常见的配置
server.port: 5601 #端口号
server.host: "0.0.0.0" #允许访问主机范围
elasticsearch.hosts: ["http://127.0.0.1:9200"] #es的地址和端口
elasticsearch.pingTimeout: 1500 #于es的ping超时时间
elasticsearch.requestTimeout: 30000 #q请求超时时间
elasticsearch.shardTimeout: 30000#等待分片响应时间,单位微秒,0即禁用
elasticsearch.startupTimeout: 5000#启动超时时间

比较全的讲解

server.port:
	默认值: 5601 Kibana 由后端服务器提供服务,该配置指定使用的端口号。
	
server.host:
	默认值: "localhost" 指定后端服务器的主机地址。
	
server.basePath:
	如果启用了代理,指定 Kibana 的路径,该配置项只影响 Kibana 生成的 URLs,转发请求到 Kibana 时代理会移除基础路径值,该配置项不能以斜杠 (/)结尾。
	
server.maxPayloadBytes:
	默认值: 1048576 服务器请求的最大负载,单位字节。
	
server.name:
	默认值: "您的主机名" Kibana 实例对外展示的名称。
	
server.defaultRoute:
	默认值: "/app/kibana" Kibana 的默认路径,该配置项可改变 Kibana 的登录页面。
	
elasticsearch.url:
	默认值: "http://localhost:9200" 用来处理所有查询的 Elasticsearch 实例的 URL 。
	
elasticsearch.preserveHost:
	默认值: true 该设置项的值为 true 时,Kibana 使用 server.host 设定的主机名,该设置项的值为 false 时,Kibana 使用主机的主机名来连接 Kibana 实例。
	
kibana.index:
	默认值: ".kibana" Kibana 使用 Elasticsearch 中的索引来存储保存的检索,可视化控件以及仪表板。如果没有索引,Kibana 会创建一个新的索引。
	
kibana.defaultAppId:
	默认值: "discover" 默认加载的应用。
	
tilemap.url:
	Kibana 用来在 tile 地图可视化组件中展示地图服务的 URL。默认时,Kibana 从外部的元数据服务读取 url,用户也可以覆盖该参数,使用自己的 tile 地图服务。例如:"https://tiles.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana"
tilemap.options.minZoom:
默认值: 1 最小缩放级别。

tilemap.options.maxZoom:
	默认值: 10 最大缩放级别。
	
tilemap.options.attribution:
	默认值: "© [Elastic Tile Service](https://www.elastic.co/elastic-tile-service)" 地图属性字符串。
	
tilemap.options.subdomains:
	服务使用的二级域名列表,用 {s} 指定二级域名的 URL 地址。
	
elasticsearch.username: 和 elasticsearch.password:
	Elasticsearch 设置了基本的权限认证,该配置项提供了用户名和密码,用于 Kibana 启动时维护索引。Kibana 用户仍需要 Elasticsearch 由 Kibana 服务端代理的认证。
	
server.ssl.enabled
	默认值: "false" 对到浏览器端的请求启用 SSL,设为 true 时, 
	server.ssl.certificate 和 server.ssl.key 也要设置。

server.ssl.certificate: 和 server.ssl.key:
	PEM 格式 SSL 证书和 SSL 密钥文件的路径。

server.ssl.keyPassphrase
	解密私钥的口令,该设置项可选,因为密钥可能没有加密。

server.ssl.certificateAuthorities
	可信任 PEM 编码的证书文件路径列表。
server.ssl.supportedProtocols
	默认值: TLSv1、TLSv1.1、TLSv1.2 版本支持的协议,有效的协议类型: TLSv1 、 TLSv1.1 、 TLSv1.2 。

server.ssl.cipherSuites
	默认值: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES256-GCM-SHA384, DHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-AES128-SHA256, DHE-RSA-AES128-SHA256, ECDHE-RSA-AES256-SHA384, DHE-RSA-AES256-SHA384, ECDHE-RSA-AES256-SHA256, DHE-RSA-AES256-SHA256, HIGH,!aNULL, !eNULL, !EXPORT, !DES, !RC4, !MD5, !PSK, !SRP, !CAMELLIA. 具体格式和有效参数可通过[OpenSSL cipher list format documentation](https://www.openssl.org/docs/man1.0.2/apps/ciphers.html#CIPHER-LIST-FORMAT) 获得。

elasticsearch.ssl.certificate: 和 elasticsearch.ssl.key:
	可选配置项,提供 PEM格式 SSL 证书和密钥文件的路径。这些文件确保 Elasticsearch 后端使用同样的密钥文件。

elasticsearch.ssl.keyPassphrase
	解密私钥的口令,该设置项可选,因为密钥可能没有加密。

elasticsearch.ssl.certificateAuthorities:
	指定用于 Elasticsearch 实例的 PEM 证书文件路径。

elasticsearch.ssl.verificationMode:
	默认值: full 控制证书的认证,可用的值有 none 、 certificate 、 full 。 full 执行主机名验证,certificate 不执行主机名验证。

elasticsearch.pingTimeout:
	默认值: elasticsearch.requestTimeout setting 的值,等待 Elasticsearch 的响应时间。

elasticsearch.requestTimeout:
	默认值: 30000 等待后端或 Elasticsearch 的响应时间,单位微秒,该值必须为正整数。

elasticsearch.requestHeadersWhitelist:
	默认值: [ 'authorization' ] Kibana 客户端发送到 Elasticsearch 头体,发送 no 头体,设置该值为[]。

elasticsearch.customHeaders:
	默认值: {} 发往 Elasticsearch的头体和值, 不管elasticsearch.requestHeadersWhitelist 如何配置,任何自定义的头体不会被客户端头体覆盖。

elasticsearch.shardTimeout:
	默认值: 0 Elasticsearch 等待分片响应时间,单位微秒,0即禁用。

elasticsearch.startupTimeout:
	默认值: 5000 Kibana 启动时等待 Elasticsearch 的时间,单位微秒。
pid.file:
指定 Kibana 的进程 ID 文件的路径。

logging.dest:
	默认值: stdout 指定 Kibana 日志输出的文件。

logging.silent:
	默认值: false 该值设为 true 时,禁止所有日志输出。

logging.quiet:
	默认值: false 该值设为 true 时,禁止除错误信息除外的所有日志输出。

logging.verbose
	默认值: false 该值设为 true 时,记下所有事件包括系统使用信息和所有请求的日志。

ops.interval
	默认值: 5000 设置系统和进程取样间隔,单位微妙,最小值100。

status.allowAnonymous
	默认值: false 如果启用了权限,该项设置为 true 即允许所有非授权用户访问 Kibana 服务端 API 和状态页面。

cpu.cgroup.path.override
	如果挂载点跟 /proc/self/cgroup 不一致,覆盖 cgroup cpu 路径。

cpuacct.cgroup.path.override
	如果挂载点跟 /proc/self/cgroup 不一致,覆盖 cgroup cpuacct 路径。

console.enabled
	默认值: true 设为 false 来禁用控制台,切换该值后服务端下次启动时会重新生成资源文件,因此会导致页面服务有点延迟。

elasticsearch.tribe.url:
	Elasticsearch tribe 实例的 URL,用于所有查询。

elasticsearch.tribe.username: 和 elasticsearch.tribe.password:
	Elasticsearch 设置了基本的权限认证,该配置项提供了用户名和密码,用于 Kibana 启动时维护索引。Kibana 用户仍需要 Elasticsearch 由 Kibana 服务端代理的认证。
elasticsearch.tribe.ssl.certificate: 和 elasticsearch.tribe.ssl.key:
可选配置项,提供 PEM 格式 SSL 证书和密钥文件的路径。这些文件确保 Elasticsearch 后端使用同样的密钥文件。

elasticsearch.tribe.ssl.keyPassphrase
	解密私钥的口令,该设置项可选,因为密钥可能没有加密。

elasticsearch.tribe.ssl.certificateAuthorities:
	指定用于 Elasticsearch tribe 实例的 PEM 证书文件路径。

elasticsearch.tribe.ssl.verificationMode:
	默认值: full 控制证书的认证,可用的值有 none 、 certificate 、 full 。 full 执行主机名验证, certificate 不执行主机名验证。

elasticsearch.tribe.pingTimeout:
	默认值: elasticsearch.tribe.requestTimeout setting 的值,等待 Elasticsearch 的响应时间。

elasticsearch.tribe.requestTimeout:
	Default: 30000 等待后端或 Elasticsearch 的响应时间,单位微秒,该值必须为正整数。

elasticsearch.tribe.requestHeadersWhitelist:
	默认值: [ 'authorization' ] Kibana 发往 Elasticsearch 的客户端头体,发送 no 头体,设置该值为[]。

elasticsearch.tribe.customHeaders:
	默认值: {} 发往 Elasticsearch的头体和值,不管 elasticsearch.tribe.requestHeadersWhitelist 如何配置,任何自定义的头体不会被客户端头体覆盖。

配置成功之后进行启动

cd /bin
./kibana

启动成功之后在浏览器中输入: 10.211.55.12:5601
在这里插入图片描述

【大数据】LPG日志采集方案(官网入门案例) LPG日志采集方案(官网入门案例) 阅读详情

相关推荐

绕过Google Play:获取Expo Go安卓APK的实用指南

本文为国内安卓开发者提供了绕过Google Play商店获取Expo Go APK的实用指南。针对无法访问Google Play的痛点,详细介绍了通过官方GitHub Releases、可信第三方网站(如APKMirror)及APK下载器等多种安全获取途径,并重点讲解了APK安装、安全验证(核对签名)及常见连接问题的排查方法,帮助开发者顺利开启React Native开发之旅。

weixin_29006701的博客 577

使用docker部署ELK实战

Elasticsearch是一个基于Lucene库的分布式搜索引擎和数据分析引擎,能够实现实时搜索和分析大规模的数据集,支持文本、数字、地理位置等多种类型的数据检索和分析。Elasticsearch是一个开源的、高度可扩展的平台,能够处理海量的数据,并支持分布式的数据存储和处理。Elasticsearch的主要特点包括:分布式搜索引擎:Elasticsearch能够对海量的数据进行快速的搜索和查询,并支持实时搜索。

qq_30503389的博客 2647

单细胞专题(1) | 单细胞转录组研究样本准备指南(上)

单细胞RNA测序(scRNA-seq)是目前最前沿,能进行大规模实验的转录组研究技术,为理解细胞组成和动态生物学过程提供了很多新的见解。单细胞研究已经为我们理解发育过程,老化和疾病(如癌症)等提供了大量数据。在这里,小编主要就前期的样本准备与保存需注意问题给大家进行讲解,以备大家在不同的研究场景和研究背景下,走好单细胞转录组学研究的第一步。

bioyigene的博客 4227

ELK平台的部署实践

近期做了个日志平台项目,主要基于ELK技术做日志的收集、过滤、存储等,现将相关部署操作及有关脚本做汇总整理,形成部署文档,以便自己更系统掌握,也希望自己的总结能对读者有一定参考意义。

wangchaodee的博客 841

C# 进阶:打造WinForms中的动态交互式UserControl

本文深入探讨了如何在C# WinForms中创建动态交互式UserControl,以提升桌面应用的用户体验和代码复用性。通过剖析UserControl生命周期、事件体系,并结合一个可拖拽缩放的分割面板实战案例,详细讲解了鼠标键盘事件处理、自定义绘制、状态管理以及性能优化等核心技巧,帮助开发者封装复杂交互逻辑,打造专业级自定义控件。

weixin_29279153的博客 460

飞塔防火墙和paloalto防火墙构建ipsec

一、配置fortigate防火墙1.防火墙配置上网功能1.1配置fortigate的wan1接口IP为100.100.100.2/24VLAN交换internal,IP地址为192.168.156.99/24。开启DHCP分配IP地址范围为192.168.156.110-192.168.156.2101.2配置访问互联网的缺省路由1.3配置访问互联网的安全策略2.配置与Paloalto防火墙的IPSECVPN。

weixin_44675999的博客 3737

采集Nginx日志的4种方法分享

接下来配置filebeat在filebeat的安装目录找到filebeat.yml 配置获取日志文件的路径及输出到logstash的配置。不直接输出到ES了。在送到ES在很多情况下你需要采集的web服务器并不是自己能够控制的,不是说你想装filebeat就可以让你装的,这时候就可以要求目标数据源通过 syslog 的方式将日志发出来。通过syslog往日志服务器上发nginx的日志有两种方式,一种就是利用nginx的配置往外发日志,一种就是通过配置linux的rsyslog的配置往外发日志。

hdxx2022的博客 931

Cadence IC 618实战:从与非门到环形振荡器的完整版图设计流程(含DRC/LVS避坑点)

本文详细介绍了使用Cadence IC 618进行从与非门到环形振荡器的完整版图设计流程,包括环境准备、基础设计规范、层次化设计、DRC/LVS验证及后仿真优化。特别提供了实战中的避坑技巧和优化建议,帮助工程师高效完成集成电路设计任务。

weixin_26886855的博客 405

搭建 ELK 实时日志平台并在 Spring Boot 和 Nginx 项目中使用

在排查线上异常的过程中,查询日志总是必不可缺的一部分。现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难。工欲善其事,必先利其器。如果此时有一个统一的实时日志分析平台,那可谓是雪中送碳,必定能够提高我们排查线上问题的效率。本文带您了解一下开源的实时日志分析平台 ELK 的搭建及使用。 ELK 简介 ELK 是一个开源的实时日志分析平台,它主要由 Elasticsea...

小技术君 548

EtherCAT主站SOEM -- 0 -- 该EtherCAT主站SOEM专栏后续安排

SOEM(Simple Open EtherCAT Master)是一个开源的EtherCAT主站库,允许开发者构建自定义的EtherCAT主站应用程序。EtherCAT是一种实时以太网通信协议,广泛应用于工业自动化和机器控制领域。开源性质:SOEM是一个开源项目,这意味着开发者可以自由地查看、修改和分发代码。这使其成为工业自动化领域的一个强大工具,可以根据具体需求进行定制。EtherCAT主站实现:SOEM库提供了一个完整的EtherCAT主站实现,允许主站与多个EtherCAT从站设备进行通信。

常驻客栈的博客--嵌入式EtherCAT 6658

Lammps实现甲烷与水的竞争吸附-循环不同气体分子

Lammps实现甲烷与水的竞争吸附

Rockyoung 5373

ELK 处理 Spring Boot 日志,妙啊!

ELK 是一个开源的实时日志分析平台,它主要由 Elasticsearch、Logstash 和 Kiabana 三部分组成。

程序员高级码农的博客 1111

YOLO26涨点改进 | 全网独家创新、检测头Head改进篇 | AAAI 2026 | 使用StripConvHead改进YOLO26的检测头,处理小目标、遮挡小目标检测有效涨点,助力高效发论文

🔥本文给大家介绍使用StripConv条形卷积改进 YOLO26的检测头,可以显著提高模型在高纵横比物体检测、目标定位和多尺度物体检测方面的表现。StripConv条形卷积能够更有效地捕捉细长物体的特征,提升定位精度,并通过简化卷积核设计减少计算冗余,优化计算效率。此外,该改进增强了 YOLO26对复杂场景和实时任务的适应能力,特别适用于遥感图像目标检测、小目标检测等领域。具体怎么使用请看全文。摘要:随着遥感物体检测的快速发展,检测高纵横比物体仍然是一个挑战性问题。

Ai缝合怪、助力小伙伴高效发论文 267

ELK 处理 Spring Boot 日志

ELK 是一个开源的实时日志分析平台,它主要由 Elasticsearch、Logstash 和 Kiabana 三部分组成。

lingqu+wx bjmsb06 1111

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

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

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ELK 处理 Spring Boot 日志,妙!

显示更多看到如下日志就意味着 Logstash 启动成功。图 3. Logstash 启动成功日志图片在控制台输入 Hello Logstash ,看到如下效果代表 Logstash 安装成功。清单 1. 验证 Logstash 是否启动成功Hello Logstash。

java_dazhuzhu的博客 1494

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ELK 处理 Spring Boot 日志,不错!

ELK 是一个开源的实时日志分析平台,它主要由 Elasticsearch、Logstash 和 Kiabana 三部分组成。

m0_71777195的博客 171

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ELK 管理 Spring Boot 和 Nginx 日志,优秀!

在排查线上异常的过程中,查询日志总是必不可缺的一部分。现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难。工欲善其事,必先利其器。如果此时有一个统一的实时日志分...

JAVA高级架构 312

使用ELK 处理 Spring Boot 日志

在排查线上异常的过程中,查询日志总是必不可缺的一部分。现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难。 工欲善其事,必先利其器。如果此时有一个统一的实时日志分析平台,那可谓是雪中送碳,必定能够提高我们排查线上问题的效率。本文带您了解一下开源的实时日志分析平台 ELK 的搭建及使用。 ELK 简介 ELK 是一个开源的实时日志分析平台,它主要由 Elasticsearch、Logstash 和 Kiabana 三部分组成。 Logstash Logstash 主要用于

Pastxu的小屋 604
上一篇: Kafka - Zookeeper 服务器安装
下一篇: 常用网站推荐 ~ 持续跟新中....
光速之年
博客等级 码龄12年 31粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值