【云原生】Prometheus整合Alertmanager告警规则使用详解

目录

一、前言

二、Altermanager概述

2.1 什么是Altermanager

2.2 Altermanager使用场景

三、Altermanager架构与原理

3.1 Altermanager使用步骤

3.2 Altermanager工作机制

3.3 Altermanager在Prometheus中的位置

四、Altermanager部署与接入Prometheus

4.1 Altermanager部署过程

4.1.1 获取安装包

4.1.2 安装包解压

4.1.3 启动alertmanager服务

4.1.4 访问Altermanager

4.1.5 Altermanager核心配置文件介绍

4.2 Altermanager接入Prometheus

4.2.1 配置alert target

4.2.2 配置Altermanager监控指标

4.2.3 访问Prometheus

4.3 监控node_exporter

4.3.1 创建rule(规则)目录和规则文件

4.3.2 修改prometheus.yml

4.3.3 重启Prometheus

4.3.4 测试告警规则

五、Alertmanager配置告警推送

5.1 Alertmanager配置邮箱告警通知

5.1.1 注册QQ邮箱

5.1.2 开启SMTP服务

5.1.3 配置alertmanager.yml

5.1.4 重载配置文件

5.1.5 效果验证

5.2 Alertmanager配置钉钉告警通知

5.2.1 配置钉钉机器人

5.2.2 获取钉钉webhook插件包

5.2.3 修改配置文件信息并启动服务

5.2.4 使用docker的方式安装

5.2.5 修改altermanager的配置

5.2.6 重启altermanager服务

5.2.7 补充说明

六、写在文末


一、前言

在之前的文章中我们介绍了Prometheus的搭建与使用,以及如何配置监控常用的中间件,并基于Grafana对监控的服务指标信息进行可视化展现,接下来问题来了,人们不可能24小时都盯着展示的大屏看数据,是否有某种机制,或者某种方式,比如可以配置某项指标的阈值,一旦当这个指标达到阈值时,能通过一些通知方式将告警信息主动推送给相应的人员呢?这就是本文要分享的关于AlterManager的使用。

二、Altermanager概述

2.1 什么是Altermanager

Alertmanager是Prometheus监控系统的一个重要组成部分,主要用于处理由Prometheus服务器生成的警报。虽然Prometheus本身能够检测到指标阈值的违反情况并触发警报,但它并不直接负责警报的后续处理和通知。这就是Alertmanager介入的地方。具体来说,其主要功能特性如下:

  • 警报接收与处理:Alertmanager接收来自Prometheus的警报,并对其进行进一步的处理,包括去重、分组、抑制和静默等;

  • 去重:同一警报可能会因为网络问题或Prometheus的重试机制而被重复发送,Alertmanager会确保每个警报只被处理一次;

  • 分组:Alertmanager可以将类似的警报合并在一起,减少警报的总数量,避免在大量警报出现时造成通知过载;

  • 抑制与静默:Alertmanager支持设置抑制规则,在一定时间内不发送重复的警报,以及静默规则,用于在特定时间或条件下暂停警报的发送,例如在预定的维护窗口期间;

  • 路由:警报可以按照定义好的路由规则被发送到不同的接收者,这使得可以针对不同的警报类型或严重级别选择合适的响应团队;

  • 通知:Alertmanager支持多种通知渠道,包括电子邮件、短信、Slack、Telegram、Webhooks等,以确保警报可以快速准确地送达相关人员;

2.2 Altermanager使用场景

Alertmanager 在多种场景下都能发挥关键作用,特别是在企业级应用和云原生环境中。以下是 Alertmanager 的一些典型使用场景:

  • 生产环境监控

    • Alertmanager 可与 Prometheus 或其他监控系统集成,用于实时监控生产环境中的各项指标,如服务器负载、应用程序性能、数据库状态等。当检测到异常或指标超过预设阈值时,Alertmanager 能及时发送预警通知,帮助运维人员迅速定位和解决问题,确保业务连续性和系统稳定性。

  • 自动化运维

    • 通过 Alertmanager,运维团队可以建立自动化工作流,比如,在检测到某个服务故障后自动重启服务,或者在资源利用率过高时自动扩展资源。这种自动化响应可以减少人工干预的需求,提升系统自愈能力。

  • 事件响应和管理

    • 当系统发生故障时,Alertmanager 可以将警报按严重程度和类型分发给相应的团队成员,确保每个人收到与其职责相关的信息。这样可以加快事件响应速度,减少平均修复时间(MTTR),并有助于事件的高效管理。

  • 合规性和审计

    • 在金融、医疗等对数据安全有严格要求的行业,Alertmanager 可以用于监控合规性指标,如数据泄露风险、访问控制违规等。一旦发现潜在的合规问题,立即通知合规团队采取行动。

  • 用户体验监控

    • 对于面向用户的在线服务,Alertmanager 可以监控用户请求的延迟、错误率等指标,确保良好的用户体验。一旦检测到可能影响用户体验的问题,可以立即通知前端或后端开发团队进行优化。

  • 容量规划

    • Alertmanager 可以帮助监控资源使用趋势,预测未来需求。如果发现资源接近耗尽,可以提前发出警告,以便进行容量规划和资源分配调整。

  • 节假日和非工作时间的警报管理

    • Alertmanager 支持设置警报抑制规则,可以根据时间表自动开启或关闭警报,避免在非工作时间产生不必要的警报,同时确保紧急警报仍然能够得到处理。

  • 第三方服务集成

    • Alertmanager 可以通过 Webhooks 或其他接口与第三方服务(如 PagerDuty、OpsGenie、钉钉、企业微信等)集成,将警报信息发送到团队常用的消息平台,提高警报的可见性和响应速度。

 通过以上场景,可以看到 Alertmanager 是一个非常灵活且强大的工具,它能够适应不同规模和类型的组织的监控需求,有效提升系统的监控效率和运维管理水平。

三、Altermanager架构与原理

3.1 Altermanager使用步骤

Altermanager在生产使用时,主要分为下面几步:

  • 部署Alertmanager;

  • 配置告警接收人;

  • 配置Prometheus与Alertmanager通信;

  • 在Prometheus中创建告警规则;

  • 配置生效并触发告警规则;

3.2 Altermanager工作机制

如下是Alertmanager的工作原理图:

Prometheus发出告警时主要分两步:

  • Prometheus服务器按告警规则(rule_files配置块),将报警信息发送至Alertmanager(即告警规则是在Prometheus上定义的);

  • Alertmanager 接收并管理这些报警,包括去重(Deduplicating)、分组(Grouping)、沉默(silencing),抑制(inhibition),聚合(aggregation),最终通过电子邮件发出通知,对呼叫通知系统,以及即时通讯平台,将告警通知路由(route)给对应联系人。

事实上,在Alertmanager 的内部处理过程中远比这两步要复杂,为了深入了解原理,下面是更详细的处理过程:

  • 警报接收

    • Alertmanager 从 Prometheus server 接收警报。当 Prometheus 中定义的警报规则被触发时,Prometheus 会生成警报并发送给 Alertmanager。

  • 警报去重

    • Alertmanager 会对接收到的警报进行去重处理,避免同一警报被多次处理或通知,这是通过检查警报的标签组合来实现的。

  • 警报分组

    • Alertmanager 能够将具有相似标签的警报进行分组,这样可以减少警报数量,避免重复信息,并且使得警报更加易于管理。

  • 警报抑制

    • 根据配置,Alertmanager 可以抑制某些警报,防止在特定情况下警报的过度通知。例如,在大规模故障时,可能会抑制较低优先级的警报。

  • 警报静默

    • 用户可以设置静默规则,用来临时忽略特定警报,通常在计划的维护窗口期间使用。

  • 警报状态跟踪

    • Alertmanager 会跟踪警报的状态,包括警报是否已被解决。当 Prometheus 发现警报条件不再满足时,它会发送一个状态为“resolved”的警报给 Alertmanager。

  • 警报路由

    • Alertmanager 使用路由规则来决定警报应该发送给哪些接收者。这些规则可以根据警报的标签和状态来确定警报的接收者。

  • 警报通知

    • 根据路由规则,Alertmanager 会将警报发送给指定的接收者。接收者可以是电子邮件、短信、Slack、PagerDuty、钉钉、企业微信等。

  • 警报恢复确认

    • Alertmanager 在一段时间内未接收到 Prometheus 的警报更新,会自动将警报状态设为“恢复”(resolved),这个时间间隔可以在配置文件中设置。

  • 用户交互

    • Alertmanager 提供了一个用户界面和 API,允许管理员查看警报状态、管理静默规则、查询警报历史记录等。

通过上面的步骤不难看出,Alertmanager 整个工作流程的设计目的是为了提高警报的可靠性、减少警报噪声、确保警报的及时通知以及提供有效的警报管理手段。通过上述流程,Alertmanager 成为了 Prometheus 监控体系中不可或缺的一部分,帮助用户更好地理解和应对监控系统的警报。

3.3 Altermanager在Prometheus中的位置

如下是关于Prometheus的整体架构图,Altermanager位于右上侧,简单来说,与Prometheus集成之后,一旦Prometheus收集到来自监控主机的指标信息满足告警规则,就会将其push到Altermanager。

具体来说如下所示:

告警能力在Prometheus架构中被划分为两个部分,在上图中有所展示,通过在Prometheus配置文件中定义AlertRule(告警规则),Prometheus会周期性的进行告警规则计算,如果满足告警规则触发条件,就会向Altermanager发送告警信息。

Altermanager作为一个独立组件,负责接收处理来自Prometheus Server(也可以是其他客户端程序)的告警信息。接收到之后,Altermanager可以对这些告警信息进一步的处理,比如收到大量的重复告警信息时能够消除重复告警,同时对告警信息进行分组并且路由到正确的通知方。

同时,Prometheus内置了对邮件,Slack等多种通知方式的支持,还支持与Webhook的集成,从而支持更多的定制化场景,比如目前还支持钉钉,这样用户就可以通过Webhook与钉钉机器人进行集成,从而通过钉钉接收告警通知信息,同时,Altermanager还提供了静默告警和告警抑制功能对钉钉的告警行为进行优化。

四、Altermanager部署与接入Prometheus

通过上面的介绍初步了解了Altermanager的基本理论,接下来通过实际操作演示如何部署Altermanager服务,以及如何接入Prometheus进行使用。

4.1 Altermanager部署过程

参考下面的操作步骤

4.1.1 获取安装包

安装包下载地址:https://prometheus.io/download/

可以直接在服务器上,使用下面的命令下载:

wget https://github.com/prometheus/alertmanager/releases/download/v0.27.0/alertmanager-0.27.0.linux-amd64.tar.gz

4.1.2 安装包解压

使用下面的命令解压安装包

tar -zxvf alertmanager-0.27.0.linux-amd64.tar.gz

4.1.3 启动alertmanager服务

进入安装包目录,使用下面的命令后台启动

cd cd alertmanager-0.27.0.linux-amd64/# 前台启动
./alertmanager --config.file=alertmanager.yml# 后台启动alertmanager,并且重定向输入日志到当前目录的alertmanager.out
nohup ./alertmanager --config.file=alertmanager.yml >> nohup.out 2>&1 &

4.1.4 访问Altermanager

访问:http://IP:9093/,默认端口为 9093,效果如下

同时,也提供了metrics的指标监控端点,如果访问 IP:9093/metrics,可以看到下面的指标信息,通过这个指标监控的端点,可以在后续接入Prometheus进行指标监控时使用

4.1.5 Altermanager核心配置文件介绍

Altermanager主要负责对Prometheus产生的告警进行统一处理,因此在Altermanager的配置中一般包含下面几个主要部分:

核心参数说明:

  • 全局配置(global):

    • 用于定义一些全局的公共参数,例如全局SMTP配置,Slack配置等内容;

  • 模板(templates):

    • 用于定义通知告警时的模板,例如HTML模板,邮件模板等;

  • 告警路由(route):

    • 根据标签匹配,确定当前告警应该如何处理;

  • 接收人(receivers):

    • 接收人是一个抽象概念,它可以是一个邮箱,也可以是微信、Slack或Webhook等,接收人一般配合告警路由使用;

  • 抑制规则(inhibit_rules):

    • 合理设置抑制规则,可以减少垃圾告警的产生;

4.2 Altermanager接入Prometheus

4.2.1 配置alert target

Altermanager与Prometheus集成也很简单,只需要在Prometheus的配置文件中稍改一下配置即可,找到Prometheus的yml文件,如下,只需要放开注释即可,默认是本机的Altermanager,如果是远程部署的Altermanager,更改为相应的IP即可,这一步是为了后续通过Prometheus将告警规则push到Altermanager;

4.2.2 配置Altermanager监控指标

像之前配置node_exporter那样,再在Prometheus的yml中添加一个Altermanager的job的配置,如下:

注意:以上配置完成后需要重启Prometheus

4.2.3 访问Prometheus

访问Prometheus控制台,可以看到Altermanager就纳入Prometheus进行指标监控了

4.3 监控node_exporter

在之前的文章中我们介绍了node_exporter以及集成到Prometheus监控本机内存等指标信息,现在假如说使用node_exporter检测到机器的某些指标达到了阈值,需要进行告警,在这种情况下就可以利用Altermanager的告警功能进行集成和配置,参考下面的步骤进行操作;

4.3.1 创建rule(规则)目录和规则文件

prometheus.yml同目录下新建node.yml(文件名称和可以自行修改)

node.yml配置文内容参考如下:

groups:
- name: node_exporter_alert_rulerules:- alert: PrometheusTargetMissingexpr: up == 0for: 1mlabels:severity: criticalannotations:summary: 服务器宕机 (instance {{ $labels.instance }})description: "服务器宕机,或者node exporter未启动\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"- alert: HostOutOfDiskSpaceexpr: (node_filesystem_avail_bytes * 100) / node_filesystem_size_bytes < 5 and ON (instance, device, mountpoint) node_filesystem_readonly == 0for: 10slabels:severity: warningannotations:summary: 主机磁盘空间不足 (instance {{ $labels.instance }})description: "主机磁盘空间不足 (剩余 < 10% )\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"- alert: HostHighCpuLoadexpr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 80for: 0mlabels:severity: warningannotations:summary: CPU使用率过高! (instance {{ $labels.instance }})description: "CPU使用率超过 > 80%\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"- alert: HostOutOfMemoryexpr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 10for: 2mlabels:severity: warningannotations:summary: 内存使用率过高 (instance {{ $labels.instance }})description: "内存使用率过高 (剩余< 10% )\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"

以上是列举了常用的几个关于主机相关的监控规则,比如内存使用率过高,主机磁盘空间等,更多的规则可以参阅相关的资料在这里进行配置即可;

在告警规则文件中,我们可以将一组相关的规则配置定义在一个group下,在每一个group中可以定义多个告警规则,对于一条具体的告警规则来说,主要由下面几部分组成:

  • alert:指定告警规则名称;

  • expr:基于PromQL表达式的告警触发条件,用于计算是否时间序列满足该条件;

  • for:评估等待时间,可选参数,用于表示只有当触发条件持续一段时间后才发告警。而在等待期间,新产生告警的状态为pending;

  • labels:自定义标签,允许用户指定要附加到告警上的一组附加标签;

  • annotations:用于指定一组附加信息,比如用于描述告警详细信息的文字,annotations的内容在告警产生时会一同作为参数发送到Altermanager;

4.3.2 修改prometheus.yml

在Prometheus配置文件中添加下面信息,将上述的规则文件进行加载(当然,也可以通过通配符的方式进行配置):

rule_files:- "node.yml"#- "second_rules.yml"

为了能让Prometheus启用自定义的告警规则,需要在Prometheus的全局配置文件中通过rule_files指定一组告警规则文件的访问路径,Prometheus启动的时候就会自动扫描这些规则路径下规则文件中定义的内容,并且根据这些规则计算是否向外发送通知;

4.3.3 重启Prometheus

重启Prometheus服务,然后再次进入到Prometheus的控制台,在Alert菜单下,就能看到上面的配置那几个规则信息了

展开其中的某一项,可以看到规则的详细信息,和配置文件中的是一致的

补充说明:

在上述的界面展示中,出现了3个状态,INACTIVE,Pending,Firing ,这三个状态在下面的实际操作中会得到体现,表示被监控的服务指标满足了告警规则时的不同状态的切换。

4.3.4 测试告警规则

如何验证上述配置的告警规则是否生效呢?做第一个实验,手动关闭node_exporter服务:

ps -ef|grep node_exporter
kill -9 28634

Prometheus首次检测到满足触发的条件后,由于告警规则中设置了1分钟(for:1m)的等待时间,告警状态从INACTIVE,变为Pending,如下图所示:

kill之前

一分钟之后,如果告警条件持续满足,告警状态将从Pending变为Firing,并且会将告警信息推送给Alertmanager,如下图所示:

此时再次进入到Alertmanager的控制台界面上,可以看到界面上展示出了正在告警的信息

再次启动node-exporter服务,状态过一会儿就又切换回去了

五、Alertmanager配置告警推送

通过上面的操作,可以通过Alertmanager结合Prometheus对监控的指标信息进行规则的预警,事实上,在实际应用中,运维人员希望达到的目的是,当告警规则被触发的时候,能够及时以某种方式通知到相应的人员,才能第一时间对事件现场进行响应和处理,接下来演示下如何配置告警的消息推送。

5.1 Alertmanager配置邮箱告警通知

以QQ邮箱为例进行说明

5.1.1 注册QQ邮箱

如果没有的话可以提前注册一个,略

5.1.2 开启SMTP服务

通过qq邮箱的设置,开启SMTP服务,并获取下图中的授权码,下文配置中会用到

5.1.3 配置alertmanager.yml

在该配置文件中配置如下信息

global:# 在3分钟内未收到新的相同告警,则认为告警已解决resolve_timeout: 3m # QQ邮箱SMTP服务器地址和端口,通常使用465端口,SMTPSsmtp_smarthost: 'smtp.qq.com:465'  # 从这个邮箱发送告警smtp_from: '你的QQ@qq.com'# 发送告警的邮箱账号smtp_auth_username: '你的QQ@qq.com'# 邮箱的第三方授权码,而不是普通密码smtp_auth_password: 'vuqmvptmxowwzdbbec'#根据你的SMTP服务器设置决定是否需要TLS加密smtp_require_tls: false   route:group_by: ['alertname']group_wait: 30sgroup_interval: 5mrepeat_interval: 1h#receiver: 'web.hook'receiver: 'email'receivers:- name: 'email'email_configs:- to: '你的QQ@qq.com'send_resolved: true#抑制规则
inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']

5.1.4 重载配置文件

重启Alertmanager服务,重启完成后,再次进入Alertmanager页面,通过status菜单可以看到,上述配置得邮箱信息就展示出来了

5.1.5 效果验证

仍然以上面配置的node-exporter为例,我们关闭该服务,理论上在1分钟之后Prometheus会检测到服务的宕机信息从而满足触发告警规则条件,从而向Alertmanager推送告警信息,上面配置了邮箱之后,Alertmanager就能将信息发送至接收的邮箱中;

将node-exporter服务kill掉之后,等待1分钟,可以看到node_exporter配置的告警规则被触发,状态也变成了Pending;

同时alertmanager控制台也输出了相应的信息

此时进入个人的QQ邮箱,可以看到一封告警通知邮件

关于邮件的告警推送,也可以采用自定义邮件模板进行配置,网上关于这块的资料也比较多,基于上面的配置简单做下调增即可

5.2 Alertmanager配置钉钉告警通知

接下来演示如何将告警通知通过钉钉进行消息推送

5.2.1 配置钉钉机器人

创建钉钉群,找到群设置中的机器人

点击添加机器人

选择自定义webhook

配置如下信息

  • 注意拷贝上面的Webhook地址和下面的加签信息,后面配置中会用到;

点击完成然后就可以看到,机器人已经创建完成

5.2.2 获取钉钉webhook插件包

alertmanger必须通过webhoo插件才能将告警发送到钉钉/微信/飞书,因此,需要先安装webhook插件,安装方式有二进制、docker和源码,这里直接运行二进制文件

webhook插件官方地址:GitHub - timonwong/prometheus-webhook-dingtalk: DingTalk integration for Prometheus Alertmanager

下载插件

wget https://github.com/timonwong/prometheus-webhook-dingtalk/releases/download/v2.1.0/prometheus-webhook-dingtalk-2.1.0.linux-arm64.tar.gz

解压插件安装包

tar xf prometheus-webhook-dingtalk-2.1.0.linux-arm64.tar.gz 

修改目录名称

mv prometheus-webhook-dingtalk-2.1.0.linux-arm64 prometheus-webhook-dingtalk 

5.2.3 修改配置文件信息并启动服务

进入上述webhook的目录,修改yml配置文件,配置信息如下,这里可以暂时先配置一个webhoo即可,其他的可以暂时注释掉

最后使用下面的命令进行启动

./prometheus-webhook-dingtalk --config.file=./config.yml --web.enable-ui &

5.2.4 使用docker的方式安装

如果仍然觉得使用上面插件包的方式弄起来麻烦,可以使用下面的docker-compose的方式做;

创建一个config.yml配置文件

配置如下内容,webhook的信息改为你自己的即可

targets:webhook1:url: https://oapi.dingtalk.com/robot/send?access_token=aa06a9c58dfa03080c46cd243f3e81560e43d66da434d0a84ecbe2954bc58csecret: SEC85684de209427ba29a4d20541e86b62520068ffb3fef2dfca91af2485627c3

创建docker-compose.yml文件

配置如下内容

version: '3.3'
services:webhook: image: timonwong/prometheus-webhook-dingtalk:v2.1.0container_name: prometheus-webhook-dingtalkports: - 8060:8060command: - '--config.file=/etc/prometheus-webhook-dingtalk/config.yml'volumes: - /usr/local/soft/pro/prometheus-webhook-dingtalk/config.yml:/etc/prometheus-webhook-dingtalk/config.yml  - /etc/localtime:/etc/localtime:ro

启动docker服务

使用docker-compose命令启动

docker-compose up -d

使用docker命令检查下容器是否启动

访问8060端点,访问地址:IP:8060,浏览器看到下面的效果说明钉钉的webhook插件服务已经可以使用

5.2.5 修改altermanager的配置

进入altermanager安装目录,找到alertmanager.yml,配置钉钉的webhook信息,如下:

5.2.6 重启altermanager服务

重启之后,模拟5.1中的操作,我们将node_exporter服务进行手动kill,在Prometheus上面可以看到如下信息

等待一分钟之后,由于满足了告警规则的触发条件,此时将告警信息推送到了钉钉的webhook地址,然后再在钉钉群中就能收到通知信息了,如下:

5.2.7 补充说明

上面总结来说做了两个示例演示,一个是通过node_exporter的服务启动和宕机模拟,验证是否能够正常触发告警规则,然后,再通过将告警规则中配置的信息,以邮件或钉消息的方式进行推送,基于此,如果在实际项目中进行应用,只需要参照类似的模式,先定义待监控的指标告警规则,然后配置告警规则被触发之后推送到指定的通知服务,或者webhook地址即可。

六、写在文末

本文通过实际案例详细介绍了Alertnamager的使用,并结合Prometheus配置告警触发规则,将告警信息推送到特定的通知服务,在实际项目中具有一定的实用和参考价值,希望对看到的同学有用,本篇到此结束,感谢观看。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nodejs安装+踩坑报错解决

下载Node.js安装包 官网下载地址&#xff1a;http://nodejs.cn/download/&#xff0c;根据自己电脑选择32位还是64位&#xff0c; 下载地址 选择合适的版本下载 X86是32位的&#xff0c;X64是64位的&#xff0c;我们一般是下载win版X64的msi文件的是点击可以直接启动安装程序的…

深入Redis集群部署:从安装配置到测试验证的完整指南

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作…

恶补,先验分布,后验分布 ,似然估计

恶补&#xff0c;打一遍增加印象 先验分布后验分布&#xff0c;似然估计 声明&#xff1a;仅记录个人学习&#xff0c;并无其他用途。 先验分布 后验分布&#xff0c; 似然估计 隔壁小哥的故事&#xff1a; 隔壁小哥要去15公里外的一个公园里玩&#xff0c;小哥可以选择步行…

SimMIM:一个类BERT的计算机视觉的预训练框架

1、前言 呃…好久没有写博客了&#xff0c;主要是最近时间比较少。今天来做一期视频博客的内容。本文主要讲SimMIM&#xff0c;它是一个将计算机视觉&#xff08;图像&#xff09;进行自监督训练的框架。 原论文&#xff1a;SimMIM&#xff1a;用于掩码图像建模的简单框架 (a…

IDEA的常见代码模板的使用

《IDEA破解、配置、使用技巧与实战教程》系列文章目录 第一章 IDEA破解与HelloWorld的实战编写 第二章 IDEA的详细设置 第三章 IDEA的工程与模块管理 第四章 IDEA的常见代码模板的使用 第五章 IDEA中常用的快捷键 第六章 IDEA的断点调试&#xff08;Debug&#xff09; 第七章 …

数据实时获取方案之Flink CDC

目录 一、方案描述二、Flink CDC1.1 什么是CDC1.2 什么是Flink CDC1.3 其它CDC1.4 FlinkCDC所支持的数据库情况 二、使用Pipeline连接器实时获取数据2.1 环境介绍2.2 相关版本信息2.3 详细步骤2.3.1 实时获取MySQL数据并发送到Kafka2.3.2 实时获取MySQL数据并同步到Doris数据库…

Ubuntu22.04安装CUDA+CUDNN+Conda+PyTorch

步骤&#xff1a; 1、安装显卡驱动&#xff1b; 2、安装CUDA&#xff1b; 3、安装CUDNN&#xff1b; 4、安装Conda&#xff1b; 5、安装Pytorch。 一、系统和硬件信息 1、Ubuntu 22.04 2、显卡&#xff1a;4060Ti 二、安装显卡驱动 &#xff08;已经安装的可以跳过&a…

秒懂设计模式--学习笔记(11)【结构型-享元模式】

目录 10、享元模式10.1 享元模式10.2 举例10.2.1 马赛克10.2.2 游戏地图&#xff08;以草原地图作为范例&#xff09; 10.3 总结 10、享元模式 10.1 享元模式 “享元”则是共享元件的意思享元模式的英文flyweight是轻量级的意思&#xff0c;这就意味着享元模式能使程序变得更…

Selenium+Pytest自动化测试框架实战

前言# selenium自动化 pytest测试框架 本章你需要 一定的python基础——至少明白类与对象&#xff0c;封装继承 一定的selenium基础——本篇不讲selenium&#xff0c;不会的可以自己去看selenium中文翻译网 测试框架简介# 测试框架有什么优点呢&#xff1a; 代码复用率高&a…

IDEA的断点调试(Debug)

《IDEA破解、配置、使用技巧与实战教程》系列文章目录 第一章 IDEA破解与HelloWorld的实战编写 第二章 IDEA的详细设置 第三章 IDEA的工程与模块管理 第四章 IDEA的常见代码模板的使用 第五章 IDEA中常用的快捷键 第六章 IDEA的断点调试&#xff08;Debug&#xff09; 第七章 …

# Redis 入门到精通(七)-- redis 删除策略

Redis 入门到精通&#xff08;七&#xff09;-- redis 删除策略 一、redis 删除策略–过期数据的概念 1、Redis 中的数据特征 Redis 是一种内存级数据库&#xff0c;所有数据均存放在内存中&#xff0c;内存中的数据可以通过TTL指令获取其状态。 XX &#xff1a;具有时效性…

脑肿瘤有哪些分类? 哪些人会得脑肿瘤?

脑肿瘤&#xff0c;作为一类严重的脑部疾病&#xff0c;其分类复杂多样&#xff0c;主要分为原发性脑肿瘤和脑转移瘤两大类。原发性脑肿瘤起源于颅内组织&#xff0c;常见的有胶质瘤、脑膜瘤、生殖细胞瘤、颅内表皮样囊肿及鞍区肿瘤等。其中&#xff0c;胶质瘤作为最常见的脑神…

【Vue】深入了解 Axios 在 Vue 中的使用:从基本操作到高级用法的全面指南

文章目录 一、Axios 简介与安装1. 什么是 Axios&#xff1f;2. 安装 Axios 二、在 Vue 组件中使用 Axios1. 发送 GET 请求2. 发送 POST 请求 三、Axios 拦截器1. 请求拦截器2. 响应拦截器 四、错误处理五、与 Vuex 结合使用1. 在 Vuex 中定义 actions2. 在组件中调用 Vuex acti…

C语言 ——— 写一个函数,调整 整型数组 中 奇数偶数的顺序

目录 题目要求 代码实现 题目要求 创建一个整型数组 自定义函数实现&#xff1a;调整该数组中数字的顺序&#xff0c;使得数组中所有的奇数位于数组的前半部分&#xff0c;数组中所有的偶数位于数组的后半部分 举例&#xff1a; 输入的整型数组为&#xff1a;[234,24,45,…

价格较低,功能最强?OpenAI 推出 GPT-4o mini,一个更小、更便宜的人工智能模型

OpenAI美东时间周四推出“GPT-4o mini”&#xff0c;入局“小而精”AI模型竞争&#xff0c;称这款新模型是“功能最强、成本偏低的模型”&#xff0c;计划今后整合图像、视频、音频到这个模型中。 OpenAI表示&#xff0c;GPT-4o mini 相较于 OpenAI 目前最先进的 AI 模型更加便…

第2章 矩阵

A 乘以此列向量&#xff0c;1的位置依次往下&#xff0c;所以A的列向量全为0 B C、D 取BE 要统一

ETL数据集成丨主流ETL工具(ETLCloud、DataX、Kettle)数据传输性能大PK

目前市面上的ETL工具众多&#xff0c;为了方便广大企业用户在选择ETL工具时有一个更直观性能方面的参考值&#xff0c;我们选取了目前市面上最流行的三款ETL工具&#xff08;ETLCloud、DataX、Kettle&#xff09;来作为本次性能传输的代表&#xff0c;虽然性能测试数据有很多相…

2024年7月17日(nodejs,npm设置国内镜像,vue脚手架,远程管理ssh,踢出用户,scp命令,ssh免密登录)

1、安装nodejs服务 nodejs是一个运行1环境&#xff0c;和javajdk运行环境格式一样 [roota ~]# yum -y install nodejs.x86_64 安装完成之后&#xff0c;使用node -v 查看版本 [roota ~]# node -v v16.20.2 2、简易服务器的环境安装npm 安装包管理器 npm node packae manger [ro…

为什么要从C语言开始编程

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C语言的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;很多小伙伴在入门编程时。都…

01 机器学习概述

目录 1. 基本概念 2. 机器学习三要素 3. 参数估计的四个方法 3.1 经验风险最小化 3.2 结构风险最小化 3.3 最大似然估计 3.4 最大后验估计 4. 偏差-方差分解 5. 机器学习算法的类型 6. 数据的特征表示 7. 评价指标 1. 基本概念 机器学习&#xff08;Machine Le…