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

亲爱的读者们👋

  欢迎加入【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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【51单片机】智能百叶窗项目

文章目录 功能演示&#xff1a;前置要求&#xff1a;主要功能&#xff1a;主要模块&#xff1a;主函数代码&#xff1a; 具体的仿真程序和代码程序已经免费放置在资源中&#xff0c;如有需要&#xff0c;可以下载进行操作。 功能演示&#xff1a; 前置要求&#xff1a; 编译软…

Linux - 文件管理高级 find、grep

0.管道 | 将前面命令的标准输出传递给管道作为后面的标准输入 1.文件查找 find find 进行文件查找时&#xff0c;默认进行递归查找&#xff0c;会查找隐藏目录下的文件 1.1 用法 # find 查找路径 查找条件... -type // 文件类型 f 普通文件 b 设备 d …

MacOS13-将数据库转为markdown,docx格式

MacOS13-将数据库转为markdown&#xff0c;docx格式 文章目录 先说踩坑点各种模块缺失 代码效果总结参考 先说踩坑点 各种模块缺失 tkinter mysql 没错&#xff0c;你可以直接点击安装&#xff1b; 如果还出现报错 你需要打开终端 pip install mysqlclient再次点进去安…

C语言| 输出菱形*(梳理篇II)

C语言| 输出菱形*-CSDN博客 凡事还是得自己独立思考后&#xff0c;写一遍程序才能发现问题所在。 容易犯的错误&#xff1a; 【完整程序注释】 运行结果 /* 输出菱形 1 总行数 n为奇数&#xff0c;分上三角形下三角形&#xff0c;只考虑左边的空格和星号* 2 上三角形 行数…

toefl listening_托福听力

x.1 课程介绍 x.1.1 课程介绍 考试介绍 注意事项如下&#xff0c; x.1.2 分数设定和方法论 x.2.1 细节题解法 x.2.2 对话主旨题解法 听力对话不要扣分&#xff1b; 内容主旨题&#xff0c;以what开头&#xff1b; 目的主旨题&#xff0c;以why开头&#xff1b; 目的主旨题…

【论文笔记】Content-based Unrestricted Adversarial Attack

图2&#xff1a;Adversarial Content Attack的流程。首先使用Image Latent Mapping将图像映射到潜变量空间。然后&#xff0c;用Adversarial Latent Optimization生成对抗性样本。最后&#xff0c;生成的对抗性样本可以欺骗到目标分类模型。 3.1 Image Latent Mapping 对于扩…

代码随想录算法训练营第四十一天 | 理论基础、509.斐波那契数列、70.爬楼梯、746.使用最小花费爬楼梯

目录 理论基础 509.斐波那契数列 思路 代码 70.爬楼梯 思路 代码 746.使用最小花费爬楼梯 思路 代码 理论基础 代码随想录 视频&#xff1a;从此再也不怕动态规划了&#xff0c;动态规划解题方法论大曝光 &#xff01;| 理论基础 |力扣刷题总结| 动态规划入门_哔哩哔…

uni微信小程序editor富文本组件如何插入图片

需求 在editor中插入图片&#xff0c;并对图片进行编辑&#xff0c;简略看一下组件的属性&#xff0c;官网editor 组件 | uni-app官网 解决方案 首先要使用到ready这个属性&#xff0c;然后官网有给代码粘过来&#xff0c;简单解释一下这段代码的意思&#xff08;作用是在不同…

带大家做一个,易上手的家常猪肉炖白菜

今天 带大家做一个 猪肉炖白菜 一块猪肉 切片 一块生姜 两边

20240603在飞凌的OK3588-C开发板上跑原厂IPC方案时确认OV5645

v4l2-ctl --list-devices media-ctl -p -d /dev/media2 20240603在飞凌的OK3588-C开发板上跑原厂IPC方案时确认OV5645 2024/6/3 16:39 确认OV5645已经正常挂载了&#xff1a; Microsoft Windows [版本 10.0.22621.3296] (c) Microsoft Corporation。保留所有权利。 C:\Users\Q…

音频pop音的数学与物理解释

音频数据跳变太大的时候通常会有pop音&#xff0c;此时频谱上看pop音位置能量较高 音频中的“pop”音通常是由于信号的不连续性或瞬态变化造成的。这种不连续性的数学和物理原因可以从以下几个方面解释&#xff1a; 数学解释 信号不连续性 当音频信号发生突变时&#xff0c;…

从 0 到 1 带你认识 Git 在个人和企业开发中的原理及应用

文章目录 学习目标Git 初识提出问题如何解决&#xff1f;—— 版本控制器注意事项 Git 安装Linux CentOSLinux UbuntuWindows Git 基本操作创建 Git 本地仓库配置 Git 认识工作区、暂存区、版本库添加文件——场景一查看 .git 文件 添加文件——场景二 修改文件版本回退 学习目…

一文读懂GDPR

GDPR将对人们的网络足迹、使用的APP和服务如何保护或利用这些数据产生重大影响。 下面我们将对有关GDPR人们最关心的问题进行解读。 GDPR是什么&#xff1f; 一般数据保护条例&#xff08;General Data Protection Regulation&#xff09;是一项全面的法律&#xff0c;赋予了…

SaaS增长| 联盟营销经理必须要知道的十个关键指标!

你对你的联盟合作伙伴计划了解多少&#xff1f;这个问题的答案将取决于你的数据有多好&#xff0c;以及你跟踪数据的效率如何。 如果你还在整合各种资源&#xff0c;不必担心。合作伙伴计划需要时间和努力来建立&#xff0c;而且很难立即实施适当的报告制度&#xff0c;尤其是…

Python私教张大鹏万字长文讲解Tailwindcss Flex 和 Grid 布局相关的样式,附完整源码和效果截图

flex-basics 样式类 Utilities for controlling the initial size of flex items. 用于控制伸缩项的初始大小的实用程序。 基础样式 ClassPropertiesbasis-0flex-basis: 0px;basis-1flex-basis: 0.25rem; /* 4px */basis-2flex-basis: 0.5rem; /* 8px */basis-3flex-basis:…

程序员的五大职业素养,你知道吗?

程序员职业生涯的挑战与机遇 在当今这个科技日新月异的时代&#xff0c;程序员作为技术行业的中坚力量&#xff0c;其职业生涯无疑充满了无数挑战与机遇。技术的快速迭代要求他们必须不断学习新知识、掌握新技能&#xff0c;以跟上时代的步伐。同时&#xff0c;云计算、人工智…

python常见数据分析函数

apply DataFrame.apply(func, axis0, broadcastFalse, rawFalse, reduceNone, args(), **kwds) 第一个参数是函数 可以在Series或DataFrame上执行一个函数 支持对行、列或单个值进行处理 import numpy as np import pandas as pdf lambda x: x.max()-x.min()df pd.DataFrame(…

Spring Cloud学习笔记(Nacos):Nacos持久化(未完成)

这是本人学习的总结&#xff0c;主要学习资料如下 - 马士兵教育 1、Overview2、单机使用MySQL 1、Overview 我们关闭单机下的Nacos后&#xff0c;再重新启动会发现之前配置的内容没有被删除。这时因为Nacos有内嵌的数据库derby&#xff0c;会自己持久化。 但是在集群的情况下…

【用户画像】用户偏好购物模型BP

一、前言 用户购物偏好模型BP&#xff08;Buyer Preferences Model&#xff09;旨在通过对用户购物行为的深入分析和建模&#xff0c;以量化用户对不同商品或服务的偏好程度。该模型对于电商平台、零售商以及其他涉及消费者决策的商业实体来说&#xff0c;具有重要的应用价值。…

尝试编译 AMD ROCm 的 llvm-project

0&#xff0c;环境 ubuntu 22.04 gcc-11 x86_64 18cores/36threads 256GB RAM rocm 6.0.2 Radeon VII 1&#xff0c;第一次尝试 构建命令&#xff1a; cmake -G "Unix Makefiles" ../llvm \ -DLLVM_ENABLE_PROJECTS"clang;lld;lldb;mlir;openmp" \…