当前位置: 首页 > news >正文

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

亲爱的读者们👋

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

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

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

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

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


文章目录

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

一、mysqld_exporter概述📘

定义
  mysqld_exporter是一个开源的监控工具,专门设计用于收集和导出MySQL数据库的性能指标,以便进行监控和分析。它是Prometheus监控框架的一部分,可以将收集到的数据格式化为Prometheus可以识别的格式。

功能
  1.数据收集:mysqld_exporter能够连接到MySQL数据库,并从中收集各种性能指标,如查询执行时间、缓存使用情况、表锁定情况、线程状态等。
  2.数据导出:收集到的数据会被格式化为Prometheus可以理解的metrics格式,这样Prometheus就能抓取并存储这些数据。
  3.兼容性:mysqld_exporter支持多种MySQL版本,并能很好地与Prometheus及其他监控工具集成。

应用场景

  • IT运维和数据库管理:对于需要管理和监控大量MySQL数据库实例的企业或组织,mysqld_exporter是一个不可或缺的工具。它可以帮助IT运维团队实时了解每个数据库的性能状况,及时发现并解决问题。
  • 云服务提供商:云服务提供商可以利用mysqld_exporter为他们的客户提供详细的数据库性能报告,从而提升服务质量。
  • 开发和测试环境:在软件开发和测试过程中,开发人员和测试人员可以使用mysqld_exporter来监控数据库性能,以确保应用程序与数据库的交互是高效的。

二、安装mysqld_exporter💾

注意事项和常见问题
  1.权限问题:在安装mysqld_exporter之前,确保当前用户有足够的权限来执行安装命令和访问相关目录。在Linux系统中,可能需要使用sudo来提升权限。

  2.防火墙和安全组设置:mysqld_exporter默认监听9104端口(或其他自定义端口)。确保服务器的防火墙规则允许从Prometheus服务器到该端口的流量。如果部署在云服务上,还应在安全组中配置相应的入站规则。

  3.配置文件和服务管理:如果使用systemd来管理mysqld_exporter,应确保/etc/systemd/system/mysqld_exporter.service文件配置正确,服务能够正常启动、停止和重启。

  4.日志和错误排查:定期检查mysqld_exporter的日志,以便及时发现和解决问题。如果使用systemd,可以通过journalctl -u mysqld_exporter命令查看日志。

  5.版本兼容性:在安装前,检查mysqld_exporter的版本是否与你的MySQL数据库和Prometheus版本兼容。

  6.安装路径和权限:确保mysqld_exporter的安装路径具有适当的权限,以便服务能够正常访问和执行。同时,确保任何配置文件(如.my.cnf)的路径和权限也设置正确。

2.1 访问mysqld_exporter官方网站 🌐

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

2.2 选择适合的版本🔍

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

2.3 下载mysqld_exporter⬇️

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

2.4 解压安装包📂

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

2.5 在数据库创建监控用户并授权

-- 创建监控用户
CREATE USER 'exporter'@'%' IDENTIFIED BY 'exporter!@#2024' WITH MAX_USER_CONNECTIONS 3;-- 授权
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';

2.6 运行mysqld_exporter🚀

  • 进入解压后的目录,并运行mysqld_exporter服务器。在Linux下,你可以使用如下命令。这样就使用默认的配置启动mysqld_exporter服务器。如果一切正常,你应该能在终端看到mysqld_exporter的启动日志。
cd mysqld_exporter-x.x.x.linux-amd64# 将密码添加至变量
export MYSQLD_EXPORTER_PASSWORD=exporter!@#2024# 启动服务
/home/deploy/mysqld_exporter/mysqld_exporter \
--exporter.lock_wait_timeout=2 \
--mysqld.address=localhost:3307 \
--mysqld.username=exporter \
--collect.global_status \
--collect.global_variables \
--collect.info_schema.replica_host \
--collect.info_schema.tables \
--collect.info_schema.tables.databases="*" \
--collect.engine_innodb_status \
--web.listen-address=0.0.0.0:9104 \
--log.level=info \
--log.format=logfmt  

三、mysqld_exporter指标和配置详解📖

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

注意:

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

3.1 mysqld_exporter.service

连接与超时设置

  • - -exporter.lock_wait_timeout=2
       设置连接上的元数据锁超时时间。在某些情况下,当mysql_exporter尝试收集信息时,可能会遇到需要等待元数据锁的情况。设置一个合理的超时时间可以避免长时间等待。
  • - -timeout-offset
       从超时时间中减去的偏移量。允许你从超时时间中减去一个偏移量。在某些情况下,你可能想要稍微减少超时时间,以避免在某些操作上的不必要等待。
  • - -config.my-cnf
       读取MySQL凭据的.my.cnf文件路径。这个文件通常包含连接 MySQL 服务器所需的用户名、密码和其他认证参数。
  • - -mysqld.address=“localhost:3306”
      指定了mysql_exporter用于连接到 MySQL 服务器的地址(包括主机名和端口)。
  • - -mysqld.username=MYSQLD.USERNAME
      用于连接到 MySQL 服务器的用户名。
  • - -[no-]collect.heartbeat
       控制mysql_exporter是否从 pt-heartbeat 工具收集心跳数据。pt-heartbeat 是一个常用的 MySQL 监控工具,它通过在数据库中定期插入心跳记录来监控复制延迟和其他性能问题。启用这个选项允许mysql_exporter收集与这些心跳记录相关的指标。
  • - -[no-]collect.info_schema.query_response_time
      控制mysql_exporter是否收集查询响应时间分布。为了收集这些数据,MySQL 服务器需要启用 query_response_time_stats 功能(通常是通过设置系统变量来完成的)。启用这个选项后,mysql_exporter 将能够暴露关于查询响应时间的统计信息。

收集控制

  • 全局状态与变量

    • - -[no-]collect.global_status
        控制是否从 MySQL 的 SHOW GLOBAL STATUS 命令中收集指标。SHOW GLOBAL STATUS 命令提供了关于 MySQL 服务器全局状态的信息,包括连接数、查询数、缓存使用情况等。启用这个选项后,mysql_exporter 将能够暴露这些指标给 Prometheus,从而允许你监控和分析 MySQL 服务器的整体性能和健康状况。默认是开启的,关闭的话在启动参数添加- -no-collect.global_status
    • - -[no-]collect.global_variables
        控制是否从 MySQL 的 SHOW GLOBAL VARIABLES 命令中收集指标。SHOW GLOBAL VARIABLES 命令显示了 MySQL 服务器的全局系统变量,这些变量定义了服务器的各种配置和设置。启用这个选项后,mysql_exporter 将能够暴露这些变量的值给 Prometheus,允许你监控和分析 MySQL 服务器的配置和设置。默认是开启的,关闭的话在启动参数添加- -no-collect.global_variables
  • 从属和复制状态
    为什么要收集这些指标?
      复制监控:通过收集这些指标,你可以监控 MySQL 主从复制的性能和健康状况。例如,你可以检查复制延迟、错误、连接状态等,以确保数据在主从服务器之间同步的正确性和及时性。
      故障排查:当复制出现问题时,这些指标可以帮助你快速定位问题并进行故障排查。例如,你可以检查复制线程的状态、错误消息等来确定问题所在。
      告警和通知:当某些关键复制指标超出阈值时(如复制延迟过长),你可以配置 Prometheus 发送告警通知,以便及时响应并解决问题。

    • - -[no-]collect.slave_status
        控制 mysql_exporter 是否从 MySQL 的 SHOW SLAVE STATUS 命令中收集指标。SHOW SLAVE STATUS 命令提供了关于 MySQL 从服务器的复制状态的信息,包括复制线程的状态、I/O 和 SQL 线程的延迟等。启用这个选项后,你可以监控 MySQL 复制的性能和健康状况。
    • - -[no-]collect.slave_hosts
        控制 mysql_exporter 是否从 SHOW SLAVE HOSTS 命令中抓取信息。SHOW SLAVE HOSTS 命令显示了从服务器的主机信息,这些信息通常用于 MySQL 的复制过滤器(replication filters)。启用这个选项后,你可以获取关于复制主机配置的信息。
    • - -[no-]collect.info_schema.replica_host
        控制 mysql_exporter 是否从 information_schema.replica_host_status 表中收集指标。这个表提供了关于复制主机状态的信息,类似于 SHOW SLAVE STATUS 但以表的形式呈现。启用这个选项后,你可以通过 information_schema 数据库监控复制主机的状态。(注意,在一些较新的 MySQL 版本中,“slave”术语已被“replica”替代)
  • 用户与权限
    为什么要收集这些指标?
      安全审计:通过监控用户权限的分配和变化,你可以确保只有授权的用户能够访问数据库,并遵守最小权限原则。这有助于减少潜在的安全风险。
      性能分析:虽然直接从 mysql.user 表中收集的数据可能不直接反映数据库性能,但了解哪些用户正在尝试连接或执行操作可以为你提供有关潜在性能瓶颈的线索。
      合规性检查:在某些行业或组织中,可能需要定期审计数据库的访问权限以确保符合内部策略或外部法规的要求。通过收集这些指标,你可以更容易地满足这些合规性要求。

    • - -[no-]collect.mysql.user.privileges
        控制 mysql_exporter 是否从 mysql.user 表中收集用户权限相关的指标。mysql.user 表存储了 MySQL 用户账户信息,包括用户名、主机名以及他们被授予的权限。启用这个选项后,你可以监控用户权限的分配和变化,有助于安全审计和合规性检查。
    • - -[no-]collect.mysql.user
        控制从 mysql.user 表中收集的数据。启用这个选项通常意味着除了用户权限外,还会收集其他用户相关的指标,尽管具体的指标取决于 mysql_exporter 的实现。这些指标可能包括用户账户的数量、特定用户的连接尝试等。
  • 进程列表与线程状态

    • - -[no-]collect.info_schema.processlist
        控制 mysql_exporter 是否从 information_schema.processlist 表中收集当前线程状态计数。information_schema.processlist 提供了关于当前在 MySQL 服务器上执行的线程(即客户端连接)的信息,包括它们正在执行的查询、状态等。启用这个选项后,你可以监控查询的执行时间、线程状态等,有助于识别潜在的瓶颈或问题。
    • - -collect.info_schema.processlist.min_time
        设置线程在每个状态中必须保持的最小时间(以秒为单位),以便被 mysql_exporter 计数。例如,如果设置为 5,则只有当线程在某个特定状态(如 System lock 或 Query)中停留至少 5 秒时,该状态才会被计数。有助于过滤掉短暂的、可能不重要的状态变化。
    • - -[no-]collect.info_schema.processlist.processes_by_user
        控制是否按用户收集进程数。启用后,mysql_exporter 将为每个 MySQL 用户计算当前正在执行的线程数,并暴露这些指标。有助于识别哪些用户正在执行大量查询或可能消耗过多资源。
    • - -[no-]collect.info_schema.processlist.processes_by_host
        与按用户收集进程数类似,但它是按主机名(即客户端的 IP 地址或主机名)进行收集的。启用后,你可以监控来自不同主机的连接数,有助于识别潜在的恶意活动、流量模式或其他与主机相关的行为。
  • 表与模式统计

    • - -[no-]collect.info_schema.tables
        控制 mysql_exporter 是否从 information_schema.tables 收集关于表的指标。information_schema.tables 表包含了关于数据库中所有表的信息,如行数、数据长度、索引长度等。启用这个选项后,你可以监控表的增长、使用情况和性能。
    • - -collect.info_schema.tables.databases=“*”
        指定mysql_exporter 应该为哪些数据库收集表统计信息。你可以提供一个数据库名称的列表,或者使用 * 来表示收集所有数据库的表统计信息。例如,如果你只想监控 mydb1 和 mydb2 这两个数据库的表,你可以设置这个参数为 --collect.info_schema.tables.databases=“mydb1,mydb2”。
    • - -[no-]collect.info_schema.tablestats
        控制是否收集表统计信息,但注意这里的描述中提到了 userstat=1。然而,在标准的 MySQL 和 mysql_exporter 中,并没有一个直接名为 userstat 的系统变量或配置选项。可能是这里有一些混淆或特定环境的自定义设置。通常,要收集表统计信息,你只需要启用 --collect.info_schema.tables。但如果你的环境中确实有与 userstat 相关的自定义设置,那么你可能需要确保它已启用(如果它是用于控制表统计信息收集的开关)。
    • - -[no-]collect.info_schema.schemastats
        与 --[no-]collect.info_schema.tablestats 类似,这个参数控制是否收集模式(schema)统计信息。但同样地,标准 MySQL 和 mysql_exporter 中并没有直接名为 schemastats 的指标或设置。模式统计信息通常是通过收集各个表的统计信息来间接获得的。

InnoDB 与存储引擎状态

  • - -[no-]collect.info_schema.innodb_metrics
      控制 mysql_exporter 是否从 information_schema.innodb_metrics 表中收集 InnoDB 存储引擎的指标。这个表包含了各种与 InnoDB 相关的度量,如缓冲池的使用情况、行操作计数等。
  • - -[no-]collect.engine_innodb_status
      控制 mysql_exporter 是否通过执行 SHOW ENGINE INNODB STATUS 命令来收集 InnoDB 存储引擎的详细状态信息。这个命令的输出包含了大量的关于 InnoDB 内部操作的信息,如锁等待、事务、死锁等。这些信息对于深入分析和诊断 InnoDB 的性能问题非常有用。
  • - -[no-]collect.info_schema.innodb_cmp
      控制 mysql_exporter 是否从 information_schema.innodb_cmp 表中收集 InnoDB 的压缩统计信息。这个表包含了关于 InnoDB 压缩页操作的统计,如压缩和未压缩的页数、压缩操作的次数等。
  • - -[no-]collect.info_schema.innodb_cmpmem
      控制 mysql_exporter 是否从 information_schema.innodb_cmpmem 表中收集 InnoDB 的压缩内存使用统计信息。这个表提供了关于 InnoDB 压缩缓冲池内存使用的度量。
  • - -[no-]collect.engine_tokudb_status
      (如果你的 MySQL 服务器支持 TokuDB 存储引擎)控制 mysql_exporter 是否通过执行 SHOW ENGINE TOKUDB STATUS 命令来收集 TokuDB 存储引擎的状态信息。与 InnoDB 类似,这个命令的输出包含了大量的关于 TokuDB 内部操作的信息,有助于分析和诊断 TokuDB 的性能问题。

性能模式 (perf_schema)

  • 事件语句
    • - -[no-]collect.perf_schema.eventsstatements
        控制 mysql_exporter 是否从 performance_schema.events_statements_summary_by_digest 表中收集 SQL 语句的性能指标。这个表包含了关于 SQL 语句执行的摘要信息,如执行次数、执行时间、锁等待时间等。通过收集这些信息,可以分析哪些 SQL 语句是性能瓶颈,并进行相应的优化。
  • 文件与I/O
    • - -[no-]collect.perf_schema.file_events
        控制是否从 performance_schema.file_summary_by_event_name 表中收集文件 I/O 事件的相关指标。这个表提供了关于文件 I/O 操作的摘要信息,如读/写操作的次数、字节数等。通过监控这些指标,可以了解数据库服务器的磁盘 I/O 使用情况,从而进行性能调优或硬件升级。
    • - -[no-]collect.perf_schema.file_instances
        控制是否从 performance_schema.file_summary_by_instance 表中收集文件实例的 I/O 指标。这个表提供了关于单个文件实例(如表空间文件、日志文件等)的 I/O 操作摘要信息。通过监控特定文件的 I/O 情况,可以更精确地定位性能问题。
  • 内存与等待事件
    • - -[no-]collect.perf_schema.memory_events
        控制是否从 performance_schema.memory_summary_global_by_event_name 表中收集内存事件的指标。这个表提供了关于 MySQL 服务器内存使用情况的摘要信息,如各种内存对象的分配和释放次数、当前使用量等。通过监控这些指标,可以了解 MySQL 服务器的内存使用情况,并进行相应的调优或扩展。
    • - -[no-]collect.perf_schema.eventswaits
        控制是否从 performance_schema.events_waits_summary_global_by_event_name 表中收集等待事件的指标。这个表提供了关于 MySQL 服务器内部等待事件的摘要信息,如锁等待、I/O 等待等。通过监控这些指标,可以了解 MySQL 服务器的等待情况,并找出可能的性能瓶颈。
  • 复制组状态
    • - -[no-]collect.perf_schema.replication_group_members
        控制是否从 performance_schema.replication_group_members 表中收集复制组成员的指标。这个表提供了关于 MySQL 组复制中组成员的状态信息,如成员的角色(主节点、从节点等)、连接状态等。通过监控这些指标,可以了解组复制的状态和性能,并进行相应的故障排查或调优。

Web服务与监听

  • –web.telemetry-path=/metrics
      指定mysql_exporter 暴露指标的 HTTP 路径。Prometheus 或其他监控工具将从这个路径拉取 MySQL 相关的监控指标。默认路径通常是 /metrics,但你可以根据需要进行更改。
  • –web.listen-address
      设置mysql_exporter 监听的地址和端口,以便暴露指标和可能的 Web 界面(尽管 mysql_exporter 通常不提供一个完整的 Web 界面,只是暴露指标)。例如,你可以设置为 :9104 来监听所有可用的网络接口上的 9104 端口。你也可以指定特定的 IP 地址和端口组合,如 127.0.0.1:9104 来仅监听本地回环地址。
  • –[no-]web.systemd-socket
      控制 mysql_exporter 是否使用 systemd 套接字激活来监听连接,而不是传统的端口监听。当在 systemd 管理的系统中运行时,这个选项允许 mysql_exporter 通过 systemd 套接字监听连接,这可以提供更高级的启动和重启行为。默认情况下,这个选项是禁用的(即不使用 systemd 套接字激活),但如果你正在一个 systemd 管理的环境中运行,并且想要利用这种特性,你可以启用它。
  • - -web.config.file
      允许指定一个实验性的配置文件路径,该文件可以包含用于配置 mysql_exporter Web 服务的选项,如启用 TLS 加密或基本认证。请注意,这个选项是实验性的,并且可能不是所有版本的 mysql_exporter 都支持。

日志配置

  • - -[no-]exporter.log_slow_filter
      控制 mysql_exporter 是否添加一个慢查询日志过滤器。当启用时(即不使用 --no-exporter.log_slow_filter),mysql_exporter 会尝试在查询 MySQL 时避免触发 MySQL 的慢查询日志。这是有用的,因为当 mysql_exporter 定期从 MySQL 收集指标时,它可能会执行大量的短查询,这些查询本身并不慢,但如果频繁发生,可能会填满慢查询日志。
  • - -log.level=info
      日志消息的严重程度。常见的日志级别包括debug、info、warn、error等。设置为info级别意味着kafka_exporter将记录信息性消息以及更严重级别的消息(如警告和错误),但会忽略调试级别的消息。选择合适的日志级别可以帮助你关注重要的日志事件,同时避免日志中充斥过多不必要的细节。
  • - -log.format=logfmt
      指定日志消息的输出格式。logfmt是一种简洁的键值对格式,易于阅读和解析。除了logfmt外,还可能支持其他格式,如JSON等。选择适当的日志格式可以简化日志分析过程,特别是当你使用日志分析工具或系统时。

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

4.1 创建普通用户管理mysqld_exporter👤

useradd deploy

4.2 解压mysqld_exporter.tar.gz📦

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

tar xvf mysqld_exporter-0.15.1.linux-amd64.tar.gz -C /home/deploy/

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

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

scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "mysqld_exporter"static_configs:- targets: ["localhost:9104"]

4.4 更改mysqld_exporter软件包名称✂️

mv /home/deploy/mysqld_exporter-0.15.1.linux-amd64 /home/deploy/mysqld_exporter

4.5 编辑mysqld_exporter.service文件📝

cat > /etc/systemd/system/mysqld_exporter.service <<EOF
[Unit]  
Description=Mysqld Exporter  
After=network.target  [Service]  
Type=simple  
User=deploy  
Group=deploy  
Environment=MYSQLD_EXPORTER_PASSWORD=exporter!@#2024
ExecStart=/home/deploy/mysqld_exporter/mysqld_exporter \
--exporter.lock_wait_timeout=2 \
--mysqld.address=localhost:3307 \
--mysqld.username=exporter \
--collect.global_status \
--collect.global_variables \
--collect.info_schema.replica_host \
--collect.info_schema.tables \
--collect.info_schema.tables.databases="*" \
--collect.engine_innodb_status \
--web.listen-address=0.0.0.0:9104 \
--log.level=info \
--log.format=logfmt  
Restart=on-failure  [Install]  
WantedBy=multi-user.target
EOF

4.6 启动mysqld_exporter.service🔌

sudo systemctl daemon-reloadsudo systemctl enable --now mysqld_exporter.service

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

# 查看service服务是否启动
sudo systemctl status mysqld_exporter.service# 查看端口是否存在
sudo ss -ntulp | grep 9104

相关资料下载地址📚

  • 官方文档: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

相关文章:

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

亲爱的读者们&#x1f44b;   欢迎加入【30天精通Prometheus】专栏&#xff01;&#x1f4da; 在这里&#xff0c;我们将探索Prometheus的强大功能&#xff0c;并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。&#x1f680;   Prometheus是云原生和DevOps的…...

浅析智能体开发(第二部分):智能体设计模式和软件架构

大语言模型&#xff08;LLM&#xff09;驱动的智能体&#xff08;AI Agent&#xff09;展现出许多传统软件所不具备的特征。不仅与传统软件的设计理念、方法、工具和技术栈有显著的差异&#xff0c;AI原生&#xff08;AI Native&#xff09;的智能体还融入了多种新概念和技术。…...

Unity学习笔记---Transform组件

组件介绍 Transform组件在每个游戏对象中都存在&#xff0c;且只存在一个。该组件保存了游戏对象的位置、平移、旋转、缩放等信息。 组件相关方法 //获取当前游戏对象的Transform组件this.transform; getObject.transform; GetComponent<Transform>();//属性 gameObje…...

springboot+jsp校园理发店美容美发店信息管理系统0h29g

前台管理:会员管理、会员预定、开单点单、收银结帐、技师提成 后台管理:数据维护、物料管理、数据查询、报表分析、系统设置等 灵活的付款方式&#xff0c;支持现金、挂帐、会员卡&#xff0c;同时支持多种折扣方式并可按用户要求设置多种结帐类型善的充值卡管理模块:支持优惠卡…...

css - sass or scss ?

总的来说&#xff0c;Sass 和 SCSS 提供的功能是一样的&#xff0c;选择哪种语法主要取决于你的个人或团队的偏好。...

html5 笔记01

01 表单类型和属性 input的type属性 单行文本框: typetext 电子邮箱 : typeemail 地址路径 : type url 定义用于输入数字的字段: typenumber 手机号码: typetel 搜索框 : typesearch 定义颜色选择器 : typecolor 滑块控件 : typerange 定义日期 :typedate 定义输入时间的控件…...

E5063A是德科技e5063a网络分析仪

181-2461-8938产品概述&#xff1a; 简  述&#xff1a; E5063A 是低成本网络分析仪&#xff0c;可提供优化的性能和功能&#xff0c;适用于测试简单的无源器件&#xff0c;例如天线、电缆、滤波器和 PCB 等。它利用工业标准 ENA 系列始终如一的测量架构&#xff0c;能够极…...

【星海随笔】微信小程序(二)

WXML 模板语法 - 数据绑定 在data中定义页面的数据 在页面对应的 .js 文件中&#xff0c;把数据定义到 data 对象中即可&#xff1a; Page({data: {// 字符串类型的数据info: init data,// 数据类型的数据msgList: [{msg: hello},{msg: world}]} })Mustache 语法的格式 把 …...

Python采集安居客租房信息

Python采集安居客租房信息 一、需求介绍二、完整代码一、需求介绍 本次采集的需求就是获取到页面中的所有信息: 将数据采集好之后保存为如下csv文件: 爬取的流程不再展开分析,完整代码附后。 二、完整代码 import csvimport requests from lxml import etreeclass Anju…...

Rust构造JSON和解析JSON

目录 一、Rust构造JSON和解析JSON 二、知识点 serde_json JSON 一、Rust构造JSON和解析JSON 添加依赖项 cargo add serde-json 代码&#xff1a; use serde_json::{Result, Value};fn main() -> Result<()>{//构造json结构 cpu_loadlet data r#"{"…...

Linux 信号捕捉与处理

&#x1f493;博主CSDN主页:麻辣韭菜&#x1f493;   ⏩专栏分类&#xff1a;Linux知识分享⏪   &#x1f69a;代码仓库:Linux代码练习&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多Linux知识   &#x1f51d; ​ 目录 前言 1. 信号的处理时机 1.1用户…...

桂林电子科技大学计算机工程学院、广西北部湾大学计信学院莅临泰迪智能科技参观交流

5月18日&#xff0c;桂林电子科技大学计算机工程学院副院长刘利民、副书记杨美娜、毕业班辅导员黄秀娟、广西北部湾大学计信学院院长助理刘秀平莅临广东泰迪智能科技股份有限公司产教融合实训基地参观交流。泰迪智能科技副总经理施兴、广西分公司郑廷和、梁霜、培训业务部孙学镂…...

Qt笔记:动态处理多个按钮点击事件以更新UI

问题描述 在开发Qt应用程序时&#xff0c;经常需要处理多个按钮的点击事件&#xff0c;并根据点击的按钮来更新用户界面&#xff08;UI&#xff09;&#xff0c;如下图。例如&#xff0c;你可能有一个包含多个按钮的界面&#xff0c;每个按钮都与一个文本框和一个复选框相关联…...

Excel模板计算得出表格看板

背景 表格看板及导出&#xff0c;单元格时间年是根据筛选器时间变化的 较往年和往年是计算单元格 思路 1.通过excel模板来把数据填入excel再数据清洗得到数据返回前端 2.数据填充&#xff0c;通过行列作为key 列如&#xff1a;key整体20241月&#xff0c;根据key匹配数据填…...

es数据备份和迁移Elasticsearch

Elasticsearch数据备份与恢复 前提 # 注意&#xff1a; 1.在进行本地备份时使用--type需要备份索引和数据&#xff08;mapping,data&#xff09; 2.在将数据备份到另外一台ES节点时需要比本地备份多备份一种数据类型&#xff08;analyzer,mapping,data,template&#xff09; …...

Oracle数据块之数据行中的SCN

从Oracle 10g开始&#xff0c;如果在表级别打开ROW DEPENDENCIES&#xff0c;业务数据行发生更改时会在数据块中进行登记。 可以通过DUMP数据块来观察上述SCN&#xff1a; &#xff08;1&#xff09;创建测试表&#xff0c;插入3条测试数据&#xff0c;插入一条提交一次。并调用…...

手写tomcat(Ⅱ)——Socket通信+tomcat静态资源的获取

Socket通信简介 参考文章&#xff1a;socket通讯原理及例程&#xff08;一看就懂&#xff09; socket是介于应用层&#xff08;http协议&#xff09;和传输层&#xff08;TCP/UDP协议&#xff09;之间的一层虚拟层 Socket是一个程序&#xff0c;符合TCP/UDP协议的规范&…...

解决Error: error:0308010C:digital envelope routines::unsupported的四种解决方案

问题描述&#xff1a; 报错&#xff1a;Error: error:0308010C:digital envelope routines::unsupported 报错原因&#xff1a; 主要是因为 nodeJs V17 版本发布了 OpenSSL3.0 对算法和秘钥大小增加了更为严格的限制&#xff0c;nodeJs v17 之前版本没影响&am…...

shell 脚本笔记2

3.env与set区别 env用于查看系统环境变量 set用于查看系统环境变量自定义变量函数 4.常用环境变量 变量名称含义PATH命令搜索的目录路径, 与windows的环境变量PATH功能一样LANG查询系统的字符集HISTFILE查询当前用户执行命令的历史列表 Shell变量&#xff1a;自定义变量 目标…...

aws eks集成wasm运行时并启动pod

参考资料 WebAssembly 在云原生中的实践指南&#xff0c;https://cloud.tencent.com/developer/article/2324065 作为一种通用字节码技术&#xff0c;wasm的初衷是在浏览器中的程序实现原生应用性能。高级语言将wasm作为目标语言进行编译并运行在wasm解释器中。和nodejs类似的…...

linux:切分大文件

文章目录 1. 前言2. 用法3. 例子 1. 前言 如果传输、存储过程中出现大文件&#xff0c;希望切分成小文件。在 Linux 中&#xff0c;可以使用多种工具来切分大文件&#xff0c;最常用的是 split 命令。split 命令可以将一个大文件按照指定大小切分成多个小文件。 2. 用法 spl…...

docker 配置文件使用经验,后续持续增加

1. 容器中如何访问主机服务 在docker容器、docker compose 中如何访问主机服务呢&#xff1f; docker容器 20.10.0 版本在 linux 新增 host.docker.internal 支持&#xff1a; docker run -it --add-hosthost.docker.internal:host-gateway alpine cat /etc/hosts 127.0.0.…...

Qml:键盘事件

import QtQuickWindow {width: 640height: 480visible: truetitle: qsTr("Test KeyEvent")//传递给活动窗口的QQuickWindow//传递给当前活动的Item&#xff08;focus为true&#xff09;&#xff0c;如没则找子节点中的&#xff0c;都没有则忽略Item{id:item1//focus:…...

Java列表导出时将附件信息压缩成一个zip

一&#xff1a;使用场景 在最近的工作当中遇到了一个需求&#xff0c;在列表导出时&#xff0c;不仅需要将列表信息导出为excel文件&#xff0c;同时也需要将列表每一条数据所对应的附件信息放在同一个文件夹当中&#xff0c;并且压缩成一个zip响应给浏览器。首先后端需要写两…...

简单美观易上手的 Docker Compose 可视化管理器 Dockge

本文首发于只抄博客&#xff0c;欢迎点击原文链接了解更多内容。 前言 Dockge 是 Uptime Kuma 作者的新作品&#xff0c;因此 UI 风格与 Uptime Kuma 基本一致&#xff0c;如果你正在使用 Uptime Kuma 的话&#xff0c;那么 Dockge 的 UI 设计应该也不会让你失望。Dockge 主打…...

贴片 RS8752XK 封装SOP-8 250MHz,2通道高速运放

传感器信号放大&#xff1a;在传感器应用中&#xff0c;RS8752XK可以用于放大微弱的传感信号&#xff0c;如压力、温度、光强等传感器的信号。 数据采集系统&#xff1a;在数据采集设备中&#xff0c;RS8752XK可以用于放大和调理模拟信号&#xff0c;以供模数转换器&#xff0…...

图论-最短路算法

1. Floyd算法 作用&#xff1a;用于求解多源最短路&#xff0c;可以求解出任意两点的最短路 利用动态规划只需三重循环即可&#xff08;动态规划可以把问题求解分为多个阶段&#xff09;定义dp[k][i][j]表示点i到点j的路径&#xff08;除去起点终点&#xff09;中最大编号不超…...

家政预约小程序05服务管理

目录 1 设计数据源2 后台管理3 后端API4 调用API总结 家政预约小程序的核心是展示家政公司提供的各项服务的能力&#xff0c;比如房屋维护修缮&#xff0c;家电维修&#xff0c;育婴&#xff0c;日常保洁等。用户在选择家政服务的时候&#xff0c;价格&#xff0c;评价是影响用…...

Django自定义命令

Django自定义命令 我们知道&#xff0c;Django内部内置了很多命令&#xff0c;例如 python manage.py runserver python manage.py makemigrations python manage.py migrate我们可以在python控制台中查看所有命令 我们也可以自定义命令&#xff0c;让python manage.py执行…...

详解VLSM技术

在现代网络设计中&#xff0c;如何高效地分配和管理IP地址是一个关键问题。传统的子网划分方法虽然简单&#xff0c;但在实际应用中常常导致IP地址的浪费。为了应对这一问题&#xff0c;VLSM&#xff08;Variable Length Subnet Mask&#xff0c;可变长子网掩码&#xff09;技术…...