Prometheus服务器、Prometheus被监控端、Grafana、监控MySQL数据库、自动发现概述、配置自动发现、Alertmanager

news2025/4/19 7:43:57

目录

Prometheus概述

部署Prometheus服务器

环境说明:

配置时间

安装Prometheus服务器

添加被监控端

部署通用的监控exporter

Grafana

概述

部署Grafana

展示node1的监控信息

监控MySQL数据库

配置MySQL

配置mysql exporter

配置mysql exporter

配置prometheus监控mysql

自动发现机制

概述

基于文件自动发现

修改Prometheus使用自动发现

配置web2接受Prometheus监控

Alertmanager

概述

Alertmanager特性

部署Alertmanager

部署

配置文件

Prometheus与Alertmanager对接

配置Alertmanager通过邮件发送告警


Prometheus概述

  • Prometheus是一个开源系统监控和警报工具包,最初由 SoundCloud构建。
  • 也是一款监控软件,也是一个时序数据库。Prometheus 将其指标收集并存储为时间序列数据,即指标信息与记录时的时间戳以及称为标签的可选键值对一起存储。
  • 主要用在容器监控方面,也可以用于常规的主机监控。
  • 使用google公司开发的go语言编写。
  • Prometheus是一个框架,可以与其他组件完美结合。

部署Prometheus服务器

环境说明:

  • Prometheus:192.168.88.5
  • web1:192.168.88.100

配置时间

# 1. 查看时区

[root@prometheus ~]# timedatectl 

               Local time: Sun 2023-01-01 11:15:11 CST

           Universal time: Sun 2023-01-01 03:15:11 UTC

                 RTC time: Sun 2023-01-01 03:15:11

                Time zone: Asia/Shanghai (CST, +0800)

System clock synchronized: no

              NTP service: inactive

          RTC in local TZ: no


# 2. 如果时区不正确,则改为正确的时区

[root@prometheus ~]# timedatectl set-timezone Asia/Shanghai


# 3. 查看时间

[root@prometheus ~]# date


# 4. 如果时间不正确,则改为正确的时间

[root@prometheus ~]# date -s "年月日 时:分:秒"

安装Prometheus服务器

  • 拷贝Prometheus相关软件包到服务器
  • 解压即部署
[root@prometheus ~]# cd prometheus_soft/

[root@prometheus prometheus_soft]# tar xf prometheus-2.37.5.linux-amd64.tar.gz 

[root@prometheus prometheus_soft]# mv prometheus-2.37.5.linux-amd64 /usr/local/prometheus
  • 配置文件

    • 配置文件中包含三个配置块:globalrule_filesscrape_configs
    • global块控制 Prometheus 服务器的全局配置。我们有两个选择。第一个,scrape_interval控制 Prometheus 抓取目标的频率。您可以为单个目标覆盖它。在这种情况下,全局设置是每 15 秒抓取一次。该evaluation_interval选项控制 Prometheus 评估规则的频率。Prometheus 使用规则来创建新的时间序列并生成警报。
    • rule_files块指定我们希望 Prometheus 服务器加载的任何规则的位置。现在我们还没有规则。
    • 最后一个块,scrape_configs控制 Prometheus 监控的资源。由于 Prometheus 还将有关自身的数据公开为 HTTP 端点,因此它可以抓取和监控自身的健康状况。在默认配置中,有一个名为 的作业prometheus,用于抓取 Prometheus 服务器公开的时间序列数据。该作业包含一个单一的、静态配置的目标,即localhost的9090端口。Prometheus期望度量在/metrics路径上的目标上可用,所以这个默认作业是通过 URL 抓取的:http://localhost:9090/metrics。
  • 编写服务启动文件并启动服务

[root@prometheus ~]# vim /usr/lib/systemd/system/prometheus.service

[Unit]

Description=Prometheus Monitoring System

After=network.target


[Service]

ExecStart=/usr/local/prometheus/prometheus \

  --config.file=/usr/local/prometheus/prometheus.yml \

  --storage.tsdb.path=/usr/local/prometheus/data/


[Install]

WantedBy=multi-user.target


# 启动服务

[root@prometheus prometheus_soft]# systemctl daemon-reload 

[root@prometheus prometheus_soft]# systemctl enable prometheus.service --now

[root@prometheus prometheus_soft]# ss -tlnp | grep :9090

LISTEN 0      128                *:9090             *:*    users:(("prometheus",pid=4396,fd=7)) 
  • 访问web页面:http://192.168.88.5:9090/

  • 查看监控自身的数据,如分配置给Prometheus运行的内存数量

添加被监控端

  • 监控方式:

    • 拉取:pull。监控端联系被监控端,采集数据
    • 推送:push。被监控端主动把数据发给监控端。在prometheus中,push的方式需要额外的组件pushgateway
  • 被监控端根据自身运行的服务,可以运行不同的exporter(被监控端安装的、可以与Prometheus通信,实现数据传递的软件)

  • exporter列表:Exporters and integrations | Prometheus

部署通用的监控exporter

  • node-exporter用于监控硬件和系统的常用指标
  • exporter运行于被监控端,以服务的形式存在。每个exporter所使用的端口号都不一样。
  • 在web1[192.168.88.100]上部署node exporter
# 1. 拷贝node_exporter到web1

[root@prometheus ~]# scp prometheus_soft/node_exporter-1.5.0.linux-amd64.tar.gz 192.168.88.100:/root/


# 2. 解压即部署

[root@web1 ~]# tar xf node_exporter-1.5.0.linux-amd64.tar.gz 

[root@web1 ~]# mv node_exporter-1.5.0.linux-amd64 /usr/local/node_exporter


# 3. 创建服务文件,并启动服务

[root@web1 ~]# vim /usr/lib/systemd/system/node_exporter.service

[Unit]

Description=node_exporter

After=network.target


[Service]

Type=simple

ExecStart=/usr/local/node_exporter/node_exporter


[Install]

WantedBy=multi-user.target


[root@web1 ~]# systemctl daemon-reload 

[root@web1 ~]# systemctl enable node_exporter.service --now

[root@web1 ~]# ss -tlnp | grep :9100

LISTEN 0      128                *:9100             *:*    users:(("node_exporter",pid=7371,fd=3)) 
  • 在Prometheus服务器上添加监控节点
# 1. 修改配置文件,追加以下内容。特别注意缩进

[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml 

...略...

  - job_name: "web1"

    static_configs:

      - targets: ["192.168.88.100:9100"]

      

# 2. 重启服务

[root@prometheus ~]# systemctl restart prometheus.service 
  • 查看添加结果

Grafana

概述

  • Grafana是一款开源的、跨平台的、基于web的可视化工具
  • 展示方式:客户端图表、面板插件
  • 数据源可以来自于各种源,如prometheus

部署Grafana

  • 装包、启服务
[root@prometheus ~]# yum install -y prometheus_soft/grafana-enterprise-9.3.2-1.x86_64.rpm

[root@prometheus ~]# systemctl enable grafana-server.service --now
  • 初始化。访问http://192.168.88.5:3000。初始用户名和密码都是admin。第一次登陆时,要求改密码,本例中密码改为tedu.cn。如果登陆报错,请更换其他浏览器。

  • 修改主题

  • 对接Prometheus

 添加仪表盘

 查看仪表盘

展示node1的监控信息

  • grafana模板下载:Dashboards | Grafana Labs
  • 导入主机监控模板。

 

监控MySQL数据库

配置MySQL

[root@web1 ~]# yum install -y mysql-server

[root@web1 ~]# systemctl enable mysqld --now

[root@web1 ~]# mysql

mysql> create user dbuser1@localhost identified by '123456';

mysql> grant all privileges on *.* to dbuser1@localhost;

mysql> quit

配置mysql exporter

配置mysql exporter
# 1. 安装

[root@prometheus ~]# scp prometheus_soft/mysqld_exporter-0.14.0.linux-amd64.tar.gz 192.168.88.100:/root/

[root@web1 ~]# tar xf mysqld_exporter-0.14.0.linux-amd64.tar.gz 

[root@web1 ~]# mv mysqld_exporter-0.14.0.linux-amd64 /usr/local/mysqld_exporter


# 2. 编写用于连接mysql服务的配置文件

[root@web1 ~]# vim /usr/local/mysqld_exporter/.my.cnf

[client]

host=127.0.0.1

port=3306

user=dbuser1

password=123456


# 3. 创建service文件

[root@web1 ~]# vim /usr/lib/systemd/system/mysqld_exporter.service

[Unit]

Description=mysqld_exporter

After=network.target


[Service]

ExecStart=/usr/local/mysqld_exporter/mysqld_exporter \

--config.my-cnf=/usr/local/mysqld_exporter/.my.cnf


[Install]

WantedBy=multi-user.target


[root@web1 ~]# systemctl daemon-reload

[root@web1 ~]# systemctl enable mysqld_exporter.service --now
配置prometheus监控mysql
  • 修改配置文件,启动服务
# 1. 在配置文件中追加内容

[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml 

...略...

  - job_name: "mysql"

    static_configs:

      - targets: ["192.168.88.100:9104"]

      

# 2. 重启服务

[root@prometheus ~]# systemctl restart prometheus.service 
  • 查看状态

  • 在Grafana中展示数据

 

 ​​​​​

自动发现机制

概述

  • 自动发现是指Prometheus自动对节点进行监控,不需要手动一个一个去添加,和Zabbix的自动发现、自动注册一个道理
  • Prometheus有多种自动发现发现,比如file_sd_configs基于文件自动发现、基于K8S自动发现、基于openstack自动发现、基于consul自动发现等。

基于文件自动发现

  • file_sd_configs实现文件级别的自动发现
  • 使用文件自动发现功能后,Prometheus会定期检查配置文件是否有更新
  • 如果有更新的话就将新加入的节点接入监控,服务端无需重启服务
修改Prometheus使用自动发现
  • 修改Prometheus
# 1. 备份现有配置文件

[root@prometheus ~]# cp /usr/local/prometheus/prometheus.yml ~


# 2. 修改配置文件,删除静态配置,添加自动发现配置

[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml

# 将scrape_configs及以下内容修改为:

 21 scrape_configs:

 22   - job_name: "prometheus"

 23     file_sd_configs:

 24       - refresh_interval: 120s

 25         files:

 26           - /usr/local/prometheus/sd_config/*.yml

 

 # 3. 重启服务

 [root@prometheus ~]# systemctl restart prometheus.service 
  • web中将没有任何监控项目

  • 创建自动发现规则文件
[root@prometheus ~]# mkdir /usr/local/prometheus/sd_config

[root@prometheus ~]# vim /usr/local/prometheus/sd_config/discovery.yml

- targets:

    - 192.168.88.5:9090

    - 192.168.88.100:9100

    - 192.168.88.100:9104
  • 大概2分钟之后,刷新target web页面

配置web2接受Prometheus监控
  • 将web1的node exporter拷贝到web2
[root@web1 ~]# scp -r /usr/local/node_exporter 192.168.88.200:/usr/local/

[root@web1 ~]# scp /usr/lib/systemd/system/node_exporter.service 192.168.88.200:/usr/lib/systemd/system/
  • 启服务
[root@web2 ~]# systemctl daemon-reload 

[root@web2 ~]# systemctl enable node_exporter.service --now
  • 修改自动发现文件
[root@prometheus ~]# vim /usr/local/prometheus/sd_config/discovery.yml 

- targets:

    - 192.168.88.5:9090

    - 192.168.88.100:9100

    - 192.168.88.100:9104

    - 192.168.88.200:9100
  • 大概2分钟之后,刷新target web页面

  • 在Grafana上查看结果

Alertmanager

概述

  • Prometheus服务器中的告警规则向Alertmanager发送告警。然后,Alertmanager管理这些告警,包括静默、抑制、分组以及通过电子邮件、即时消息系统和聊天平台等方法发出通知。

  • 设置告警和通知的主要步骤是:

    • 设置和配置Alertmanager
    • 配置Prometheus与Alertmanager对接
    • 在普罗米修斯中创建告警规则
  • 在Prometheus中一条告警规则主要由以下几部分组成:

    • 告警名称:用户需要为告警规则命名
    • 告警规则:告警规则实际上主要由PromQL进行定义,其实际意义是当表达式(PromQL)查询结果持续多长时间(During)后出发告警

Alertmanager特性

  • Alertmanager处理客户端应用程序(如Prometheus服务器)发送的警报。它负责重复数据删除、分组,并将其路由到正确的接收方集成
  • 分组:分组将性质相似的警报分类到单个通知中。这在较大的停机期间特别有用,此时许多系统同时发生故障,数百到数千个警报可能同时发出。
  • 抑制:抑制是当某一告警发出后,可以停止重复发送由此告警引发的其它告警的机制。
  • 静默提供了一个简单的机制可以快速根据标签对告警进行静默处理。如果接收到的告警符合静默的配置, Alertmanager则不会发送告警通知。静默设置需要在Alertmanager的Web页面上进行设置。

部署Alertmanager

部署
  • 解压即部署
# 1. 解压

[root@prometheus ~]# cd prometheus_soft/

[root@prometheus prometheus_soft]# tar xf alertmanager-0.25.0.linux-amd64.tar.gz 

[root@prometheus prometheus_soft]# mv alertmanager-0.25.0.linux-amd64 /usr/local/alertmanager


# 2. 编写服务文件并启动

[root@prometheus prometheus_soft]# vim /usr/lib/systemd/system/alertmanager.service

[Unit]

Description=alertmanager System


[Service]

ExecStart=/usr/local/alertmanager/alertmanager \

--config.file=/usr/local/alertmanager/alertmanager.yml


[Install]

WantedBy=multi-user.target


[root@prometheus ~]# systemctl daemon-reload 

[root@prometheus ~]# systemctl enable alertmanager.service --now
  • 访问http://192.168.88.5:9093可以访问web配置页面

配置文件
  • Alertmanager的配置主要包含两个部分:路由(route)以及接收器(receivers)。所有的告警信息都会从配置中的顶级路由(route)进入路由树,根据路由规则将告警信息发送给相应的接收器。

  • 在Alertmanager中可以定义一组接收器,比如可以按照角色(比如系统运维,数据库管理员)来划分多个接收器。接收器可以关联邮件,Slack以及其它方式接收告警信息。

  • 目前配置文件中只设置了一个顶级路由route并且定义的接收器为default-receiver。因此,所有的告警都会发送给default-receiver。

  • 因此在Alertmanager配置中一般会包含以下几个主要部分:

    • 全局配置(global):用于定义一些全局的公共参数,如全局的SMTP配置
    • 模板(templates):用于定义告警通知时的模板,如HTML模板,邮件模板等
    • 告警路由(route):根据标签匹配,确定当前告警应该如何处理
    • 接收器(receivers):接收器是一个抽象的概念,它可以是一个邮箱也可以是微信,Slack或者Webhook 等,接收器一般配合告警路由使用
    • 抑制规则(inhibit_rules):合理设置抑制规则可以减少垃圾告警的产生
Prometheus与Alertmanager对接
  • 编辑Prometheus配置文件,修改alerting配置
[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml 

...略...

  8 alerting:

  9   alertmanagers:

 10     - static_configs:

 11         - targets:

 12           - localhost:9093

 ...略...

 [root@prometheus ~]# systemctl restart prometheus.service 
  • 访问:http://192.168.88.5:9090/config,查看配置是否生效

配置Alertmanager通过邮件发送告警
# 1. 备份配置文件

[root@prometheus ~]# cp /usr/local/alertmanager/alertmanager.yml ~


# 2. 修改配置文件

[root@prometheus ~]# vim /usr/local/alertmanager/alertmanager.yml 

global:

  smtp_from: 'zzg@tedu.cn'      # 发件人地址

  smtp_smarthost: 'localhost:25'   # 邮件服务器地址

  smtp_require_tls: false       # 是否使用TLS安全连接

route:

  group_by: ['alertname']

  group_wait: 30s

  group_interval: 5m

  repeat_interval: 1h

  receiver: 'default-receiver'  # 接收器

receivers:

  - name: 'default-receiver'    # 配置接收器为邮件

    email_configs:

      - to: 'root@localhost.localdomain'

inhibit_rules:

  - source_match:

      severity: 'critical'

    target_match:

      severity: 'warning'

    equal: ['alertname', 'dev', 'instance']

    

# 3. 定义告警规则

[root@prometheus ~]# mkdir /usr/local/prometheus/rules

[root@prometheus ~]# vim /usr/local/prometheus/rules/hoststats-alert.rules

groups:

- name: example

  rules:


  - alert: InstanceDown

    expr: up == 0

    for: 5m 

    labels:

      severity: warn

    annotations:

      summary: "Instance {{ $labels.instance }} down"

      description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes."


  - alert: hostMemUsageAlert

    expr: (node_memory_MemTotal - node_memory_MemAvailable)/node_memory_MemTotal > 0.85

    for: 1m 

    labels:

      severity: warn

    annotations:

      summary: "Instance {{ $labels.instance }} MEM usgae high"


# 4. 在Prometheus中声明规则文件位置

[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml 

...略...

 15 rule_files:

 16   - /usr/local/prometheus/rules/*.rules

...略...


# 5. 重启服务

[root@prometheus ~]# systemctl restart alertmanager.service 

[root@prometheus ~]# systemctl restart prometheus.service 


# 6. 安装并启动邮件服务

[root@prometheus ~]# yum install -y postfix mailx

[root@prometheus ~]# systemctl enable postfix --now
  • 查看加载的规则文件

  • 测试告警。
# 1. 将web1关机

[root@web1 ~]# shutdown -h now


# 2. 查看邮件

[root@prometheus ~]# mail

>N  1 zzg@tedu.cn           Sun Jan  1 18:59 227/10404 "[FIRING:1] InstanceDown (192.168.88.200:9100 prometheus warn)"

将告警邮件内容从【<!DOCTYPE ...】这一行到【</html>】复制,粘贴到一个文件中,如文件名为alert.html,用firefox打开,可以得到以下页面:

  • 查看Alertmanager

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

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

相关文章

Linux network namespace 访问外网以及多命名空间通信(经典容器组网 veth pair + bridge 模式认知)

写在前面 整理K8s网络相关笔记博文内容涉及 Linux network namespace 访问外网方案 Demo实际上也就是 经典容器组网 veth pair bridge 模式理解不足小伙伴帮忙指正 不必太纠结于当下&#xff0c;也不必太忧虑未来&#xff0c;当你经历过一些事情的时候&#xff0c;眼前的风景已…

如何写好一个简历

如何编写求职简历 论Java程序员求职中简历的重要性 好简历的作用 在求职过程中&#xff0c;一份好的简历是非常重要的&#xff0c;它甚至可以直接决定能否被面试官认可。一份出色或者说是成功的个人简历&#xff0c;最根本的作用是能让看这份简历的人产生一定要见你的强烈愿…

面试经典150题——长度最小的子数组

​"In the midst of winter, I found there was, within me, an invincible summer." - Albert Camus 1. 题目描述 2. 题目分析与解析 首先理解题意&#xff0c;题目要求我们找到一个长度最小的 连续子数组 满足他们的和大于target&#xff0c;需要返回的是子数组的…

网安常用的三个攻击方式

1.渗透测试执行标准&#xff08;PTES&#xff09; 渗透测试执行标准由7个部分组成&#xff0c;包括前期交互、情报收集、威胁建模、漏洞分析、渗透利用、后渗透、撰写报告。在中国&#xff0c;渗透测试必须经过授权&#xff0c;否则就违背了网络安全法。前期交互主要指开展渗透…

Codeforces Round 113 (Div. 2)E. Tetrahedron(dp、递推)

文章目录 题面链接题意题解代码总结 题面 链接 E. Tetrahedron 题意 从一个顶点出发走过路径长度为n回到出发点的方案总数 题解 考虑dp f [ i ] [ 0 ∣ 1 ∣ 2 ∣ 3 ] f[i][0|1|2|3] f[i][0∣1∣2∣3]:走了i步&#xff0c;现在在j点的方案总数 转移&#xff1a; f [ i ]…

MySQL:从基础到实践(简单操作实例)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 下载前言一、MySQL是什么&#xff1f;二、使用步骤1.引入库2.读入数据 提交事务查询数据获取查询结果总结 下载 点击下载提取码888999 前言 在现代信息技术的世界…

Python实现MACD指标计算:股票技术分析的利器系列(1)

Python实现MACD指标计算&#xff1a;股票技术分析的利器系列&#xff08;1&#xff09; 介绍核心代码&#xff1a;EMA核心代码&#xff1a;MACD200 次交易日的收盘价格完整代码最终运行代码的效果展示DIFDEAMACD 介绍 先看看官方介绍&#xff1a; MACD (平滑异同平均线&#x…

寒假作业-day9

创建新项目 选择芯片 开启调试 配置时钟 时钟树的配置 工程管理 打开项目 编写代码

字节跳动官方出品AI,白嫖使用GPT4!

关注我&#xff0c;紧跟本系列专栏文章&#xff0c;咱们下篇再续&#xff01; 作者简介&#xff1a;魔都技术专家兼架构&#xff0c;多家大厂后端一线研发经验&#xff0c;各大技术社区头部专家博主&#xff0c;编程严选网创始人。具有丰富的引领团队经验&#xff0c;深厚业务架…

搜索专项---多源BFS模型

文章目录 矩阵距离 一、矩阵距离 本题思路: #include <bits/stdc.h>#define x first #define y secondtypedef std::pair<int,int> PII; constexpr int N1010;int n,m; char g[N][N]; int dist[N][N]; std::queue<PII> q;int dx[4] {-1, 0, 1, 0}, dy[4] …

8868体育助力西甲最新积分榜 皇马4球大胜稳坐榜一

西甲联赛第24轮的四场比赛于2月10日全面收官。其中&#xff0c;皇马在主场迎战吉罗纳队&#xff0c;以4-0的大比分击败对手&#xff0c;将领先优势扩大到5分&#xff0c;稳坐西甲榜首&#xff0c;掌握了争冠的主动权。 威尼修斯的世界波为皇马打开胜利之门&#xff0c;第6分钟就…

机器学习系列——(十四)正则化回归

引言 在机器学习领域&#xff0c;正则化回归是一种常用的技术&#xff0c;旨在解决过拟合问题&#xff0c;提高模型的泛化能力。本文将简单探讨正则化回归的概念、类型和应用&#xff0c;帮助读者更好地理解和运用这一重要技术。 一、概念 正则化回归是一种通过引入额外信息&…

【从零到Offer】MySQL最左匹配

前言 ​ 相信大家在日常开发时&#xff0c;也经常能听到“最左匹配”这个词&#xff0c;那么什么是最左匹配呢&#xff1f;本篇文章就带你一起探索“最左匹配”的神奇秘密。 什么是最左匹配 ​ 最左匹配&#xff0c;通常指的是最左前缀匹配原则&#xff0c;即MySQL在检索数据…

本地搭建three.js官方文档

因为three.js官网文档是国外的网站&#xff0c;所以你没有魔法的情况下打开会很慢&#xff0c;这时我们需要在本地搭建一个官方文档便于我们学习查看。 第一步&#xff1a;首先我们先访问GitHub地址 GitHub - mrdoob/three.js: JavaScript 3D Library. 下载不下来的小伙伴们私…

Offer必备算法06_位运算_十道力扣OJ题详解_由易到难

目录 位运算算法原理 ①力扣191. 位1的个数 解析代码 ②力扣338. 比特位计数 解析代码 ③力扣461. 汉明距离 解析代码 ④力扣136. 只出现一次的数字 解析代码 ⑤力扣260. 只出现一次的数字 III 解析代码 ⑥力扣面试题 01.01. 判定字符是否唯一 解析代码 ⑦力扣26…

day 20(补2.5)

fread 函数&#xff1a; 今日练习 C语言面试题5道~ 1. static 有什么用途&#xff1f;&#xff08;请至少说明两种&#xff09; 1) 限制变量的作用域 2) 设置变量的存储域 2. 引用与指针有什么区别&#xff1f; 1) 引用必须被初始化&#xff0c;指针不必。 2) 引用初始…

MYSQL学习笔记:MYSQL存储引擎

MYSQL学习笔记&#xff1a;MYSQL存储引擎 MYSQL是插件式的存储引擎 存储引擎影响数据的存储方式 存储引擎是用来干什么的&#xff0c;innodb和myisam的主要区别–数据存储方式----索引 mysql> show engines; ----------------------------------------------------------…

目标识别,跟踪模块

Tofu5m 是高性价比目标识别跟踪模块&#xff0c;支持可见光视频或红外网络视频的输入&#xff0c;支持视频下的多类型物体检测、识别、跟踪等功能。 产品支持视频编码、设备管理、目标检测、深度学习识别、跟踪等功能&#xff0c;提供多机版与触控版管理软件&#xff0c;为二次…

VLAN间通信

VLAN间通信的三种方法 vlanif接口 最常用&#xff0c;又叫虚拟接口&#xff0c;这种方式一般使用三层交换机实现&#xff0c;它包含路由模块和交换模块&#xff0c;交换模块可以实现剥离和添加VLAN标签,路由模块实现路由功能 VLANif接口 为各自vlan的网关 # interface Vlani…

常见范数介绍

一、在线性代数中&#xff0c;符号 ( ||x|| ) 表示向量 ( x ) 的范数&#xff08;Norm&#xff09;。范数是一个将向量映射到非负值的函数&#xff0c;它衡量了向量的大小或长度。范数可以是多种类型&#xff0c;其中最常见的有&#xff1a; 欧几里得范数&#xff08;L2范数&am…