1.Prometheus

文章目录

  • 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>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python“牵手”当当网商品列表数据,关键词搜索当当网API接口数据,当当网API接口申请指南

当当网平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范&#xff0c;当当网API接口是指通过编程的方式&#xff0c;让开发者能够通过HTTP协议直接访问当当网平台的数据&#xff0c;包括商品信息、店铺信息、物流信息等&#xff0c;从而实现当…

开源与云计算:新的合作模式

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

Docker file解析

文章目录 简介构建的三步骤Docker执行Dockerfile的大致流程DockerFile常用保留字指令创建第一个Dockerfile镜像的缓存特性 Docker file 解析 简介 Dockerfile是用来构建Docker镜像的文本文件&#xff0c;是由一条条构建镜像所需的指令和参数构成的脚本&#xff0c;记录了镜像构…

Python爬虫 异步、缓存技巧

在进行大规模数据抓取时&#xff0c;Python爬虫的速度和效率是至关重要的。本文将介绍如何通过异步请求、缓存和代理池等技巧来优化Python爬虫的速度和性能。我们提供了实用的方案和代码示例&#xff0c;帮助你加速数据抓取过程&#xff0c;提高爬虫的效率。 使用异步请求、缓…

【Linux应用部署篇】在CSDN云IDE平台部署Etherpad文档编辑器

【Linux应用部署篇】在CSDN云IDE平台部署Etherpad文档编辑器 一、CSDN云IDE平台介绍1.1 CSDN云IDE平台简介1.2 CSDN云IDE平台特点 二、本次实践介绍2.1 本次实践介绍2.2 Etherpad简介 三、登录CSDN云IDE平台3.1 登录CSDN开发云3.2 登录云IDE3.3 新建工作空间3.4 进入工作空间 四…

Java 中的集合类有哪些?如何分类的?

面试回答 Java 的整个集合框架中&#xff0c;主要分为 List、Set、Queue、Stack、Map 等五种数据结构。其中&#xff0c;前四种数据结构都是单一元素的集合&#xff0c;而最后的 Map 则是以 KV 对的形式使用。 从继承关系上讲&#xff0c;List、Set、Queue都是 Collection 的子…

vscode c++编译时报错

文章目录 1. 报错内容&#xff1a;GDB Failed with message;2. 报错内容&#xff1a;Unable to start debugging. 1. 报错内容&#xff1a;GDB Failed with message; 例如上图报错&#xff0c;一般就是编译器选择错误&#xff0c;有两种方法解决&#xff1a; 打开 tasks.json …

React 全栈体系(三)

第二章 React面向组件编程 四、组件三大核心属性3: refs与事件处理 1. 效果 需求: 自定义组件, 功能说明如下: 点击按钮, 提示第一个输入框中的值当第2个输入框失去焦点时, 提示这个输入框中的值 2. 理解 组件内的标签可以定义ref属性来标识自己 3. 编码 3.1 字符串形式…

什么是计算机视觉,计算机视觉的主要任务及应用

目录 1. 什么是计算机视觉 2. 计算机视觉的主要任务及应用 2.1 图像分类 2.1.1 图像分类的主要流程 2.2 目标检测 2.2.1 目标检测的主要流程 2.3 图像分割 2.3.1 图像分割的主要流程 2.4 人脸识别 2.4.1 人脸识别的主要流程 对于我们人类来说&#xff0c;要想认出身边…

CUDA小白 - NPP(1) - NppCore

cuda小白 原文链接 NPP GPU架构近些年也有不少的变化&#xff0c;具体的可以参考别的博主的介绍&#xff0c;都比较详细。还有一些cuda中的专有名词的含义&#xff0c;可以参考《详解CUDA的Context、Stream、Warp、SM、SP、Kernel、Block、Grid》 先从最基本的开始&#xff0…

VS插件DevExpress CodeRush v23.1 - 支持Visual Studio ARM

DevExpress CodeRush是一个强大的Visual Studio .NET 插件&#xff0c;它利用整合技术&#xff0c;通过促进开发者和团队效率来提升开发者体验。CodeRush能帮助你以极高的效率创建和维护源代码。Consume-first 申明&#xff0c;强大的模板&#xff0c;智能的选择工具&#xff0…

【力扣】216. 组合总和 III <回溯、回溯剪枝>

【力扣】216. 组合总和 III 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字 1 到 9&#xff0c;每个数字最多使用一次&#xff0c;返回所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回…

Hbase文档--架构体系

阿丹&#xff1a; 基础概念了解之后了解目标知识的架构体系&#xff0c;就能事半功倍。 架构体系 关键组件介绍&#xff1a; HBase – Hadoop Database&#xff0c;是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统&#xff0c;利用HBase技术可在廉价PC Server上搭建起…

记录一次presto sql执行报错 Error executing query的解决办法

在执行presto sql 时报错截图如下&#xff1a; 查看后台执行报错日志&#xff1a; java.sql.SQLException: Error executing query at com.facebook.presto.jdbc.PrestoStatement.internalExecute(PrestoStatement.java:307) at com.facebook.presto.jdbc.PrestoStatement.exe…

leetcode76. 最小覆盖子串(滑动窗口-java)

滑动窗口 最小覆盖子串滑动窗口代码 上期经典 最小覆盖子串 难度 - 困难 原题链接 - 最小覆盖字串 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串&#xff0c;则返回空字符串 “” 。 注意&#xff1a; 对于 t…

学习pytorch5 常用的transforms

常用的transforms 1. ToTensor()2. Normalize() 1. ToTensor() 2. Normalize() # 1. ToTensor 把PIL图片类型数据或ndarry numpy数据类型转换为tensor类型数据 from cv2 import imread from torchvision import transforms from torch.utils.tensorboard import SummaryWrit…

Rust处理JSON

基本操作 Cargo.toml: [package]name "json"version "0.1.0"edition "2021"# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html[dependencies]serde { version "1", features …

【android12-linux-5.1】【ST芯片】驱动与HAL移植后数据方向异常

ST的传感器驱动与HAL一直成功后&#xff0c;能拿到数据了&#xff0c;但是设备是横屏&#xff0c;系统默认是竖屏。就会出现屏幕自动转动时方向是错的的情况&#xff0c;设备横立展示的是竖屏&#xff0c;设备竖立展示的是横屏。 这个是PCB上设计的传感器贴片方向和横屏不一致…

生成式人工智能的潜在有害影响与未来之路(三)

产品责任法的潜在适用 背景和风险 产品责任是整个二十世纪发展起来的一个法律领域&#xff0c;旨在应对大规模生产的产品可能对社会造成的伤害。这一法律领域侧重于三个主要危害&#xff1a;设计缺陷的产品、制造缺陷的产品和营销缺陷的产品。产品责任法的特点有两个要素&…

Hadoop Yarn 配置多队列的容量调度器

文章目录 配置多队列的容量调度器多队列查看 配置多队列的容量调度器 首先&#xff0c;我们进入 Hadoop 的配置文件目录中&#xff08;$HADOOP_HOME/etc/hadoop&#xff09;&#xff1b; 然后通过编辑容量调度器配置文件 capacity-scheduler.xml 来配置多队列的形式。 默认只…