1.Prometheus

news2024/9/25 1:24:05

文章目录

  • Prometheus
    • 概述
    • 存储
    • 特点
    • 生态组件
      • Prometheus server
      • Client Library
      • Exporters
      • Service Discovery
      • Alertmanager
      • Pushgateway
      • Grafana
    • 工作模式
    • 工作流程
    • 局限性
  • 部署prometheus
    • 部署 Node Exporter
    • 部署mysqld_exporter
    • 部署nginx-exporter
    • 部署grafana
  • 总结

Prometheus

概述

zabbixprometheus
容器对物理机监控较好,适用于传统业务架构的环境对容器监控较好,支持kubernetes容器集群的监控
数据库使用关系型数据库,随数据增长,数据库性能会限制使用时许型数据库,对监控数据读写效率高
升级zabbix升级不方便升级方便,只要替换二进制文件就好
规模上限约10000节点支持万为单位
  • Prometheus 是一个开源的服务监控系统和时序数据库,其提供了通用的数据模型和快捷数据采集、存储和查询接口。
  • 它的核心组件 Prometheus server 会定期从静态配置的监控目标或者基于服务发现自动配置的目标中进行拉取数据,新拉取到的数据会持久化到存储设备当中。
  • 每个被监控的主机都可以通过专用的 exporter 程序提供输出监控数据的接口,它会在目标处收集监控数据,并暴露出一个 HTTP 接口供 Prometheus server 查询,Prometheus 通过基于 HTTP 的 pull 的方式来周期性的采集数据。
  • 如果存在告警规则,则抓取到数据之后会根据规则进行计算,满足告警条件则会生成告警,并发送到 Alertmanager 完成告警的汇总和分发。
  • 当被监控的目标有主动推送数据的需求时,可以以 Pushgateway 组件进行接收并临时存储数据,然后等待 Prometheus server 完成数据的采集。
  • 任何被监控的目标都需要事先纳入到监控系统中才能进行时序数据采集、存储、告警和展示,监控目标可以通过配置信息以静态形式指定,也可以让 Prometheus 通过服务发现的机制进行动态管理。
  • Prometheus 能够直接把 API Server 作为服务发现系统使用,进而动态发现和监控集群中的所有可被监控的对象。
  • Prometheus 官网地址:https://prometheus.io
  • Prometheus github 地址:https://github.com/prometheus

存储

  • TSDB 作为 Prometheus 的存储引擎完美契合了监控数据的应用场景
    • 存储的数据量级十分庞大
    • 大部分时间都是写入操作
    • 写入操作几乎是顺序添加,大多数时候数据都以时间排序
    • 很少更新数据,大多数情况在数据被采集到数秒或者数分钟后就会被写入数据库
    • 删除操作一般为区块删除,选定开始的历史时间并指定后续的区块。很少单独删除某个时间或者分开的随机时间的数据
    • 基本数据大,一般超过内存大小。一般选取的只是其一小部分且没有规律,缓存几乎不起任何作用
    • 读操作是十分典型的升序或者降序的顺序读
    • 高并发的读操作十分常见

特点

  • 多维数据模型:由度量名称和键值对标识的时间序列数据
    • 时间序列数据:按照时间顺序记录系统、设备状态变化的数据,每个数据称为一个样本;服务器指标数据、应用程序性能监控数据、网络数据等都是时序数据
    • 内置时间序列(Time Series)数据库:Prometheus ;外置的远端存储通常会用:InfluxDB、OpenTSDB 等
    • promQL 一种灵活的查询语言,可以利用多维数据完成复杂查询
    • 基于 HTTP 的 pull(拉取)方式采集时间序列数据
    • 同时支持 PushGateway 组件收集数据
    • 通过静态配置或服务发现发现目标
    • 支持作为数据源接入 Grafana

生态组件

  • Prometheus 负责时序型指标数据的采集及存储,但数据的分析、聚合及直观展示以及告警等功能并非由 Prometheus Server 所负责。

在这里插入图片描述

Prometheus server

  • 服务核心组件,采用 pull 方式采集监控数据,通过 http 协议传输;存储时间序列数据;基于“告警规则”生成告警通知;内置 service discovery动态服务发现。
  • Prometheus server 由三个部分组成:Retrieval,Storage,PromQL
    • Retrieval:负责在活跃的 target 主机上抓取监控指标数据。
    • Storage:存储,主要是把采集到的数据存储到磁盘中。默认为 15 天。
    • PromQL:是 Prometheus 提供的查询语言模块。

Client Library

  • 客户端库,目的在于为那些期望原生提供 Instrumentation 功能的应用程序提供便捷的开发途径,用于基于应用程序内建的测量系统。

Exporters

  • 指标暴露器,负责收集不支持内建 Instrumentation 的应用程序或服务的性能指标数据,并通过 HTTP 接口供 Prometheus Server 获取。

  • 换句话说,Exporter 负责从目标应用程序上采集和聚合原始格式的数据,并转换或聚合为 Prometheus 格式的指标向外暴露。

  • Node-Exporter:用于收集服务器节点的物理指标状态数据,如平均负载、CPU、内存、磁盘、网络等资源信息的指标数据,需要部署到所有运算节点。
    指标详细介绍:https://github.com/prometheus/node_exporter

  • mysqld-exporter/nginx-exporter

  • Kube-State-Metrics:为 Prometheus 采集 K8S 资源数据的 exporter

    • 通过监听 APIServer 收集 kubernetes 集群内资源对象的状态指标数据,例如 pod、deployment、service 等等。

    • 同时它也提供自己的数据,主要是资源采集个数和采集发生的异常次数统计。

    • 需要注意的是 kube-state-metrics 只是简单的提供一个 metrics 数据,并不会存储这些指标数据,所以可以使用 Prometheus 来抓取这些数据然后存储, 主要关注的是业务相关的一些元数据,比如 Deployment、Pod、副本状态等;调度了多少个 replicas ?现在可用的有几个?多少个 Pod 是 running/stopped/terminated 状态?Pod 重启了多少次?有多少 job 在运行中。

  • cAdvisor:用来监控容器内部使用资源的信息,比如 CPU、内存、网络I/O、磁盘I/O 。

  • blackbox-exporter:监控业务容器存活性。

Service Discovery

  • 服务发现,用于动态发现待监控的 Target,Prometheus 支持多种服务发现机制:文件、DNS、Consul、Kubernetes 等等。
  • 服务发现可通过第三方提供的接口,Prometheus 查询到需要监控的 Target 列表,然后轮询这些 Target 获取监控数据。该组件目前由 Prometheus Server 内建支持

Alertmanager

  • 是一个独立的告警模块,从 Prometheus server 端接收到 “告警通知” 后,会进行去重、分组,并路由到相应的接收方,发出报警, 常见的接收方式有:电子邮件、钉钉、企业微信等。
  • Prometheus Server 仅负责生成告警指示,具体的告警行为由另一个独立的应用程序 AlertManager 负责;告警指示由 Prometheus Server 基于用户提供的告警规则周期性计算生成,Alertmanager 接收到 Prometheus Server 发来的告警指示后,基于用户定义的告警路由向告警接收人发送告警信息。

Pushgateway

  • 类似一个中转站,Prometheus 的 server 端只会使用 pull 方式拉取数据,但是某些节点因为某些原因只能使用 push 方式推送数据, 那么它就是用来接收 push 而来的数据并暴露给 Prometheus 的 server 拉取的中转站。
  • 可以理解成目标主机可以上报短期任务的数据到 Pushgateway,然后 Prometheus server 统一从 Pushgateway 拉取数据。

Grafana

  • 是一个跨平台的开源的度量分析和可视化工具,可以将采集的数据可视化的展示,并及时通知给告警接收方。
  • 其官方库中具有丰富的仪表盘插件。

工作模式

  • Prometheus Server 基于服务发现(Service Discovery)机制或静态配置获取要监视的目标(Target),并通过每个目标上的指标 exporter 来采集(Scrape)指标数据;
  • Prometheus Server 内置了一个基于文件的时间序列存储来持久存储指标数据,用户可使用 PromQL 接口来检索数据,也能够按需将告警需求发往 Alertmanager 完成告警内容发送;
  • 一些短期运行的作业的生命周期过短,难以有效地将必要的指标数据供给到 Server 端,它们一般会采用推送(Push)方式输出指标数据, Prometheus 借助于 Pushgateway 接收这些推送的数据,进而由 Server 端进行抓取

工作流程

  1. Prometheus 以 Prometheus Server 为核心,用于收集和存储时间序列数据。Prometheus Server 从监控目标中通过 pull 方式拉取指标数据,或通过 pushgateway 把采集的数据拉取到 Prometheus server 中。
  2. Prometheus server 把采集到的监控指标数据通过 TSDB 存储到本地 HDD/SSD 中。
  3. Prometheus 采集的监控指标数据按时间序列存储,通过配置报警规则,把触发的告警通知发送到 Alertmanager。
  4. Alertmanager 通过配置报警接收方,发送报警到邮件、钉钉或者企业微信等。
  5. Prometheus 自带的 Web UI 界面提供 PromQL 查询语言,可查询监控数据。
  6. Grafana 可接入 Prometheus 数据源,把监控数据以图形化形式展示出。

局限性

  • Prometheus 是一款指标监控系统,不适合存储事件及日志等;它更多地展示的是趋势性的监控,而非精准数据;
  • Prometheus 认为只有最近的监控数据才有查询的需要,其本地存储的设计初衷只是保存短期(例如一个月)数据,因而不支持针对大量的历史数据进行存储;若需要存储长期的历史数据,建议基于远端存储机制将数据保存于 InfluxDB 或 OpenTSDB 等系统中;
  • Prometheus 的集群机制成熟度不高,可基于 Thanos 或 Cortex 实现 Prometheus 集群的高可用及联邦集群。

在这里插入图片描述

部署prometheus

##上传软件包
mkdir /opt/prometheus
cd /opt/prometheus
tar xf prometheus-2.45.0.linux-amd64.tar.gz

mv prometheus-2.45.0.linux-amd64 /usr/local/prometheus

cd /usr/local/prometheus/
##修改 prometheus配置文件
vim prometheus.yml
##查看配置文件,配置文件解释

cat /usr/local/prometheus/prometheus.yml | grep -v "^#"
global:					        #用于prometheus的全局配置,比如采集间隔,抓取超时时间等
  scrape_interval: 15s			#采集目标主机监控数据的时间间隔,默认为1m
  evaluation_interval: 15s 		#触发告警生成alert的时间间隔,默认是1m
  # scrape_timeout is set to the global default (10s).
  scrape_timeout: 10s			#数据采集超时时间,默认10s

alerting:				  #用于alertmanager实例的配置,支持静态配置和动态服务发现的机制
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

rule_files:				  #用于加载告警规则相关的文件路径的配置,可以使用文件名通配机制
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:			  #用于采集时序数据源的配置
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"		    
#每个被监控实例的集合用job_name命名,
#支持静态配置(static_configs)和动态服务发现的机制(*_sd_configs)

    # metrics_path defaults to '/metrics'
    metrics_path: '/metrics'         #指标数据采集路径,默认为 /metrics
    # scheme defaults to 'http'.

    static_configs:				     #静态目标配置,固定从某个target拉取数据
      - targets: ["localhost:9090"]
##可以直接启动  prometheus
./prometheus prometheus.yml
##配置系统启动文件,启动 prometheus
vim /usr/lib/systemd/system/prometheus.service


[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--storage.tsdb.path=/usr/local/prometheus/data/ \
--storage.tsdb.retention=15d \
--web.enable-lifecycle
  
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
##重新加载
systemctl daemon-reload
systemctl start prometheus.service
systemctl enable prometheus.service

在这里插入图片描述

http://192.168.242.69:9090
http://192.168.242.69:9090/metrics

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

部署 Node Exporter

##上传文件
解压文件,移动
tar xf node_exporter-1.3.1.linux-amd64.tar.gz
mv node_exporter-1.3.1.linux-amd64 /usr/local/node_exporter
cd /usr/local/node_exporter/
##为可执行文件做软连接
ln -s /usr/local/node_exporter/node_exporter /usr/local/bin/
##配置启动文件

vim /usr/lib/systemd/system/node_exporter.service



[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.processes \
--collector.tcpstat

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
##启动
systemctl daemon-reload
systemctl start node_exporter.service
systemctl enable node_exporter.service

在这里插入图片描述

##修改  prometheus 配置,使其能够采集数据


  - job_name: "node_exporter"
    metrics_path: "/metrics"
    scheme: "http"
    static_configs:
      - targets:
        - 192.168.242.69:9100
        labels:
          tags: test01
##重载服务
systemctl reload prometheus.service

或者
curl -X POST http://192.168.242.69:9090/-/reload

在这里插入图片描述

常用的各指标:
●node_cpu_seconds_total
●node_memory_MemTotal_bytes
●node_filesystem_size_bytes{mount_point=PATH}
●node_system_unit_state{name=}
●node_vmstat_pswpin:系统每秒从磁盘读到内存的字节数
●node_vmstat_pswpout:系统每秒钟从内存写到磁盘的字节数

更多指标介绍:https://github.com/prometheus/node_exporter
##监控  kubernetes中的node节点
scp -r node_exporter/ 192.168.242.68:/usr/local/
scp -r node_exporter/ 192.168.242.67:/usr/local/

scp /usr/lib/systemd/system/node_exporter.service 192.168.242.67:/usr/lib/systemd/system/
scp /usr/lib/systemd/system/node_exporter.service 192.168.242.68:/usr/lib/systemd/system/

ln -s /usr/local/node_exporter/node_exporter /usr/local/bin/
##启动
systemctl daemon-reload
systemctl start node_exporter.service
systemctl enable node_exporter.service
##修改  prometheus 配置,使其能够采集数据


  - job_name: "node_exporter"
    metrics_path: "/metrics"
    scheme: "http"
    static_configs:
      - targets:
        - 192.168.242.69:9100
        - 192.168.242.67:9100
        - 192.168.242.68:9100
        labels:
          tags: test01
curl -X POST http://192.168.242.69:9090/-/reload

在这里插入图片描述

部署mysqld_exporter

##上传文件  mysqld_exporter-0.14.0.linux-amd64.tar.gz

tar xf mysqld_exporter-0.14.0.linux-amd64.tar.gz
mv mysqld_exporter-0.14.0.linux-amd64 /usr/local/mysqld_exporter
cd /usr/local/mysqld_exporter/
mv mysqld_exporter /usr/local/bin/
vim /usr/lib/systemd/system/mysqld_exporter.service


[Unit]
Description=mysqld_exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/mysqld_exporter --config.my-cnf=/etc/my.cnf

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
##修改mysql配置文件
vim /etc/my.cnf


[client]
......
host=localhost
user=exporter
password=123
##授权 exporter 用户

mysql -uroot -p123

GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost' IDENTIFIED BY '123';

flush privileges;
##重启服务 

systemctl restart mysqld

systemctl daemon-reload
systemctl start mysqld_exporter
systemctl enable mysqld_exporter

netstat -lntp | grep :9104

在这里插入图片描述

##修改  prometheus 配置,使其能够采集数据


  - job_name: "mysqld_exporter"
    metrics_path: "/metrics"
    scheme: "http"
    static_configs:
      - targets:
        - 192.168.242.70:9104
        labels:
          tags: mysql
curl -X POST http://192.168.242.69:9090/-/reload

在这里插入图片描述

部署nginx-exporter

  • 下载 nginx-exporter 地址:https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
  • 下载 nginx 地址:http://nginx.org/download/
  • 下载 nginx 插件地址:https://github.com/vozlt/nginx-module-vts/tags
##上传文件
nginx-1.24.0.tar.gz
nginx-module-vts-0.1.18.tar.gz
nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
##先部署  nginx-module-vts
tar xf nginx-module-vts-0.1.18.tar.gz
mv nginx-module-vts-0.1.18 /usr/local/nginx-module-vts
#安装依赖包

yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
#创建运行用户

useradd -M -s /sbin/nologin nginx
##安装
tar xf nginx-1.24.0.tar.gz
cd nginx-1.24.0/

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--add-module=/usr/local/nginx-module-vts

make -j2 && make install
##优化路径

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
##修改 nginx 配置文件,启动 nginx

cd /usr/local/nginx/conf/

vim /usr/local/nginx/conf/nginx.conf
vhost_traffic_status_zone;					
#添加

vhost_traffic_status_filter_by_host on;		
#添加,开启此功能,在 Nginx 配置有多个 server_name 的情况下,会根据不同的 server_name 进行流量的统计,否则默认会把流量全部计算到第一个 server_name 上



    server {
        vhost_traffic_status off;		
        #在不想统计流量的 server 区域,可禁用 vhost_traffic_status
        listen 8080;
        allow 127.0.0.1;
        allow 192.168.242.69;			
        #设置为 prometheus 的 ip 地址

        location /nginx-status {
            stub_status on;
            access_log off;
        }

        location /status {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }
    }
    
    
    
    
    server {
        vhost_traffic_status off;		
        listen 8080;
        allow 127.0.0.1;
        allow 192.168.242.69;			

        location /nginx-status {
            stub_status on;
            access_log off;
        }
        

        location /status {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }
    }
##添加 Nginx 系统服务

vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target



systemctl daemon-reload
systemctl start nginx.service
systemctl enable nginx.service
netstat -lntp | grep nginx

在这里插入图片描述

在这里插入图片描述

##   安装  nginx-exporter
tar xf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
cd nginx-vts-exporter-0.10.3.linux-amd64/
mv nginx-vts-exporter /usr/local/bin/
vim /usr/lib/systemd/system/nginx-exporter.service 


[Unit]
Description=nginx-exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/nginx-vts-exporter -nginx.scrape_uri=http://localhost:8080/status/format/json

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start nginx-exporter
systemctl enable nginx-exporter
netstat -natp | grep :9913

在这里插入图片描述

##修改  prometheus 配置,使其能够采集数据


  - job_name: "nginx_exporter"
    metrics_path: "/metrics"
    scheme: "http"
    static_configs:
      - targets:
        - 192.168.242.70:9913
        labels:
          tags: nginx
curl -X POST http://192.168.242.69:9090/-/reload

在这里插入图片描述

部署grafana

  • 下载地址:https://grafana.com/grafana/download
    https://mirrors.bfsu.edu.cn/grafana/yum/rpm/
yum install -y grafana-enterprise-8.5.9-1.x86_64.rpm
systemctl start grafana-server
systemctl enable grafana-server

netstat -natp | grep :3000

在这里插入图片描述

在这里插入图片描述

##添加监控
--》configuration
--》Data sources
--》选择需要的应用  例如  prometheus 
-->添加监控项    Dashboards
--》Dashboards -> Manage ,选择 Prometheus 2.0 Stats 或 Prometheus Stats 即可看到 Prometheus job 实例的监控图像

在这里插入图片描述

##导入 grafana 监控面板
浏览器访问:https://grafana.com/grafana/dashboards ,
在页面中搜索 node exporter ,选择适合的面板,点击 Copy ID 或者 Download JSON


在 grafana 页面中
--》 + Create 
--》 Import ,输入面板 ID 号或者上传 JSON 文件,点击 Load,即可导入监控面板

在这里插入图片描述

总结

  • 常用的监控系统有哪些?

    • 老牌传统的:Zabbix Nagios Cacti
    • 新一代的:Prometheus 夜莺
  • Zabbix 和 Prometheus 的区别?如何选择?

    • Zabbix:更适用于传统业务架构的物理机、虚拟机环境的监控,对容器环境的支持较差;主要采用的是关系型数据库,会随着监控的节点数量增加,数据库的压力也会变大,监控数据的查询会变的很慢;性能比Prometheus要弱一些,支持的集群规模通常在2000节点以内。
    • Prometheus:支持Kubernetes容器集群的监控,是目前容器监控最好的解决方案;采用时序数据库,大大的节省了存储空间,并且提升了查询效率;支持的集群规模更大,通常超过2000个节点的监控建议直接选择Prometheus。
  • Prometheus 是一个开源的监控系统 + 时间序列数据库,数据模型是 指标名称{键值对标识} 的时间序列数据格式

  • Prometheus 主要的生态组件:

    1. prometheus server:Prometheus服务的核心组件;通过http pull拉取的方式采集监控指标数据(时间序列数据);作为时序数据库持久化存储监控指标数据;
      根据告警规则生成告警通知发送给alertmanager;内建service discovery动态服务发现功能(支持文件、DNS、consul、K8S等自动发现方式)
    2. exporter:指标暴露器,用于在原生不支持prometheus直接采集监控指标数据的系统或应用中收集监控指标数据并转换格式暴露端口给proetheus server拉取采集
      node-exporter、kube-state-metrics、cADvisor、blackbox-exporter、nginx/mysqld/redis-exporter
    3. alertmanager:接收prometheus server发来的告警通知,负责对告警通知去重、分组,并路由给接收人(邮件、钉钉、企业微信等方式)
    4. pushgateway:作为中转站,接收一些短时任务或只会推送数据的任务发来的监控指标数据,用于临时存储指标数据并统一给proetheus server拉取采集
    5. grafana:外置的监控数据展示平台,通过实验promQL查询prometheus的数据源,以图形化形式展示
  • Prometheus 工作过程

    1. prometheus server通过http pull的方式从target监控目标(exporter/pushgateway暴露的端口)拉取监控指标数据
    2. prometheus server将采集到的监控指标数据通过时序数据库持久化存储在本地磁盘或者外置存储中
    3. prometheus server将采集到的监控指标数据跟本地配置的告警规则进行比对,会把触发的告警通知发送给alertmanager
    4. alertmanager配置报警路由,可通过邮件/钉钉/企业微信等方法发送给接收人
    5. prometheus支持是原生的web UI或grafana通过promQL查询prometheus的数据源,以图形化形式展示
  • prometheus 支持使用 influxdb/openTSDB 作为远程外置存储,实现存储长期的历史数据

  • prometheus 可基于 thanos 实现 prometheus 集群的高可用(在K8S上部署,通过边车模式与prometheus部署在同一个Pod里共享存储数据)

  • Prometheus 数据采集配置

scrape_configs:
- job_name:            #定义监控任务的名称
  metrics_path:        #指定获取监控指标数据的路径,一般为 /metrics
  scheme:              #指定连接监控目标的协议,http 或 https

  static_configs:      #定义静态配置的监控目标
  - targets:
    - <IP1>:<EXPORTER_PORT>
    - <IP2>:<EXPORTER_PORT>

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

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

相关文章

Yolo系列-yolov1

YOLO-V1 经典的one-stage方法 YouOnlyLookOnce&#xff0c;名字就已经说明了一切&#xff01;把检测问题转化成回归问题&#xff0c;一个CNN就搞定了&#xff01;可以对视频进行实时检测&#xff0c;应用领域非常广&#xff01; 核心思想&#xff1a; Yolov1的核心思想是将对象…

Adapter Tuning Overview:在CV,NLP,多模态领域的代表性工作

文章目录 Delta TuningAdapter Tuning in CVAdapter Tuning in NLP Delta Tuning Adapter Tuning in CV 题目: Learning multiple visual domains with residual adapters 机构&#xff1a;牛津VGG组 论文: https://arxiv.org/pdf/1705.08045.pdf Adapter Tuning in NLP …

input输入框和按钮相关联

有了内容&#xff0c;提交按钮才会起作用&#xff01;&#xff01;&#xff01; 当input输入框中输入内容的时候&#xff0c;按钮从禁用状态变成可用状态&#xff01; 输入框中输入的内容会同步输出&#xff0c; 输入的内容被存放在e.detail.value中&#xff0c;将其提取出来赋…

MybatisPlus拦截器实战之数据的加解密和脱敏

文章目录 一、前言二、拦截器简介三、代码目录结构简介四、核心代码讲解4.1 application.yml文件4.2 自定义注解4.2.1 SensitiveEntity4.2.2 SensitiveData4.2.3 MaskedEntity4.2.4 MaskedField4.2.5 MaskedMethod 4.3 Mybatis-Plus 拦截器数据自动加密4.4 Mybatis 打印完整sql…

浅析Linux SCSI子系统:设备管理

文章目录 概述设备管理数据结构scsi_host_template&#xff1a;SCSI主机适配器模板scsi_host&#xff1a;SCSI主机适配器主机适配器支持DIF scsi_target&#xff1a;SCSI目标节点scsi_device&#xff1a;SCSI设备 添加主机适配器构建sysfs目录 添加SCSI设备挂载Lun 相关参考 概…

FTHR-G0001 新手小白的第一块keil开发板

前言 作为从未接触过这类板子的新手&#xff0c;从申请起就十分忐忑&#xff0c;拿到板子的第一印象就是小而又特别&#xff0c;既可以整块板使用&#xff0c;也可以掰开用杜邦线连接的形式具备了灵活与小巧的特点&#xff0c;而核心板的把排针围成一圈的设计就足以让它在树莓…

HRS--人力资源系统(Springboot+vue)--打基础升级--(五)编辑当条记录

今天开发第一步&#xff1a;当前条记录&#xff0c;点击编辑&#xff0c;可以修改数据 1. 首先点击编辑&#xff0c;获取到了当前条的数据&#xff0c;弹出了一个小窗口 这个窗口是不是很熟悉&#xff0c;&#xff0c;没错。。这个窗口跟新增按钮弹出的窗口是同一个的 bug1&am…

使用 Next.js、Langchain 和 OpenAI 构建 AI 聊天机器人

在当今时代&#xff0c;将 AI 体验集成到您的 Web 应用程序中变得越来越重要。LangChain 与 Next.js 的强大功能相结合&#xff0c;提供了一种无缝的方式来将 AI 驱动的功能引入您的应用程序。 在本指南中&#xff0c;我们将学习如何使用Next.js&#xff0c;LangChain&#xf…

【MongoDB系列】1.MongoDB 6.x 在 Windows 和 Linux 下的安装教程(详细)

本文主要介绍 MongoDB 最新版本 6.x 在Windows 和 Linux 操作系统下的安装方式&#xff0c;和过去 4.x 、5.x 有些许不同之处&#xff0c;供大家参考。 Windows 安装 进入官网下载 Mongodb 安装包&#xff0c;点此跳转&#xff0c;网站会自动检测当前操作系统提供最新的版本&…

线性代数的学习和整理14: 线性方程组求解

目录 1 线性方程组 2 有解&#xff0c;无解 3 解的个数 1 线性方程组 A*xy 3根直线的交点&#xff0c;就是解 无解的情况 无解&#xff1a; 三线平行无解&#xff1a;三线不相交 有解 有唯一解&#xff1a;三线相交于一点有无数解&#xff1a;三条线重叠 2 齐次线性方程组…

vector quantized diffusion model for text-to-image synthesis

CVPR 2022论文分享会 - 基于VQ-Diffusion的文本到图像合成_哔哩哔哩_bilibiliCVPR 2022论文分享会 - 基于VQ-Diffusion的文本到图像合成, 视频播放量 1438、弹幕量 2、点赞数 38、投硬币枚数 12、收藏人数 40、转发人数 13, 视频作者 微软科技, 作者简介 大家好我是田老师&…

【电源专题】单节锂离子电池的保护的基本原理

为什么需要保护 锂离子电池在使用中最重要的是要确保它不会被过度充电和放电,这两种行为对它的伤害都是不可修复的,甚至可能还是危险的。因为它的内部材料结构被破坏了,就什么问题都可能表现出来。 因此使用中首先要做的就是要给它加上保护电路,确保过度充放电的行为不会…

系统报错msvcp120.dll丢失的解决方法,常见的三种解决方法

今天为大家讲述关于系统报错msvcp120.dll丢失的解决方法。在这个信息爆炸的时代&#xff0c;我们每个人都可能遇到各种各样的问题&#xff0c;而这些问题往往需要我们去探索、去解决。今天&#xff0c;我将带领大家走进这个神秘的世界&#xff0c;一起寻找解决msvcp120.dll丢失…

LONG-TAILED RECOGNITION 精读

BackGround 解决类别不平衡问题一般的思路&#xff1a; re-sample the data 重采样design specific loss functions that better facilitate learning with imbalanced data 设计针对不平衡数据的损失函数enhance recognition performance of the tail classes by transferri…

【NVIDIA CUDA】2023 CUDA夏令营编程模型(二)

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

为啥外卖小哥宁愿600一月租电动车,也不花2、3千买一辆送外卖!背后的原因......

大家好&#xff01;我是菜哥&#xff01; 又到周末了&#xff0c;我们聊点非技术的东西。最近知乎“为何那些穿梭于城市大街小巷的外卖小哥&#xff0c;宁愿每月掏出600块租一辆电动车&#xff0c;也不愿意掏出2、3千买一辆呢&#xff1f;” 冲上热榜&#xff01; 听起来有点“…

redis学习笔记 - 进阶部分

文章目录 redis单线程如何处理并发的客户端&#xff0c;以及为何单线程快&#xff1f;redis的发展历程&#xff1a;redis单线程和多线程的体现&#xff1a;redis3.x单线程时代但性能很快的主要原因&#xff1a;redis4.x开始引入多线程&#xff1a;redis6/redis7引入多线程IO&am…

UDP通信、本地套接字

#include <sys/types.h> #include <sys/socket > ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);- 参数&#xff1a;- sockfd : 通信的fd- buf : 要发送的数据- len : 发送数据的长度…

leetcode 567. 字符串的排列(滑动窗口-java)

滑动窗口 字符串的排列滑动窗口代码演示进阶优化版 上期经典 字符串的排列 难度 -中等 leetcode567. 字符串的排列 给你两个字符串 s1 和 s2 &#xff0c;写一个函数来判断 s2 是否包含 s1 的排列。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 换句…

curl --resolve参数的作用

之所以会有这样的操作&#xff0c;是因为域名一般对应的都是一个反向代理&#xff0c;直接请求域名&#xff0c;反向代理会将流量随机选一台机器打过去&#xff0c;而无法确保所有的机器都可用。所以直接用ip。 在 curl 命令中&#xff0c;--resolve 参数用于指定自定义的主机名…