prometheus理论+实践(4)

开源监控系统 Prometheus 最佳实践 作者:jimmiehan(韩金明) , 腾讯PCG后台开发工程师, Prometheus/Thanos contributorPrometheus 是目前最流行的开源监控系统之一, 这里以... 阅读详情

Prometheus AlertManager

在Prometheus的报警系统中,是分为2个部分的, 规则是配置在prometheus中的, prometheus组件完成报警推送给alertmanager的, alertmanager然后管理这些报警信息,包括静默、抑制、聚合和通过电子邮件、on-call通知系统和聊天平台等方法发送通知。

Alertmanager配置文件详解

global:
  # 经过此时间后,如果尚未更新告警,则将告警声明为已恢复。(即prometheus没有向alertmanager发送告警了)
  resolve_timeout: 5m
  # 配置发送邮件信息
  smtp_smarthost: 'smtp.qq.com:465'
  smtp_from: 'QQ号@qq.com'
  smtp_auth_username: 'QQ号@qq.com'
  smtp_auth_password: 'QQ邮箱POP3/SMTP服务'
  smtp_require_tls: false
 
# 读取告警通知模板的目录。
templates: 
- '/etc/alertmanager/template/*.tmpl'
 
# 所有报警都会进入到这个根路由下,可以根据根路由下的子路由设置报警分发策略
route:
  # 先解释一下分组,分组就是将多条告警信息聚合成一条发送,这样就不会收到连续的报警了。
  # 将传入的告警按标签分组(标签在prometheus中的rules中定义),例如:
  # 接收到的告警信息里面有许多具有cluster=A 和 alertname=LatencyHigh的标签,这些个告警将被分为一个组。
  #
  # 如果不想使用分组,可以这样写group_by: [...]
  group_by: ['alertname', 'cluster', 'service']
 
  # 第一组告警发送通知需要等待的时间,这种方式可以确保有足够的时间为同一分组获取多个告警,然后一起触发这个告警信息。
  group_wait: 30s
 
  # 发送第一个告警后,等待"group_interval"发送一组新告警。
  group_interval: 5m
 
  # 分组内发送相同告警的时间间隔。这里的配置是每3小时发送告警到分组中。举个例子:收到告警后,一个分组被创建,等待5分钟发送组内告警,如果后续组内的告警信息相同,这些告警会在3小时后发送,但是3小时内这些告警不会被发送。
  repeat_interval: 3h 
 
  # 这里先说一下,告警发送是需要指定接收器的,接收器在receivers中配置,接收器可以是email、webhook、pagerduty、wechat等等。一个接收器可以有多种发送方式。
  # 指定默认的接收器
  receiver: team-X-mails
 
  
  # 下面配置的是子路由,子路由的属性继承于根路由(即上面的配置),在子路由中可以覆盖根路由的配置
 
  # 下面是子路由的配置
  routes:
  # 使用正则的方式匹配告警标签
  - match_re:
      # 这里可以匹配出标签含有service=foo1或service=foo2或service=baz的告警
      service: ^(foo1|foo2|baz)$
    # 指定接收器为team-X-mails
    receiver: team-X-mails
    # 这里配置的是子路由的子路由,当满足父路由的的匹配时,这条子路由会进一步匹配出severity=critical的告警,并使用team-X-pager接收器发送告警,没有匹配到的告警会由父路由进行处理。
    routes:
    - match:
        severity: critical
      receiver: team-X-pager
 
  # 这里也是一条子路由,会匹配出标签含有service=files的告警,并使用team-Y-mails接收器发送告警
  - match:
      service: files
    receiver: team-Y-mails
    # 这里配置的是子路由的子路由,当满足父路由的的匹配时,这条子路由会进一步匹配出severity=critical的告警,并使用team-Y-pager接收器发送告警,没有匹配到的会由父路由进行处理。
    routes:
    - match:
        severity: critical
      receiver: team-Y-pager
 
  # 该路由处理来自数据库服务的所有警报。如果没有团队来处理,则默认为数据库团队。
  - match:
      # 首先匹配标签service=database
      service: database
    # 指定接收器
    receiver: team-DB-pager
    # 根据受影响的数据库对告警进行分组
    group_by: [alertname, cluster, database]
    routes:
    - match:
        owner: team-X
      receiver: team-X-pager
      # 告警是否继续匹配后续的同级路由节点,默认false,下面如果也可以匹配成功,会向两种接收器都发送告警信息(猜测。。。)
      continue: true
    - match:
        owner: team-Y
      receiver: team-Y-pager
 
 
# 下面是关于inhibit(抑制)的配置,先说一下抑制是什么:抑制规则允许在另一个警报正在触发的情况下使一组告警静音。其实可以理解为告警依赖。比如一台数据库服务器掉电了,会导致db监控告警、网络告警等等,可以配置抑制规则如果服务器本身down了,那么其他的报警就不会被发送出来。
 
inhibit_rules:
#下面配置的含义:当有多条告警在告警组里时,并且他们的标签alertname,cluster,service都相等,如果severity: 'critical'的告警产生了,那么就会抑制severity: 'warning'的告警。
- source_match:  # 源告警(我理解是根据这个报警来抑制target_match中匹配的告警)
    severity: 'critical' # 标签匹配满足severity=critical的告警作为源告警
  target_match:  # 目标告警(被抑制的告警)
    severity: 'warning'  # 告警必须满足标签匹配severity=warning才会被抑制。
  equal: ['alertname', 'cluster', 'service']  # 必须在源告警和目标告警中具有相等值的标签才能使抑制生效。(即源告警和目标告警中这三个标签的值相等'alertname', 'cluster', 'service')
 
 
# 下面配置的是接收器
receivers:
# 接收器的名称、通过邮件的方式发送、
- name: 'team-X-mails'
  email_configs:
    # 发送给哪些人
  - to: 'team-X+alerts@example.org'
    # 是否通知已解决的警报
    send_resolved: true
 
# 接收器的名称、通过邮件和pagerduty的方式发送、发送给哪些人,指定pagerduty的service_key
- name: 'team-X-pager'
  email_configs:
  - to: 'team-X+alerts-critical@example.org'
  pagerduty_configs:
  - service_key: <team-X-key>
 
# 接收器的名称、通过邮件的方式发送、发送给哪些人
- name: 'team-Y-mails'
  email_configs:
  - to: 'team-Y+alerts@example.org'
 
# 接收器的名称、通过pagerduty的方式发送、指定pagerduty的service_key
- name: 'team-Y-pager'
  pagerduty_configs:
  - service_key: <team-Y-key>
 
# 一个接收器配置多种发送方式
- name: 'ops'
  webhook_configs:
  - url: 'http://prometheus-webhook-dingtalk.kube-ops.svc.cluster.local:8060/dingtalk/webhook1/send'
    send_resolved: true
  email_configs:
  - to: 'QQ号@qq.com'
    send_resolved: true
  - to: 'soulchild@soulchild.cn'
    send_resolved: true

部署步骤

  • 安装和部署alertmanager
  • 在prometheus中配置alertmanager的地址信息。
  • 在prometheus中设置报警规则
  • 在alertmanager配置接受者信息等

部署过程

安装alertmanage

到prometheus官网下载alertmanage包,可以装在prometheus-server,也可以装在另一台服务器上

#先上传alertmanage包
#解包
tar zxvf alertmanager-0.25.0.linux-amd64.tar.gz 

#移动到prometheus目录
mv alertmanager-0.25.0.linux-amd64 /usr/local/prometheus/alertmanager

#编写启动文件
vim /usr/lib/systemd/system/alertmanager.service 

#添加
[Unit]
Description=alertmanager
Documentation=https://prometheus.io/
After=network.target

[Service]
User=prometheus
Group=prometheus
ExecStart=/usr/local/prometheus/alertmanager/alertmanager --config.file=/usr/local/prometheus/alertmanager/alertmanager.yml --storage.path=/usr/local/prometheus/alertmanager/data
Restart=on-failure

[Install]
WantedBy=multi-user.target

#如果是新服务器,则需要创建prometheus用户
useradd -M -s /sbin/nologin prometheus

#更改属主属组
chown -R prometheus:prometheus /usr/local/prometheus/

#开启alertmanager并添加开机自启动
systemctl start alertmanager.service
systemctl enable alertmanager.service 

在prometheus上集成alertmanage

#修改配置文件
vim /usr/local/prometheus/prometheus.yml

#在alerting中添加alertmanager服务器
#配置完成后重启prometheus

浏览器访问 IP:9093

 创建告警规则

#修改主配置文件
vim /usr/local/prometheus/prometheus.yml

#在rule_files区域添加
rule_files:
  - "rules/*rules.yml"

#创建目录
mkdir rules

#编写告警文件
vim /usr/local/prometheus/rules/node_rules_yml

#添加
groups:
  - name: node-alert
    rules:
    - alert: disk-full
      expr: (1-(node_filesystem_free_bytes{fstype=~"ext4|xfs",mountpoint="/"} / node_filesystem_size_bytes{fstype=~"ext4|xfs",mountpoint="/"})) * 100 > 50
      for: 1m
      labels:
        serverity: page
      annotations:
        summary: "{{ $labels.instance }} disk full "
        description: "{{ $labels.instance }} disk > {{ $value }}  "


#修改属主属组
chown -R prometheus:prometheus /usr/local/prometheus/

#重启prometheus,浏览器访问

 配置消息接收

上面的消息信息已经从prometheus推送给alertmanager了, 我们已经可以在alertmanager的web管理界面看到对应的报警信息,但是我们还没有配置如何让alertmanager把这些信息推送我们的社交软件上面去。由于邮件系统大家用的比较多,这里就是用qq邮箱进行后续试验。

#修改alertmanage配置文件
vim /usr/local/prometheus/alertmanager/alertmanager.yml 

global:
  resolve_timeout: 5m
  smtp_smarthost: 'smtp.qq.com:465'
  smtp_from: '1684954874@qq.com'
  smtp_auth_username: '1684954874@qq.com'
  smtp_auth_password: 'qpfncrsdbhnebifj'
  smtp_require_tls: false
route:
  group_by: ['alertname']
  group_wait: 10s
  group_interval: 10s
  repeat_interval: 1h
  receiver: 'lyh'
receivers:
- name: 'lyh'
  email_configs:
  - send_resolved: true
    to: 1684954874@qq.com
inhibit_rules:
  - source_match:
      severity: 'critical'
    target_match:
      severity: 'warning'
    equal: ['alertname', 'dev', 'instance']

重启alertmanage
systemctl restart alertmanage

#生成一个大文件,使空间大于30%
dd if=/dev/zero of=bigfile bs=1M count=20000

访问后发现在pending持续1分钟(取决于node_rules.yml文件中的for后面的时间)

 一分钟后到firing,同时发送邮件报警 

到firing后,alertmanage会收到数据

 输入>bigfile释放空间

配置报警模板

#编辑配置文件


global:
  resolve_timeout: 5m
  smtp_smarthost: 'smtp.qq.com:465'
  smtp_from: '1684954874@qq.com'
  smtp_auth_username: '1684954874@qq.com'
  smtp_auth_password: 'qpfncrsdbhnebifj'
  smtp_require_tls: false
templates:
  - '/usr/local/prometheus/alertmanager/template/*.tmpl'
route:
  group_by: ['alertname']
  group_wait: 10s
  group_interval: 10s
  repeat_interval: 30s
  receiver: 'lyh'
receivers:
- name: 'lyh'
  email_configs:
  - send_resolved: true
    to: 1684954874@qq.com
    html: '{{ template "email.html" . }}'
    headers: { Subject: "[WARN] 报警邮件test" }
inhibit_rules:
  - source_match:
      severity: 'critical'
    target_match:
      severity: 'warning'
    equal: ['alertname', 'dev', 'instance']


#编辑告警模板
vim /usr/local/prometheus/alertmanager/template/wechat.tmpl 

#添加内容
{{ define "email.html" }}

{{ range .Alerts }}

<pre>

========start==========

告警程序: prometheus_alert_email

告警级别: {{ .Labels.severity }} 级别

告警类型: {{ .Labels.alertname }}

故障主机: {{ .Labels.instance }}

告警主题: {{ .Annotations.summary }}

告警详情: {{ .Annotations.description }}

处理方法: {{ .Annotations.console }}

触发时间: {{ .StartsAt.Format "2006-01-02 15:04:05" }}

========end==========

</pre>

{{ end }}

{{ end }}

===========================================



#重启alertmanage和prometheus
systemctl restart alertmanager.service 
systemctl restart prometheus.service 

等待时间较长

Prometheus入门实践 官方链接 Prometheus下载地址Prometheus相关文档Prometheus官方文档 一、基本原理 通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。 输出被监控组件信息的HTTP接口被叫做exporter,也就是数据采集端,通常来说,最需要接入改造的就是expoter. 当前互联网上已经有很多成熟的exporter组件,当然用户也可用根据官方... 阅读详情

相关推荐

【云原生 Prometheus篇】Prometheus的动态服务发现机制

自动发现(基于文件;基于consul;基于K8s api)

这是博客的简介的简介 4351

Prometheus监控实战系列十三:告警管理

作为一个独立的组件,负责接收并处理来自(也可以是其它的客户端程序)的告警信息。Alertmanager可以对这些告警信息进行进一步的处理,比如当接收到大量重复告警时能够消除重复的告警信息,同时对告警信息进行分组并且路由到正确的通知方。Alertmanager内置了对邮件,Slack等多种通知方式的支持,同时还支持通过Webhook的方式接入企业微信、钉钉等国内IM工具。Alertmanager与Prometheus Server一样,也是通过yml格式的配置文件进行配置。

青梅煮酒 1733

【Prometheus】Prometheus如何监控Haproxy

从 HAProxy 2.0 版本开始,HAProxy 内置了对 Prometheus 的支持。 这意味着 HAProxy 能够直接提供兼容Prometheus的指标格式,无需依赖任何额外的 exporter 。(安装Haproxy、然后修改stats,配置对外输出metrics接口)

景天科技苑 8万+

监控容器并实现邮箱报警(cAdvisor 、AlertManager)

Prometheus 容器化部署,配合Grafan画图工具监控节点 一、部署环境 主机名 IP地址 服务 prometheus 192.168.85.131 prometheus、grafana cAdvisor 192.168.85.132 cAdvisor、docker 二、部署 Prometheus 准备工作 修改主机名 [root@localhost ~]# hostnamectl set-hostname prometheus [root@localhost ~]# ba

I'm the best !!! 4269

【Prometheus】如何通过golang生成prometheus格式数据

要在Golang中生成Prometheus数据,你可以使用Prometheus的官方客户端库 `prometheus/client_golang`。这个库允许你定义和暴露自定义的指标,并通过HTTP端点将这些指标暴露给Prometheus服务器。

景天科技苑 7万+

手把手教你用若依WMS搭建企业级仓库管理系统(Vue+Spring Boot实战)

本文提供了一份基于若依框架(RuoYi)快速搭建企业级仓库管理系统(WMS)的实战指南。详细介绍了从环境准备、项目初始化到核心功能模块(如入库流程、库存管理看板)深度定制的全过程,并涵盖Lodop打印集成、移动端PWA适配及生产环境Docker部署等高级主题,帮助开发者高效构建稳定可用的WMS系统。

weixin_29015899的博客 564

二、 Prometheus告警:特性、配置、绑定Alertmanager(1)

告警能力在Prometheus的架构中被划分为两个部分,在Prometheus Server中定义告警规则以及产生告警,Alertmanager组件则用于处理这些由Prometheus产生的告警。Alertmanager即Prometheus体系中告警的统一处理中心。 在Prometheus中,还可以通过Group(告警组)对一组相关的告警进行统一定义,都是通过YAML文件来统一管理。

SteveRocket's-Blog 2743

001-基础入门-Web演示源码&资源&工具箱等

小迪安全2023笔记

wushangyu32335的博客 4265

基于LSTM的Prometheus数据预测平台:从理论到实践

这是一个基于LSTM深度学习模型的时间序列预测平台,能够从Prometheus监控数据中学习模式,预测未来的资源使用趋势。其实就是某个服务组件调优的过程,只是相对来说更加专业一些,涉及到更多的数学知识,不过在大模型的加持下,问题也不是很大。比如用最近12小时的数据预测未来6小时是否会写满或超过阈值,但当用户进行瞬时快写和快删操作时,预测就完全失效了,最终导致存储写满,训练任务无法提交。在云原生和微服务架构盛行的今天,如何提前预测系统资源使用情况,避免资源瓶颈和故障,成为了运维团队面临的重要挑战。

抛物线的博客 1177

Android Qcom USB Driver学习(十三)

该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) Android Qcom USB Driver学习(八) Android Qcom USB Driver学习(九)deals with the USB Power Delivery resources used by one or more ports on the basis of the local device policy the basis of the local device policy.opera

Android驱动开发 2614

Abaqus 导出单元刚度矩阵和全局刚度矩阵

Abaqus 导出单元刚度矩阵和全局刚度矩阵

科技芯风 1万+

Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践

Apache IoTDB 架构特性与 Prometheus+Grafana 监控体系部署实践

wei_shuo的博客 3万+

【芯片设计- RTL 数字逻辑设计入门 番外篇6 -- 术语 Tile 介绍】

在系统级芯片(System on Chip, SoC)设计中,“tile” 是一个可以指代不同概念的术语,但通常它指的是芯片上的一个独立的功能单元或核心。一个 tile 可以包含一个或多个处理器核心、缓存、内存控制器、输入输出设备、外设接口或其他功能模块。在 SoC 上,多个 tile 可以被组合和连接起来,以形成一个完整的系统。

CodingCos的博客 3071

监控的基本理论和prometheus安装

服务类如:mysql,redis,php,python用于Prometheus硬件类如:硬盘,cpu,内存。

2403_89688685的博客 714

基于Matlab使用雷达资源管理有效跟踪多个机动目标仿真(附源码)

多功能雷达可以搜索目标,确认新轨道,并重新访问轨道以更新状态。为了执行这些功能,多功能雷达通常由资源管理器管理,该资源管理器创建用于搜索、确认和跟踪的雷达任务。这些任务是根据优先级和时间安排的,因此,在每个时间步长中,多功能雷达都可以将其波束指向所需的方向。在此示例中,对于用于跟踪机动目标的雷达,有两个相互冲突的要求:目标的数量及其初始位置通常事先不知道。因此,雷达必须不断搜索感兴趣的区域才能找到目标。此外,雷达需要在进入雷达覆盖区域后立即检测并建立对每个目标的跟踪。目标机动的时间段事先是未知的。

珞瑜的博客 3146

数据仓库数据质量监控和处理方法最佳实践

指的是检查数据是否存在反常或者错误的情况,例如数值反常地过大或者过小,或者超过记录的波动值,对应的规则包括数值波动检查,最大值、最小值检查,跨表准确性等。指的是检查数据是否存在缺失的情况,这里的缺失可以是整个数据集的记录缺失,也可以是某个字段记录的缺失,对应的规则包括空值检查,表总行数检查。指的是检查数据是否符合规范,是否按照规定的格式存储,对应的规则包括正则表达式检查,字段长度检查,枚举集合检查,数值范围等。指的是检查哪些数据是重复数据或者数据的哪些属性是重复的,对应的规则例如主键唯一性检查。

大模型大数据攻城狮的专栏 899

prometheus理论+实践(1)

prometheus的配置文件、prometheus的job和实例、prometheus relabels

faoids的博客 2306

SAP 系统升级不再惧怕 SPAU 与 SPDD:把修改调整做成可控的工程

SAP系统升级中的SPAU/SPDD处理要点:首先明确SPDD处理数据字典对象,SPAU处理程序对象,核心是解决标准对象变更与历史修改的继承问题。关键原则是优先回归标准版本,减少后续升级负担。操作时应利用版本管理对比差异,批量处理可回退对象,并通过F9多选提高效率。对于提示"当前版本与建议一致"的对象直接回归标准。注意区分新旧SPAU界面功能差异,将Note下载移至SNOTE处理,并确保在SPDD/SPAU之后处理SPAU_ENH。最后,所有调整需记录日志并纳入传输请求,确保可追溯性。遵

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 390

基于Prometheus监控RAGFlow系统的实践指南

本文主要介绍了如何使用Prometheus监控RAGFlow系统,帮助中国开发者,特别是AI应用开发者,快速掌握监控系统的搭建与配置。文章通过详细讲解监控目标的添加、Prometheus的配置、Grafana的可视化以及告警规则的设置,结合实践示例和丰富的图表,帮助读者更好地理解和应用监控技术。在AI应用开发中,监控系统的稳定性至关重要。RAGFlow作为一种高效的AI开发框架,其监控系统的搭建对于保障系统稳定运行和及时发现潜在问题具有重要意义。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1316

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

[云原生] Prometheus理论知识及系统搭建

promethues是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。 Prometheus 是一个开源的服务监控系统和时序数据库,其提供了通用的数据模型和快捷数据采集、存储和查询接口。它的核心组件 Prometheus server 会定期从

热心网友 1901

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

13、prometheus预警理论

本章重点:告警流程、预警原理、预警通知流程。

梁正雄,乱七八糟的都研究研究 953

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Prometheus(一)—— Prometheus监控系统从入门到实战:理论与部署全指南

本文介绍了Prometheus监控系统的核心特性与生态组件。作为云原生时代的主流监控方案,Prometheus凭借多维数据模型、高效TSDB存储和灵活PromQL查询等优势,成为构建企业级监控体系的首选工具。文章详细解析了Prometheus Server、Exporter、Alertmanager等核心组件的工作原理,并阐述了其Pull/Push混合数据采集模式。同时指出Prometheus在存储容量、实时性等方面的局限性,为读者提供全面的技术视角,帮助快速搭建监控系统。

荣光波比的博客 2102

prometheus理论+实践(2)

函数

faoids的博客 3215

Prometheus + Grafana 监控 RabbitMQ 实践指南

在微服务架构中,消息队列作为关键组件,其性能和状态直接影响系统稳定性。Prometheus + Grafana 作为流行的开源监控解决方案,能够高效监控 RabbitMQ 的运行状态。本文将详细介绍如何使用 Prometheus 和 Grafana 实现对 RabbitMQ 的可视化监控。通过 Prometheus + Grafana 实现对 RabbitMQ 的可视化监控,可以帮助我们实时了解 RabbitMQ 的运行状态和性能指标。

Nicky's blog 2625

prometheus理论概念

其中一些小的监控任务统一将监控数据推送给pushgateway,由pushgateway进行收集,最终由prometheus server去pushgateway上拉取数据。像一些持久化的监控任务,如主机的系统监控,这些都由exporters进行收集,最后prometheus通过pull方式进行拉取监控数据。格式,具有相同度量名称以及标签属于同一个指标,prometheus的度量名称其实就是指的是监控项的名称,标签用于记录监控数据。实例:可以抓取的目标成为实例,实例就对应配置文件中targets。

11 1762

Prometheus Playground:探索Prometheus监控系统的实践沙盒

Prometheus Playground:探索Prometheus监控系统的实践沙盒 Prometheus Playground 是一个开源项目,旨在通过一系列基于 Docker-Compose 的“即插即用”沙盒项目,帮助用户更好地了解和演示 Prometheus 监控系统的各种用例。该项目主要由 Go、Dockerfile、Makefile、Python 和 Shell 等编程语言编写。 1...

gitblog_00388的博客 806
上一篇: prometheus理论+实践(3)
下一篇: Ansible基础
郝1.
博客等级 码龄8年 805粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值