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

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

亲爱的读者们👋

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

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

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

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

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


文章目录

  • 一、ipmi_exporter概述📘
  • 二、安装ipmi_exporter💾
    • 2.1 访问ipmi_exporter官方网站 🌐
    • 2.2 选择适合的版本🔍
    • 2.3 下载ipmi_exporter⬇️
    • 2.4 解压安装包📂
    • 2.5 运行ipmi_exporter🚀
  • 三、ipmi_exporter指标和配置详解📖
    • 3.1 ipmi_remote.yml
    • 3.2 ipmi_exporter.service
  • 四、实战演练:生产环境搭建指南🔨
    • 4.1 安装freeipmi并添加权限
      • 4.1.1 安装ipmitool 并加载相应模块
      • 4.1.2 给deploy用户添加freeipmi的执行权限
    • 4.2 部署管理ipmi_exporter
      • 4.2.1 创建普通用户管理ipmi_exporter👤
      • 4.2.2 解压ipmi_exporter.tar.gz📦
      • 4.2.3 将ipmi_exporter集成到Prometheus配置中✂️
      • 4.2.4 更改ipmi_exporter软件包名称✂️
      • 4.2.5 创建ipmi_remote.yml文件
      • 4.2.6 编辑ipmi_exporter.service文件📝
      • 4.2.7 启动ipmi_exporter.service🔌
      • 4.2.8 查看服务是否正常启动🔍
  • 相关资料下载地址📚

一、ipmi_exporter概述📘

定义
  ipmi_exporter是一个用于收集物理机信息的工具,它是Prometheus监控系统中的一个组件。其主要作用是通过IPMI(Intelligent Platform Management Interface,智能平台管理接口)协议,从支持IPMI的设备上收集硬件相关的监控数据,并将这些数据转换为Prometheus可以理解的格式,从而实现对物理服务器的硬件监控。

功能
  数据收集:它能够通过IPMI协议从远程物理机上收集各种硬件指标,如温度、电压、风扇速度等。

  数据转换:收集到的数据会被转换为Prometheus监控系统的标准格式,即metrics格式,这样Prometheus就能轻松地抓取和处理这些数据。

  远程监控支持:支持远程收集数据,这意味着无需在每台物理机上安装ipmi_exporter,只需在中心位置部署,即可监控多个远程服务器。

  灵活性:一个exporter实例可以监控多个IPMI接口,这减少了资源消耗并提高了监控效率。

  安全性:支持TLS加密和基本认证,确保监控数据在传输过程中的安全性。

应用场景
  数据中心监控:在大型数据中心中,有大量的物理服务器需要监控。ipmi_exporter能够帮助管理员实时监控这些服务器的硬件状态,如温度、电压和风扇速度等关键指标,从而确保服务器的稳定运行。

  远程故障排查:当服务器出现故障时,管理员可能无法直接访问服务器。此时,ipmi_exporter可以通过远程收集硬件数据,帮助管理员快速定位并解决问题。

  自动化运维:结合Prometheus的Alertmanager,ipmi_exporter可以自动化处理硬件警告。例如,当某个硬件指标超出预设阈值时,系统可以自动重启有问题的设备或触发通知,从而减少人工干预的需要并提高运维效率。

二、安装ipmi_exporter💾

注意事项和常见问题
  1.环境配置:确保服务器支持IPMI协议,并已启用。检查服务器的IPMI配置,包括IP地址、用户名和密码,确保可以远程访问。

  2.依赖安装:ipmi_exporter依赖于freeipmi库,因此在安装前需要确保系统上已安装freeipmi。安装freeipmi时,可以根据操作系统使用相应的包管理器,如apt-get install freeipmi(Debian/Ubuntu)或yum install freeipmi(CentOS/RHEL)。

  3.下载与安装:从GitHub的官方仓库下载ipmi_exporter的最新版本。根据需要下载对应的发行版,解压后即可使用。

  4.配置文件:如果需要监控远程服务器,需配置ipmi_remote.yml文件,指定目标服务器的IPMI地址、用户名和密码。确保配置文件中的信息准确无误,以避免连接失败。

  5.启动与运行:使用nohup或其他方式在后台启动ipmi_exporter,确保服务持续运行。启动后,可以通过访问指定的HTTP端口(默认为9290)来验证ipmi_exporter是否成功运行。

2.1 访问ipmi_exporter官方网站 🌐

  • 打开浏览器,访问ipmi_exporter的官方下载页面,通常位于Github官方网站的ipmi_exporter下:https://github.com/prometheus-community/ipmi_exporter/releases

2.2 选择适合的版本🔍

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

2.3 下载ipmi_exporter⬇️

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

2.4 解压安装包📂

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

2.5 运行ipmi_exporter🚀

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

三、ipmi_exporter指标和配置详解📖

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

注意:

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

3.1 ipmi_remote.yml

modules:default:user: "default_user"pass: "example_pw"driver: "LAN_2_0"privilege: "user"timeout: 10000collectors:- bmc- ipmi- chassisexclude_sensor_ids:- 2- 29- 32- 50- 52- 55dcmi:user: "admin_user"pass: "another_pw"privilege: "admin"driver: "LAN_2_0"collectors:- dcmithatspecialhost:user: "some_user"pass: "secret_pw"privilege: "admin"driver: "WORK"collectors:- ipmi- selworkaround_flags:- discretereadingcustom_args:ipmi:- "--bridge-sensors"advanced:user: "some_user"pass: "secret_pw"privilege: "admin"driver: "WORK"collectors:- ipmi- selcollector_cmd:ipmi: sudosel: sudocustom_args:ipmi:- "ipmimonitoring"sel:- "ipmi-sel"
  • default
    • user: “default_user”
        用于连接IPMI 设备的用户名
    • pass: “example_pw”
        用于连接IPMI 设备的密码
    • driver: “LAN_2_0”
        IPMI 协议的版本或类型。“LAN_2_0” 表示使用 IPMI v2.0 协议进行通信
    • privilege: “user”
        IPMI 用户的权限级别。“user” 权限通常允许基本的监控和读取操作,一般不允许进行配置更改
    • timeout: 10000
        连接超时时间,单位是毫秒
    • collectors: [ “bmc”,“ipmi”,“chassis” ]
        指定要启用的数据采集器列表。这些采集器决定了 ipmi_exporter 从 IPMI 设备中收集哪些数据。在提供的配置示例中,启用了 bmc(基板管理控制器信息)、ipmi(IPMI 设备信息)、chassis(机箱状态信息)等采集器,大家可以根据需要启用或禁用特定的采集器
    • exclude_sensor_ids:
        一个列表,包含不希望监控的传感器 ID。在提供的配置中,ID 为 2、29、32、50、52 和 55 的传感器将被排除在监控之外。这可以用于过滤掉不重要或不需要监控的传感器数据。
  • dcmi
    • user: “admin_user”
        用于连接到IPMI接口的用户名
    • pass: “another_pw”
        与用户名对应的密码。这里的密码是"another_pw"
    • privilege: “admin”
        定义了IPMI会话的权限级别。在此配置中,它被设置为"admin",这意味着该用户具有更高的权限,可以执行更广泛的操作,包括配置更改等
    • driver: “LAN_2_0”
        指定用于连接的IPMI驱动类型。"LAN_2_0"表示使用IPMI v2.0协议通过局域网进行通信
    • collectors: dcmi
        这是一个列表,指定ipmi_exporter应从IPMI设备收集哪些类型的数据。在此配置中,只启用了dcmi收集器
  • thatspecialhost
    • user: “some_user”
        用于连接到特定IPMI设备的用户名,这里设置为"some_user"。确保该用户名与你的IPMI设备上配置的用户名一致
    • pass: “secret_pw”
        与用户名相对应的密码,此例中为"secret_pw"。你需要确保这个密码正确,以便ipmi_exporter能够成功登录到IPMI设备
    • privilege: “admin”
        用户的权限级别,这里设置为"admin"。管理员权限通常允许用户执行更广泛的监控和管理操作
    • driver: “WORK”
        指定用于连接的IPMI驱动类型
    • collectors: [ “ipmi”,“sel” ]
        指定ipmi_exporter应从IPMI设备收集的数据类型。在这个配置中,启用了ipmi和sel两个采集器
    • workaround_flags: [“discretereading”]
        包含用于解决特定IPMI设备兼容性问题的标志
    • custom_args: ipmi: [“–bridge-sensors”]
        允许你指定额外的命令行参数,这些参数将传递给底层的IPMI监控工具(如ipmimonitoring)。在这个配置中,为ipmi采集器指定了一个参数"–bridge-sensors"。这个参数的具体作用取决于底层工具和IPMI设备的实现,通常用于处理或转换传感器数据。
  • advanced
    • user: “some_user”
        用于连接到IPMI设备的用户名
    • pass: “secret_pw”
        与用户名对应的密码
    • privilege: “admin”
         指定用于与IPMI设备通信的驱动类型
    • driver: “WORK”
         一个列表,定义了ipmi_exporter应该从IPMI设备收集哪些类型的数据
    • collectors: [ “ipmi”,“sel” ]
        一个列表,定义了ipmi_exporter应该从IPMI设备收集哪些类型的数据
    • collector_cmd: {“ipmi”: sudo ,“sel”: sudo}
        允许你为不同的采集器指定运行命令的前缀。在这个例子中,ipmi和sel采集器都使用了sudo命令前缀,这意味着ipmi_exporter会尝试以超级用户权限运行这些采集器。这是因为某些操作需要更高的权限才能执行
    • custom_args: {“ipmi”: [“ipmimonitoring”],“sel”: [“ipmi-sel”]}
        允许为特定的采集器提供自定义的命令行参数

3.2 ipmi_exporter.service

  • - -config.file=CONFIG.FILE
      指定配置文件的路径。这个配置文件包含了如何连接到 IPMI 设备的信息,比如设备的 IP 地址、用户名、密码等。CONFIG.FILE 应该替换为你的实际配置文件路径。
  • - -freeipmi.path=FREEIPMI.PATH
      指定 freeipmi 工具的路径ipmi_exporter 依赖于 freeipmi 工具来收集 IPMI 数据。如果你已经把 freeipmi 安装到了系统的 PATH 环境变量中,那么不需要设置这个参数。FREEIPMI.PATH 应该替换为 freeipmi 工具的实际路径。
  • - -[no-]web.systemd-socket
      一个布尔标志,用于控制是否使用 systemd socket 激活。如果你的 ipmi_exporter 是通过 systemd socket 激活的,那么应该启用这个标志。加上 no- 前缀会禁用这个选项,即不使用 systemd socket 激活。
  • - -web.listen-address=:9290
      指定 ipmi_exporter 的 HTTP 服务监听地址和端口。:9290 表示监听所有 IPv4 和 IPv6 地址的 9290 端口。你可以根据需要更改端口号或绑定到特定的 IP 地址。
  • - -web.config.file=“”
      要使用 TLS 和/或基本身份验证,需要传递配置文件使用参数。

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

4.1 安装freeipmi并添加权限

4.1.1 安装ipmitool 并加载相应模块

yum -y install ipmitool freeipmimodprobe ipmi_msghandler
modprobe ipmi_devintf
modprobe ipmi_poweroff
modprobe ipmi_si
modprobe ipmi_watchdog

4.1.2 给deploy用户添加freeipmi的执行权限

cat >> /etc/sudoers <<EOF
deploy ALL=(ALL) NOPASSWD:/usr/sbin/ipmimonitoring,/usr/sbin/ipmi-sensors,/usr/sbin/ipmi-dcmi,/usr/sbin/ipmi-raw,/usr/sbin/bmc-info,/usr/sbin/ipmi-chassis,/usr/sbin/ipmi-sel
EOF

4.2 部署管理ipmi_exporter

4.2.1 创建普通用户管理ipmi_exporter👤

useradd deploy

4.2.2 解压ipmi_exporter.tar.gz📦

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

tar xvf ipmi_exporter-1.8.0.linux-amd64.tar.gz -C /home/deploy/

4.2.3 将ipmi_exporter集成到Prometheus配置中✂️

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

  - job_name: 'ipmi_exporter'static_configs:- targets:- targets: ["localhost:9290"]labels:exporter: ipmi_exporter

4.2.4 更改ipmi_exporter软件包名称✂️

mv ipmi_exporter-1.8.0.linux-amd64 /home/deploy/ipmi_exporter

4.2.5 创建ipmi_remote.yml文件

vi /home/deploy/ipmi_exporter/ipmi_remote.yml

modules:10.131.16.137:		# ipmi地址user: "ipmi_user"	# ipmi用户名pass: "ipmi_passwod"   # ipmi密码privilege: "user"driver: "LAN_2_0"collectors:- bmc- ipmi- dcmi- chassis- selcustom_args:bmc:- "bmc-info"ipmi:- "ipmimonitoring"dcmi:- "ipmi-dcmi"chassis:- "ipmi-chassis"sel:- "ipmi-sel"

4.2.6 编辑ipmi_exporter.service文件📝

cat > /etc/systemd/system/ipmi_exporter.service <<EOF
[Unit]
Description=Ipmi Exporter
After=network.target[Service]
Type=simple
User=deploy
Group=deploy
ExecStart=/home/deploy/ipmi_exporter/ipmi_exporter\
--graphite.mapping-config=/home/deploy/ipmi_exporter/ipmi_exporter \
--config.file=ipmi_remote.yml \
--freeipmi.path=/usr/local/sbin/ \
--web.listen-address=:9290
ExecReload=/bin/kill -HUP
Restart=on-failure[Install]
WantedBy=multi-user.target
EOF

4.2.7 启动ipmi_exporter.service🔌

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

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

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

相关资料下载地址📚

  • 官方文档: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:一站式监控实战指南】第15天:ipmi_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

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

STM32F103借助ESP8266连接网络

ESP8266配置 STM32F103本身是不具备联网功能的&#xff0c;所以我们必须借助其他单片机来进行联网&#xff0c;然后让STM32与联网单片机通信&#xff0c;就可以实现STM32联网了。 本文借助的是ESP8266模块&#xff0c;其通过UART协议与STM32通信&#xff08;http://t.csdnimg.c…...

Feature Manipulation for DDPM based Change Detection

基于去噪扩散模型的特征操作变化检测 文章提出了一种基于去噪扩散概率模型&#xff08;DDPM&#xff09;的特征操作变化检测方法。变化检测是计算机视觉中的经典任务&#xff0c;涉及分析不同时间捕获的图像对&#xff0c;以识别场景中的重要变化。现有基于扩散模型的方法主要…...

第十三届蓝桥杯国赛大学B组填空题(c++)

A.2022 动态规划 AC; #include<iostream> #define int long long using namespace std; int dp[2050][15]; //dp[i][j]:把数字i分解为j个不同的数的方法数 signed main(){dp[0][0]1;for(int i1;i<2022;i){for(int j1;j<10;j){//一种是已经分成j个数,这时只需每一个…...

conda源不能用了的问题

conda旧没用了&#xff0c;不知道什么原因&#xff0c;安装源出问题&#xff0c;报如下错&#xff1a; Loading channels: failedUnavailableInvalidChannel: HTTP 404 NOT FOUND for channel anaconda/pkgs/main <https://mirrors.aliyun.com/anaconda/pkgs/main>The c…...

【C#】自定义List排序规则的两种方式

目录 1.系统排序原理 2.方式一&#xff1a;调用接口并重写 3.方式二&#xff1a;传排序规则函数做参数 1.系统排序原理 当我们对一个List<int>类型的数组如list1排序时&#xff0c;一个轻松的list1.sort();帮我们解决了问题 但是在实际应用过程中&#xff0c;往往我们…...

ANAH数据集- 大模型幻觉细粒度评估工具

大型语言模型&#xff08;LLMs&#xff09;在各种自然语言处理任务中取得了显著的性能提升。然而&#xff0c;它们在回答用户问题时仍面临一个令人担忧的问题&#xff0c;即幻觉&#xff0c;它们会产生听起来合理但不符合事实或无意义的信息&#xff0c;尤其是当问题需要大量知…...

AI前沿技术探索:智能化浪潮下的创新与应用

一、引言 随着科技的不断进步&#xff0c;人工智能&#xff08;AI&#xff09;已成为推动社会发展的重要力量。从自动驾驶汽车到智能医疗诊断&#xff0c;从智能家居到虚拟助手&#xff0c;AI技术正逐渐渗透到我们生活的方方面面。本文旨在探讨AI的前沿技术、创新应用以及未来…...

JVM类加载过程

在Java虚拟机规范中&#xff0c;把描述类的数据从class文件加载到内存&#xff0c;并对数据进行校验、转换解析和初始化&#xff0c;最终形成可以被虚拟机直接使用的java.lang.Class对象&#xff0c;这个过程被称作类加载过程。一个类在整个虚拟机周期内会经历如下图的阶段&…...

如何安装ansible

ansible安装 1、 准备环境----关闭防护墙和selinux 一般用ansible不会少于10台以上 环境: 主机&#xff1a;4台 一个控制节点 3个被控制节点 解析&#xff1a;本地互相解析(所有机器) # vim /etc/hosts 192.168.1.10 ansible-web1 192.168.1.11 ansible-web2 192.168.1.12…...

html+CSS+js部分基础运用11

一、改变新闻网页中的字号 1、设计如图1-1所示的界面&#xff0c;要求当网络访问者选择字号中的【大、中、小】时能实现页面字号大小变化&#xff0c;选择“中”时&#xff0c;页面效果如图1所示。 图1 单击前初始状态页面 图2 单击“中”链接后页面 2、div中内容如下&#x…...

6,串口编程———通过串口助手发送数据,控制led亮灭

//功能&#xff1a;串口助手每次发送数据格式&#xff1a;0000& // 第二个字节控制LED1亮灭 // 第三个字节控制LED2亮灭 // 第四个字节控制LED3亮灭 // 第无个字节控制LED4亮灭 //要求&#xff1a;代码能够一直运行&#xff0c;能够接收多字节数据 上节讲了串口的基本…...

【java】【python】leetcode刷题记录--栈与队列

232 用栈实现队列 题目描述 两个栈模拟队列的思路是利用栈&#xff08;后进先出结构&#xff09;的特性来实现队列&#xff08;先进先出结构&#xff09;的行为。这种方法依赖于两个栈来逆转元素的入队和出队顺序&#xff0c;从而实现队列的功能。 入队操作&#xff08;使用s…...

java并发常见问题

1.死锁&#xff1a;当两个或多个线程无限期地等待对方释放锁时发生死锁。为了避免这种情况&#xff0c;你应该尽量减少锁定资源的时间&#xff0c;按顺序获取锁&#xff0c;并使用定时锁尝试。 2.竞态条件&#xff1a;当程序的行为依赖于线程的执行顺序或输入数据到达的顺序时…...

联芸科技偏高的关联交易:业绩波动性明显,海康威视曾拥有一票否决

《港湾商业观察》施子夫 5月31日&#xff0c;上交所上市审核委员会将召开2024年第14次审议会议&#xff0c;届时将审议联芸科技&#xff08;杭州&#xff09;股份有限公司招股书&#xff08;以下简称&#xff0c;联芸科技&#xff09;的首发上会事项。 据悉&#xff0c;此次系…...

hexo init命令报错:Error: EPERM: operation not permitted, mkdir ‘D:\‘

我用的是git bash通过hexo init安装hexo的&#xff0c;但是报错如下&#xff1a; $ hexo init INFO Cloning hexo-starter https://github.com/hexojs/hexo-starter.git fatal: unable to access https://github.com/hexojs/hexo-starter.git/: HTTP/2 stream 1 was not clos…...

day-37 最大正方形

思路 动态规划&#xff0c;这题主要得弄明白状态转换方程&#xff0c;dp[i][j]表示以&#xff08;i,j&#xff09;为右下角的最大正方形 解题方法 1.首先将第一行和第一列初始化&#xff0c;当对应位置的matrix为’0’时&#xff0c;dp数组对应位置也为零&#xff0c;否则为1 …...

springboot 3.3版本 类数据共享(CDS)提升启动速度 使用方法+Docker打包代码

springboot 3.3 版本已经正式发布&#xff0c;新版本提供了类数据共享&#xff08;CDS&#xff09;功能&#xff0c;通过将类元数据缓存在 Archive&#xff08;归档/存档&#xff09; 文件中&#xff0c;使其可以快速预加载到新启动的 JVM 中&#xff0c;从而帮助缩短 JVM 的启…...

Django 目录

Django 创建项目及应用-CSDN博客 Django 注册应用-CSDN博客 Django 应用的路由访问-CSDN博客 Django templates 存放html目录-CSDN博客 Django 解析路由参数-CSDN博客 Django 用re_path()方法正则匹配复杂路由-CSDN博客 Django 反向解析路由-CSDN博客 Django HttpReques…...

VirtualBox Ubuntu系统硬盘扩容

1、关闭虚拟机&#xff0c;找到需要扩容的硬盘&#xff0c;修改为新的容量80GB&#xff0c;应用保存。 2、打开VM&#xff0c;进入系统&#xff0c;使用lsblk可以看到硬盘容量已经变为80GB&#xff0c;但硬盘根分区还没有扩容&#xff0c;使用df查看根文件系统也没有扩容。 [19…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...