【30天精通Prometheus:一站式监控实战指南】第10天:blackbox_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

news2024/11/18 23:50:04

亲爱的读者们👋

  欢迎加入【30天精通Prometheus】专栏!📚 在这里,我们将探索Prometheus的强大功能,并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。🚀

  Prometheus是云原生和DevOps的核心监控工具,我们将从基础概念开始,逐步涵盖配置、查询、告警和可视化。💪

  在接下来的30天里,我们将解锁Prometheus的实战技巧,通过案例和分享,助你深入理解其工作原理。📆

  目标:30天后,你将熟练掌握Prometheus,为未来的项目挑战做好准备!💯

  这是一段精彩旅程,期待你的加入!🎉


文章目录

  • 一、blackbox_exporter概述📘
  • 二、安装blackbox_exporter💾
    • 2.1 访问blackbox_exporter官方网站 🌐
    • 2.2 选择适合的版本🔍
    • 2.3 下载blackbox_exporter⬇️
    • 2.4 解压安装包📂
    • 2.5 运行blackbox_exporter🚀
  • 三、blackbox_exporter指标和配置详解📖
    • 3.1 blackbox_exporter.service
    • 3.2 blackbox_exporter.yml
      • 3.2.1 http_2xx 、http_post_2xx
      • 3.2.2 tcp_connect、 pop3s_banner
      • 3.2.3 grpc、grpc_plain
      • 3.2.4 ssh_banner、irc_banner
      • 3.2.5 icmp、icmp_ttl5
  • 四、实战演练:生产环境搭建指南🔨
    • 4.1 创建普通用户管理blackbox_exporter👤
    • 4.2 解压blackbox_exporter.tar.gz📦
    • 4.3 将blackbox_exporter集成到Prometheus配置中✂️
    • 4.4 更改blackbox_exporter软件包名称✂️
    • 4.5 编辑blackbox_exporter.service文件📝
    • 4.6 启动blackbox_exporter.service🔌
    • 4.7 查看服务是否正常启动🔍
  • 相关资料下载地址📚

一、blackbox_exporter概述📘

定义
  Blackbox_exporter是一个开源工具,用于监控网络服务的可用性。它并不是Elasticsearch的组成部分,而是一个独立的工具,通常与Prometheus结合使用,用于收集和导出各种网络服务的监测数据。简单来说,它是一个帮助系统管理员了解和监测网络服务健康状况的“黑盒”监控工具。

功能
  支持多种协议:Blackbox_exporter可以对HTTP、HTTPS、TCP、ICMP、DNS以及gRPC等协议进行探测。

  灵活配置:用户可以通过配置文件或命令行参数自定义监控目标、探测频率、超时时间等。

  指标输出:该工具能够将探测结果以Prometheus的指标格式输出,包括响应时间、响应状态码、服务的可达性等,便于Prometheus进行数据采集和存储。

  服务发现:支持Prometheus的服务发现机制,自动发现并监控关联的目标。

  自定义探测器:用户可以根据特定需求编写自定义的探测逻辑。

应用场景
  HTTP/HTTPS监控:用于检测Web服务的URL或API的可用性,确保网站或API接口能够正常响应请求。

  DNS监控:检查域名解析的速度和准确性,帮助诊断可能的DNS问题。

  TCP端口监控:通过建立TCP连接来确认特定端口的开放状态,验证服务的可达性。

  ICMP监控:使用类似于ping的命令来检测远程主机是否在线,即主机存活检测。

  gRPC服务监控:针对使用gRPC协议的服务进行健康状态检查。

二、安装blackbox_exporter💾

注意事项和常见问题
  1.环境配置:确保服务器或开发环境符合blackbox_exporter的运行要求。关闭或配置好防火墙,以免阻碍blackbox_exporter的网络探测功能。校对好系统时间,确保监控数据的准确性。

  2.依赖安装:blackbox_exporter是独立运行的,通常不需要额外的依赖安装。但是,如果在特定环境下运行(如使用Docker),需要确保相关环境已正确配置。

  3.下载与安装:从官方GitHub仓库下载最新稳定版本的blackbox_exporter。验证下载文件的完整性,以确保没有被篡改。

  4.配置:根据需要监控的服务类型(如HTTP、HTTPS、TCP、ICMP等),正确配置blackbox.yml文件。配置Prometheus以收集blackbox_exporter的指标。

2.1 访问blackbox_exporter官方网站 🌐

  • 打开浏览器,访问blackbox_exporter的官方下载页面,通常位于Prometheus官方网站的子目录下:https://prometheus.io/download/#blackbox_exporter

2.2 选择适合的版本🔍

  • 在下载页面,你将看到不同操作系统的blackbox_exporter二进制包。根据你的操作系统选择适合的版本。例如,如果你使用的是Linux 64位系统,就选择blackbox_exporter-x.x.x.linux-amd64.tar.gz(其中x.x.x是版本号)。

2.3 下载blackbox_exporter⬇️

  • 点击所选版本的下载链接,将blackbox_exporter的二进制包下载到你的本地计算机。

2.4 解压安装包📂

  • 将下载的blackbox_exporter压缩包解压到你想要安装的目录。你可以使用命令行工具(如tar)来完成这个步骤。解压后,你将看到一个名为blackbox_exporter-x.x.x.linux-amd64的目录,其中包含blackbox_exporter的二进制文件和其他相关文件。
tar -xzf blackbox_exporter-x.x.x.linux-amd64.tar.gz

2.5 运行blackbox_exporter🚀

  • 进入解压后的目录,并运行blackbox_exporter服务器。在Linux下,你可以使用如下命令。如果一切正常,你应该能在终端看到blackbox_exporter的启动日志。
cd blackbox_exporter-x.x.x.linux-amd64

./blackbox_exporter --config.file=/usr/local/blackbox_exporter-0.24.0/blackbox.yml --web.listen-address 0.0.0.0:9115

三、blackbox_exporter指标和配置详解📖

  • 黑色:作为默认文本颜色。
  • 绿色:表示常规配置项
  • 橙色:表示具有互斥参数的配置项 / 建议开启(根据自己的场景确定需求)
  • 蓝色:不重要的配置项 / 建议不开启
  • 红色:表示关键信息和警告 / 最好开启

注意:

  • 1.相关参数配置建议仅供参考,具体要以自己生产的实际需要自行配置。
  • 2.以下配置参数介绍是基于blackbox_exporter-0.24.0版本说明的,其它版本会有不同。

3.1 blackbox_exporter.service

  • - -config.file=“blackbox.yml”
      指定 Blackbox Exporter 的配置文件路径。blackbox.yml 文件中定义了如何对网络服务进行探测,包括探测的目标、模块、超时时间等。
  • - -[no-]config.check
      用于检查配置文件是否有语法错误。如果设置为- -config.check,则 Blackbox Exporter 会在启动时检查配置文件的正确性,如果配置有误,它将不会启动。no-config.check 则会跳过这个检查。
  • - -log.prober=“none”
      设置日志中是否记录 prober(探测器)的详细日志。设置为 “none” 表示不记录这些日志,有助于减少日志量。如果需要调试,可以设置为其他值以获取更详细的日志信息。
  • - -history.limit=100
      设置历史记录的数量限制。Blackbox Exporter 会保存最近的探测结果,这个参数用于限制保存的历史记录数量。在这个例子中,最多保存 100 条历史记录。
  • - -web.external-url=<url>
      设置 Blackbox Exporter 的外部 URL。这通常用于当 Blackbox Exporter 位于反向代理后面时,确保生成的链接是正确的。如果留空,则使用默认的 URL。
  • - -web.route-prefix=<path>
      设置 Web 服务的路由前缀。如果 Blackbox Exporter 是作为一个更大应用的一部分,并且需要通过特定的路由来访问,可以使用这个参数。例如,设置为 /blackbox/ 会使得所有的 API 和指标都通过 /blackbox/ 路由来访问。
  • - -[no-]web.systemd-socket
      用于控制是否使用 systemd socket 激活。如果使用 systemd socket 激活,Blackbox Exporter 将不会绑定到任何特定的端口,而是由 systemd 在需要时传递连接。这可以提高安全性,因为只有 systemd 可以访问该服务。设置为 no-web.systemd-socket 则会禁用这个功能。
  • - -web.listen-address=:9115
      设置 Blackbox Exporter 监听的地址和端口。在这个例子中,它监听所有地址(: 表示所有地址)的 9115 端口。如果需要更改端口或限制监听的地址,可以修改这个参数。
  • - -web.config.file=“”
      允许你指定一个包含 Web 服务相关配置的文件。在这个例子中,它是空的,意味着使用默认配置。如果需要自定义 Web 服务的某些方面(如 TLS、身份验证等),可以在这个文件中进行配置。

3.2 blackbox_exporter.yml

3.2.1 http_2xx 、http_post_2xx

  http_2xx:
    prober: http	#  指定使用HTTP探测器
    http:
      preferred_ip_protocol: "ip4"	# 使用IPv4协议进行探测
      
  http_post_2xx:
    prober: http	# 使用HTTP探测器
    http:
      method: POST		# 设置HTTP请求方法为POST
  • http_2xx
    • prober: http
        指定该模块使用的探测器类型为http。这意味着该模块将执行HTTP探测。
    • http
        该部分包含HTTP探测器的具体配置。
      • preferred_ip_protocol
          指定了在进行网络请求时优先使用的IP协议版本。在这个例子中,设置为了"ip4",意味着探测器将优先使用IPv4地址进行探测。如果服务器同时支持IPv4和IPv6,那么设置这个参数可以确保使用特定的IP版本来进行测试。

  • http_post_2xx
    • prober: http
        指定该模块使用的探测器类型为http。这意味着该模块将执行HTTP探测。
    • http
        该部分包含HTTP探测器的具体配置。
      • method: POST
          设置HTTP请求的方法为POST。默认情况下,HTTP探测器可能使用GET方法,但在这个模块中,明确指定使用POST方法。可以用于测试那些需要POST请求才能正常工作的HTTP接口。

3.2.2 tcp_connect、 pop3s_banner

  tcp_connect:
    prober: tcp		# 使用TCP连接探测器,仅检查TCP连接是否可以建立
    
  pop3s_banner:
    prober: tcp		# 使用TCP探测器
    tcp:
      query_response:	# 定义查询和响应的期望序列
      - expect: "^+OK"	# 期望收到的响应以+OK开头
      tls: true	# 启用TLS加密
      tls_config:
        insecure_skip_verify: false	# 不跳过TLS证书的验证
  • tcp_connect
    • prober: tcp
        指定该模块使用的探测器类型为tcp。将尝试建立TCP连接到目标地址和端口,以检查连接是否可以成功建立。这个模块不发送或接收任何特定的数据,只是简单地测试TCP连接性。

  • pop3s_banner
    • tcp
        该部分包含TCP探测器的具体配置。
      • query_response
          定义一个查询和响应的期望序列,用于与目标服务器进行交互。
      • expect: “^+OK”
          指定探测器期望从服务器接收到的响应应该以+OK开头。通常用于POP3协议中,服务器在成功连接后会发送一个以+OK开头的欢迎消息。
      • tls: true
          探测器在建立TCP连接后启动TLS加密。
      • insecure_skip_verify: false
          是否在TLS握手过程中验证服务器的SSL证书。设置为false意味着探测器将验证服务器的证书是否有效和受信任。如果设置为true,则会跳过证书验证。

3.2.3 grpc、grpc_plain

  grpc:
    prober: grpc	# 使用gRPC探测器
    grpc:
      tls: true	# 启用TLS加密
      preferred_ip_protocol: "ip4"	# 使用IPv4协议
      
  grpc_plain:
    prober: grpc	# 使用gRPC探测器
    grpc:
      tls: false	# 不使用TLS加密
      service: "service1"	# 要探测的gRPC服务名称
  • grpc
    • prober: grpc
        指定该模块使用的探测器类型为grpc。意味该模块将尝试通过gRPC协议与目标服务器进行通信。
    • grpc
        包含gRPC探测器的具体配置。
      • tls: true
          指示探测器在建立gRPC连接时使用TLS加密。
      • preferred_ip_protocol: “ip4”
          指定探测器在尝试连接目标服务器时优先使用的IP协议版本。在这个例子中,它被设置为"ip4",表示探测器将优先使用IPv4地址进行连接。对于那些仅支持或偏好IPv4的网络环境特别有用。

  • grpc_plain
    • prober: grpc
        指定该模块使用的探测器类型为grpc。意味该模块将尝试通过gRPC协议与目标服务器进行通信。
    • grpc
        包含gRPC探测器的具体配置。
    • tls: false
        与grpc模块相反,这个参数指示探测器在建立gRPC连接时不使用TLS加密。
    • service: “service1”
        指定探测器要连接的gRPC服务的名称。在gRPC中,服务名称通常用于标识和路由到正确的服务处理程序。

3.2.4 ssh_banner、irc_banner

  ssh_banner:
    prober: tcp	# 使用TCP探测器
    tcp:
      query_response:
      - expect: "^SSH-2.0-"	# 期望收到的响应以SSH-2.0-开头
      - send: "SSH-2.0-blackbox-ssh-check"	# 发送特定的SSH客户端标识
      - 
  irc_banner:
    prober: tcp	# 使用TCP探测器
    tcp:
      query_response:	# 定义了与IRC服务器的交互序列,包括发送NICK、USER等命令,并期望特定的响应
      - send: "NICK prober"
      - send: "USER prober prober prober :prober"
      - expect: "PING :([^ ]+)"
        send: "PONG ${1}"
      - expect: "^:[^ ]+ 001"
  • ssh_banner
    • prober: tcp
        指定使用TCP探测器。
    • tcp
        TCP探测器的配置部分。
      • query_response
          定义了一个查询和响应的序列。
      • expect: “^SSH-2.0-”
          指定探测器期望从服务器接收到的响应应该以SSH-2.0-开头。这是SSH服务器在接收到客户端连接时通常会发送的版本标识。
      • send: “SSH-2.0-blackbox-ssh-check”
          指定探测器向服务器发送的SSH客户端版本标识。通常用于模拟SSH客户端与服务器进行初始的版本协商。

  • irc_banner
    • prober: tcp
        指定使用TCP探测器。
    • tcp
        TCP探测器的配置部分。
      • query_response
          定义了一个查询和响应的序列。
      • send: “NICK prober”
           向IRC服务器发送设置昵称(NICK)的命令,昵称为“prober”。
      • send: “USER prober prober prober :prober”
          向IRC服务器发送USER命令,用于设置用户信息。这里所有的参数都设置为“prober”。
      • expect: “PING : ([^ ]+)”
          定义一个正则表达式,探测器会等待服务器发送一个PING消息,并捕获PING后面的参数值。
      • send: “PONG ${1}”
          当收到PING消息后,探测器会使用之前捕获的参数值(${1})来回应一个PONG消息。这是IRC协议中保持连接活跃的一种机制。
      • expect: “^:[^ ]+ 001”
          探测器期望从服务器接收到一个以:开头,后面跟着若干非空格字符,再接着是 001的响应。在IRC协议中,001是一个欢迎消息,表示客户端已成功连接到服务器。

3.2.5 icmp、icmp_ttl5

  icmp:
    prober: icmp	# 使用ICMP探测器,通常用于检测网络连通性(ping)
    
  icmp_ttl5:
    prober: icmp	# 使用ICMP探测器
    timeout: 5s	# 设置探测超时时间为5秒
    icmp:
      ttl: 5	# 设置ICMP包的TTL(生存时间)为5,这可以用于追踪网络路径或检测特定网络跳数的问题
  • icmp
    • prober: icmp
        指定该模块使用的探测器类型为icmp。这意味着该模块将发送ICMP Echo请求(ping请求)到目标地址,以检查网络的连通性。

  • icmp_ttl5
    • prober: icmp
        同样指定了使用的探测器类型为icmp。
    • timeout: 5s
        设置ICMP探测的超时时间为5秒。如果在5秒内没有收到ICMP Echo响应(pong响应),则探测器会认为目标不可达。
    • ttl: 5
        设置ICMP数据包的Time To Live (TTL)值为5。TTL是IP数据包在网络中传输时可以经过的最大路由器数量。每当数据包经过一个路由器时,TTL值就会减1。当TTL值减至0时,数据包将被丢弃,并且发送方会收到一个ICMP超时消息。通过设置较低的TTL值(如5),可以限制数据包的传输范围,这在某些网络诊断场景中可能很有用。例如,如果你想确认数据包是否能够到达离你较近的网络节点,但不想让它们传播得太远,就可以通过设置较低的TTL值来实现。

四、实战演练:生产环境搭建指南🔨

4.1 创建普通用户管理blackbox_exporter👤

useradd deploy

4.2 解压blackbox_exporter.tar.gz📦

注意:
  我的是x86,所以使用blackbox_exporter-0.25.0.linux-amd64.tar.gz,您可以使用uname -a命令查看系统架构

tar xvf blackbox_exporter-0.25.0.linux-amd64.tar.gz -C /home/deploy/

4.3 将blackbox_exporter集成到Prometheus配置中✂️

  将blackbox_exporter集成到Prometheus配置中,确保数据能够正常采集。编辑Prometheus的配置文件(通常是prometheus.yml),在scrape_configs部分添加blackbox_exporter的配置。告诉Prometheus将采集localhost:9115的数据。

  - job_name: 'blackbox_exporter'
    metrics_path: /probe
    params:
      module: [http_2xx]  # 模块对应 blackbox.yml
    static_configs:
      - targets:
          - http://127.0.0.1:9090
        labels:
          system: prometheus
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 127.0.0.1:9115  # blackbox_exporter安装在哪台机器

4.4 更改blackbox_exporter软件包名称✂️

mv /home/deploy/blackbox_exporter-0.25.0.linux-amd64 /home/deploy/blackbox_exporter

4.5 编辑blackbox_exporter.service文件📝

cat > /etc/systemd/system/blackbox_exporter.service <<EOF
[Unit]
Description=blackbox_exporter
After=network.target

[Service]
Type=simple
User=deploy
Group=deploy
ExecStart=/home/deploy/blackbox_exporter/blackbox_exporter \
--config.file=/home/deploy/blackbox_exporter/blackbox.yml \
--web.listen-address=:9115 \
--no-config.check \
--history.limit=100 \
--log.format=logfmt \
--log.level=info
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

4.6 启动blackbox_exporter.service🔌

sudo systemctl daemon-reload

sudo systemctl enable --now blackbox_exporter.service

4.7 查看服务是否正常启动🔍

# 查看service服务是否启动
sudo systemctl status blackbox_exporter.service

# 查看端口是否存在
sudo ss -ntulp | grep 9115

相关资料下载地址📚

  • 官方文档:https://prometheus.io/docs/introduction/overview/
  • 下载地址:https://github.com/prometheus/prometheus/releases/tag/v2.52.0
  • 文档地址:https://prometheus.io/docs/prometheus/latest/installation/
  • 离线包下载链接:https://pan.baidu.com/s/1ANF_AlFnM5_FMIbKBuzBmg 提取码:yqpt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1792036.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

isp效果库相关参数——镜像翻转

前言 之前一直比较忙着接触新工作内容&#xff0c;所以有一段搁置期&#xff0c;但是工作中的知识点还是有一直记录的&#xff0c;只是没空发出来&#xff0c;毕竟需要先熟悉才能总结内容&#xff0c;接下来的几天会连着发布 不同的产品数据手册有着不同的叫法但是统一的意思离…

怎么实现车间生产设备数据文件比传统FTP的精准快速管控?

在现代制造业中&#xff0c;数据管理的重要性日益凸显。车间生产设备产生的数据文件需要被精确、快速地管控&#xff0c;以确保生产效率和产品质量。传统上&#xff0c;文件传输协议&#xff08;FTP&#xff09;被广泛用于数据传输&#xff0c;但它存在一些明显的局限性。 传统…

三十七、openlayers官网示例Earthquakes Heatmap解析——在地图上加载热力图

官网demo地址&#xff1a; Earthquakes Heatmap 这篇主要介绍了热力图HeatmapLayer HeatmapLayer 是一个用于在地图上显示热力图的图层类型&#xff0c;通常用于表示地理数据中的密度或强度。例如&#xff0c;它可以用来显示地震、人口密度或其他空间数据的热点区域。在这个示…

2024050302-重学 Java 设计模式《实战享元模式》

重学 Java 设计模式&#xff1a;实战享元模式「基于Redis秒杀&#xff0c;提供活动与库存信息查询场景」 一、前言 程序员&#x1f468;‍&#x1f4bb;‍的上下文是什么&#xff1f; 很多时候一大部分编程开发的人员都只是关注于功能的实现&#xff0c;只要自己把这部分需求…

flutter as连接网易模拟器

网易模拟器下载 Mac 使用MuMu模拟器调试 Flutter开发 Android Studio 安装第三方模拟器—网易MuMu Mac 安卓Studio使用外部模拟器 Mac电脑&#xff1a;Android Studio 连接 MUMU 网易模拟器 Mac 上 Android Studio 链接网易 MuMu 模拟器调试 在 .zshrc 中设置 adb 二进制文…

计算机毕业设计 | 基于node(Koa)+vue 高校宿舍管理系统 宿舍可视化(附源码)

1&#xff0c;绪论 1.1 项目背景 随着科技的发展&#xff0c;智能化管理越来越重要。大学生在宿舍的时间超过了1/3&#xff0c;因此良好的宿舍管理对学生的生活和学习极为关键。学生宿舍管理系统能够合理安排新生分配宿舍&#xff0c;不浪费公共资源&#xff0c;减轻学校管理…

VBA excel 表格将多行拆分成多个表格或 文件 或者合并 多个表格

excel 表格 拆分 合并 拆分工作表按行拆分为工作表工作表按行拆分为工作薄 合并操作步骤 拆分 为了将Excel中的数万行数据拆分成多个个每个固定行数的独立工作表&#xff0c;并且保留每个工作表的表头&#xff0c;你可以使用以下VBA脚本。这个脚本会复制表头到每个新的工作表&…

opencv进阶 ——(十)图像处理之基于dlib人脸检测与识别

Dlib是一个功能丰富的C库&#xff0c;设计用于构建复杂的软件系统&#xff0c;尤其在机器学习、计算机视觉和数值计算等领域有着广泛的应用。以下是对Dlib的简要介绍&#xff1a; 特性&#xff1a; 机器学习算法&#xff1a;Dlib包含了各种机器学习算法&#xff0c;如支持向量机…

java分布式的ACP是什么

ACP 1、ACP是什么 一致性&#xff08;Consistency&#xff09;&#xff1a;在分布式系统中&#xff0c;当更新操作完成之后&#xff0c;所有节点在同一时间看到的数据是一致的。换句话说&#xff0c;对于任何数据的读取&#xff0c;都会得到最后写入的数据。可用性&#xff0…

鸿蒙开发接口安全:【@ohos.userIAM.userAuth (用户认证)】

用户认证 说明&#xff1a; 本模块首批接口从API version 6开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import userIAM_userAuth from ohos.userIAM.userAuth;完整示例 // API version 6 import userIAM_userAuth from ohos.use…

学习笔记——路由网络基础——静态路由(static)

三、静态路由(static) 1、静态路由 (1)定义 静态路由(Static)&#xff1a;由管理员手动配置和维护的路由。静态路由配置简单&#xff0c;被广泛应用于网络中。此外还可以实现负载均衡和路由备份。 静态路由默认优先级为60&#xff0c;如果想在多条静态路由中让某条路由优选…

图片裁剪与上传处理方案 —— 基于阿里云 OSS 处理用户资料

目录 01: 通用组件&#xff1a;input 构建方案分析 02: 通用组件&#xff1a;input 构建方案 03: 构建用户资料基础样式 04: 用户基本资料修改方案 05: 处理不保存时的同步问题 06: 头像修改方案流程分析 07: 通用组件&#xff1a;Dialog 构建方案分析 08: 通用组件&…

宝兰德参编!《2023年中国数据库年度行业分析报告》正式发布

近日&#xff0c;墨天轮发布 《2023年中国数据库年度行业分析报告》&#xff08;以下简称《报告》&#xff09;。宝兰德深度参与《报告》重要章节内容的编写工作&#xff0c;凭借在中间件领域深厚的技术沉淀和丰富的实践经验&#xff0c;输出了大量具有专业性和前瞻性的意见&am…

PHP实现抖音小程序用户登录获取openid

目录 第一步、抖音小程序前端使用tt.login获取code 第二步、前端拿到code传给后端 第三步、方法1 后端获取用户信息 第四步、方法2 抖音小程序拿到用户信息把用户信息传给后端 code2Session抖音小程序用户登录后端文档 第一步、抖音小程序前端使用tt.login获取code 前端 …

如何以抛物线形式排列一个列表,曲线排列 x² = y

如何以抛物线形式排列一个列表&#xff0c;曲线排列 一、需求 做页面的时候遇到一个需求&#xff0c;需要将一个列表以曲线的形式排列展示。 列表内容&#xff1a; const statisticLabels: Array<{name: string,icon: string,path: string,type: string,dataName: strin…

14-alert\confirm\prompt\自定义弹窗

一、认识alert\confirm\prompt 下图依次是alert、confirm、prompt&#xff0c;先认清楚长什么样子&#xff0c;以后遇到了就知道如何操作了。 二、alert操作 先用driver.switch_to.alert方法切换到alert弹出框上&#xff1b;可以用text方法获取弹出的文本信息&#xff1b;acce…

【Qt】定时器播放多张图片,动画效果

1. 效果 2. 代码 2.1 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();void initGif(QS…

RPA-UiBot6.0数据采集机器人(海量信息一网打尽)内附RPA师资培训课程

前言 友友们是否曾为海量的数据信息而头疼&#xff0c;不知道如何从中精准抓取你所需的数据&#xff1f;小北的这篇博客将为你揭晓答案&#xff0c;让我们一起学习如何运用RPA数据采集机器人&#xff0c;轻松实现海量信息的快速抓取与整理&#xff0c;助力你的工作效率翻倍&…

用cocos2d-python绘制游戏开发的新篇章

用cocos2d-python绘制游戏开发的新篇章 第一部分&#xff1a;背景 在游戏开发的世界中&#xff0c;寻找一个强大而灵活的框架至关重要。cocos2d-python是一个Python游戏开发框架&#xff0c;它提供了一套丰富的功能&#xff0c;用于创建2D游戏、图形和交互式应用。基于流行的c…

掌握SVG基础:从零开始学习

格栅图可以实现图片的清晰显示&#xff0c;但这也意味着如果要在各种设备上使用格栅图&#xff0c;就会增加大量不同规格的格栅图&#xff0c;以适应各种尺寸的设备。这也直接导致资源文件体积的增加&#xff0c;矢量图没有这个问题。本文将SVG代码编写与即时设计工具相结合&am…