Prometheus 监控系统

news2024/11/19 16:35:02

常用的监控系统有哪些?

老牌传统

Zabbix  Nagios  Cacti


新一代的

Prometheus   夜莺

Zabbix 和 Prometheus 的区别?如何选择?【重中之重】

Zabbix

更适用于传统业务架构的物理机、虚拟机环境的监控,对容器环境的支持较差;主要采用的是关系型数据库,会随着监控的节点数量增加,数据库的压力也会变大,监控数据的查询会变的很慢;性能比Prometheus要弱一些,支持的集群规模通常在2000节点以内

Prometheus

支持Kubernetes容器集群的监控,是目前容器监控最好的解决方案;采用时序数据库,大大的节省了存储空间,并且提升了查询效率;支持的集群规模更大,通常超过2000个节点的监控建议直接选择Prometheus。

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

Prometheus 是一个开源的监控系统 + 时间序列数据库,数据模型是 指标名称{键值对标识} 的时间序列数据格式 

Prometheus 的特点
●多维数据模型:由度量名称和键值对标识的时间序列数据
时间序列数据:按照时间顺序记录系统、设备状态变化的数据,每个数据称为一个样本;服务器指标数据、应用程序性能监控数据、网络数据等都是时序数据

●内置时间序列(Time Series)数据库:Prometheus ;外置的远端存储通常会用:InfluxDB、OpenTSDB 等

●promQL 一种灵活的查询语言,可以利用多维数据完成复杂查询

●基于 HTTP 的 pull(拉取)方式采集时间序列数据

●同时支持 PushGateway 组件收集数据

●通过静态配置或服务发现发现目标

●支持作为数据源接入 Grafana    

Prometheus 的生态组件【重中之重】

  • prometheus server:Prometheus服务的核心组件;通过http pull拉取的方式采集监控指标数据(时间序列数据);作为时序数据库持久化存储监控指标数据;
    • 根据告警规则生成告警通知发送给alertmanager;内建service discovery动态服务发现功能(支持文件、DNS、consul、K8S等自动发现方式)
  • exporter:指标暴露器,用于在原生不支持prometheus直接采集监控指标数据的系统或应用收集监控指标数据并转换格式暴露端口给proetheus server拉取采集
    • node-exporter、kube-state-metrics、cADvisor、blackbox-exporter、nginx/mysqld/redis-exporter
  • alertmanager接收prometheus server发来的告警通知,负责对告警通知去重、分组,并路由给接收人(邮件、钉钉、企业微信等方式)
  • pushgateway:作为中转站,接收一些短时任务或只会推送数据的任务发来的监控指标数据,用于临时存储指标数据并统一给proetheus server拉取采集
  • 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 的局限性

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



部署 Prometheus

Prometheust Server 端安装和相关配置

(1)上传 prometheus-2.35.0.linux-amd64.tar.gz 到 /opt 目录中,并解压

systemctl stop firewalld
setenforce 0
cd /opt/
tar xf prometheus-2.35.0.linux-amd64.tar.gz
mv prometheus-2.35.0.linux-amd64 /usr/local/prometheus
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 数据采集配置

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

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

(2)配置系统启动文件,启动 Prometheust

cat > /usr/lib/systemd/system/prometheus.service <<'EOF'
[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
EOF

(3)启动 

systemctl start prometheus
systemctl enable prometheus

netstat -natp | grep :9090

浏览器访问:http://192.168.80.30:9090 ,访问到 Prometheus 的 Web UI 界面
        点击页面的 Status -> Targets,如看到 Target 状态都为 UP,说明 Prometheus 能正常采集到数据
        http://192.168.80.30:9090/metrics ,可以看到 Prometheus 采集到自己的指标数据,其中 Help 字段用于解释当前指标的含义,Type 字段用于说明数据的类型


被监控节点部署 Exporters

部署 Node Exporter 监控系统级指标
(1)上传 node_exporter-1.3.1.linux-amd64.tar.gz 到 /opt 目录中,并解压

cd /opt/
tar xf node_exporter-1.3.1.linux-amd64.tar.gz
mv node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin

(2)配置启动文件

cat > /usr/lib/systemd/system/node_exporter.service <<'EOF'
[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.tcpstat

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

[Install]
WantedBy=multi-user.target
EOF

(3)启动 

systemctl start node_exporter
systemctl enable node_exporter

netstat -natp | grep :9100

浏览器访问:http://192.168.80.30:9100/metrics ,可以看到 Node Exporter 采集到的指标数据

常用的各指标
●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

(4)修改 prometheus 配置文件,加入到 prometheus 监控中

vim /usr/local/prometheus/prometheus.yml

#在尾部增加如下内容
  - job_name: nodes
    metrics_path: "/metrics"
    static_configs:
    - targets:
      - 192.168.80.30:9100
      - 192.168.80.11:9100
      - 192.168.80.12:9100
      labels:
        service: kubernetes


(5)重新载入配置

curl -X POST http://192.168.80.30:9090/-/reload
    或    
systemctl reload prometheus

浏览器查看 Prometheus 页面的 Status -> Targets

 

监控 MySQL 配置示例

在 MySQL 服务器上操作

(1)上传 mysqld_exporter-0.14.0.linux-amd64.tar.gz 到 /opt 目录中,并解压

cd /opt/
tar xf mysqld_exporter-0.14.0.linux-amd64.tar.gz
mv mysqld_exporter-0.14.0.linux-amd64/mysqld_exporter /usr/local/bin/

(2)配置启动文件

cat > /usr/lib/systemd/system/mysqld_exporter.service <<'EOF'
[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
EOF

(3)修改 MySQL 配置文件

vim /etc/my.cnf

[client]
......
host=localhost
user=exporter
password=abc123

(4)授权 exporter 用户

mysql -uroot -pabc123
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost' IDENTIFIED BY 'abc123';

(5)重启服务 

systemctl restart mysqld
systemctl start mysqld_exporter
systemctl enable mysqld_exporter

netstat -natp | grep :9104

在 Prometheus 服务器上操作

(1)修改 prometheus 配置文件,加入到 prometheus 监控中

vim /usr/local/prometheus/prometheus.yml

#在尾部增加如下内容
  - job_name: mysqld
    metrics_path: "/metrics"
    static_configs:
    - targets:
          - 192.168.80.15:9104
      labels:
        service: mysqld


(2)重新载入配置
curl -X POST http://192.168.80.30:9090/-/reload    或    systemctl reload prometheus
浏览器查看 Prometheus 页面的 Status -> Targets

 


监控 Nginx 配置示例

在 Nginx 服务器上操作

下载 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,加上nginx-module-vts模块(用于以json格式在某站点显示本机监控信息)

修改nginx.conf网页发布配置,设置发布统计信息的站点

安装启动nginx-exporter,指定刚刚设置的发布统计信息的站点,获取站点json数据并暴露给Prometheus

Prometheus服务端配置文件添加新job:指定监控主机的ip,http路径:/metrics

(1)解压 nginx 插件

cd /opt
tar xf nginx-module-vts-0.1.18.tar.gz
mv nginx-module-vts-0.1.18 /usr/local/nginx-module-vts

(2)安装 Nginx(虽然yum安装更方便但是这里不用。这里编译安装是为了添加引用nginx-module模块)

yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
#依赖包
useradd -M -s /sbin/nologin nginx
#添加用户

#解压
cd /opt
tar xf nginx-1.18.0.tar.gz

#配置
cd nginx-1.18.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 & make install

(3)修改 nginx 配置文件,启动 nginx

vim /usr/local/nginx/conf/nginx.conf

http {
    vhost_traffic_status_zone;                    #添加
    vhost_traffic_status_filter_by_host on;        #添加,开启此功能,在 Nginx 配置有多个 server_name 的情况下,会根据不同的 server_name 进行流量的统计,否则默认会把流量全部计算到第一个 server_name 上
    ......
    server {
    ......
    }
    
    server {
        vhost_traffic_status off;        #在不想统计流量的 server 区域,可禁用 vhost_traffic_status
        listen 8080;
        allow 127.0.0.1;
        allow 192.168.80.30;            #设置为 prometheus 的 ip 地址

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

        location /status {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }
    }
}

#假如 nginx 没有规范配置 server_name 或者无需进行监控的 server 上,那么建议在此 vhost 上禁用统计监控功能。否则会出现 127.0.0.1、hostname 等的域名监控信息。

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
nginx -t
cat > /lib/systemd/system/nginx.service <<'EOF'
[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
EOF
systemctl start nginx
systemctl enable nginx


浏览器访问:http://192.168.80.15:8080/status ,可以看到 Nginx Vhost Traffic Status 的页面信息

 


(4)解压 nginx-exporter,启动 nginx-exporter

cd /opt/
tar -zxvf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
mv nginx-vts-exporter-0.10.3.linux-amd64/nginx-vts-exporter /usr/local/bin/
cat > /usr/lib/systemd/system/nginx-exporter.service <<'EOF'
[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
EOF
systemctl start nginx-exporter
systemctl enable nginx-exporter

netstat -natp | grep :9913

在 Prometheus 服务器上操作

(1)修改 prometheus 配置文件,加入到 prometheus 监控中

vim /usr/local/prometheus/prometheus.yml

#在尾部增加如下内容
  - job_name: nginx
    metrics_path: "/metrics"
    static_configs:
    - targets:
          - 192.168.80.15:9913
      labels:
        service: nginx #标签指不指定随意


(2)重新载入配置

curl -X POST http://192.168.80.30:9090/-/reload
    或    
systemctl reload prometheus


浏览器查看 Prometheus 页面的 Status -> Targets

 


部署 Grafana 进行展示

(1)下载和安装

下载地址:https://grafana.com/grafana/download
                  https://mirrors.bfsu.edu.cn/grafana/yum/rpm/

yum install -y grafana-7.4.0-1.x86_64.rpm

systemctl start grafana-server
systemctl enable grafana-server

netstat -natp | grep :3000

浏览器访问:http://192.168.80.30:3000 ,默认账号和密码为 admin/admin

 

(2)配置数据源
Configuration -> Data Sources -> Add data source -> 选择 Prometheus
HTTP -> URL 输入 http://192.168.80.30:9090
点击 Save & Test

点击 上方菜单 Dashboards,Import 所有默认模板
Dashboards -> Manage ,选择 Prometheus 2.0 Stats 或 Prometheus Stats 即可看到 Prometheus job 实例的监控图像

 

 

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

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


部署 Prometheus 服务发现

基于文件的服务发现

基于文件的服务发现是仅仅略优于静态配置的服务发现方式,它不依赖于任何平台或第三方服务,因而也是最为简单和通用的实现方式。
Prometheus Server 会定期从文件中加载 Target 信息,文件可使用 YAML 和 JSON 格式,它含有定义的 Target 列表,以及可选的标签信息。 

 

大致过程为,编写独立的配置文件,包含target的IP信息(若干被监控的主机)

在prometheus 配置文件中引用这个配置文件(即为引用被监控的主机的ip)

这样就不用在prometheus 配置文件中直接指定被监控主机的ip,并且更改了配置文件后会自动刷新(1分钟)

(1)创建用于服务发现的文件,在文件中配置所需的 target 

cd /usr/local/prometheus
mkdir targets

vim targets/node-exporter.yaml

- targets:
  - 192.168.80.30:9100
  - 192.168.80.15:9100
  labels:
    app: node-exporter
    job: node
vim targets/mysqld-exporter.yaml

- targets:
  - 192.168.80.30:9104
  - 192.168.80.15:9104
  labels:
    app: mysqld-exporter
    job: mysqld

#修改 prometheus 配置文件,发现 target 的配置,定义在配置文件的 job 之中

vim /usr/local/prometheus/prometheus.yml

......
scrape_configs:
  - job_name: nodes
    file_sd_configs:                  #指定使用文件服务发现
    - files:                          #指定要加载的文件列表
      - targets/node*.yaml            #文件加载支持通配符
      refresh_interval: 2m            #每隔 2 分钟重新加载一次文件中定义的 Targets,默认为 5m
  
  - job_name: mysqld
    file_sd_configs:
    - files:
      - targets/mysqld*.yaml
      refresh_interval: 2m
systemctl reload prometheus

浏览器查看 Prometheus 页面的 Status -> Targets

基于 Consul 的服务发现

Consul 是一款基于 golang 开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理的功能。
       提供服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等功能。

下载地址:https://www.consul.io/downloads/

 

上面的两种自动发现方式,静态(直接配置文件写IP列表) 文件(引用文件中IP列表) ,而基于consul则是引用consul服务器,consul服务器上定义IP列表

(1)部署 Consul 服务(本次实验一并部署在Prometheus主机上)

cd /opt/
unzip consul_1.9.2_linux_amd64.zip
mv consul /usr/local/bin/

#创建 Consul 服务的数据目录和配置目录

mkdir /var/lib/consul-data
mkdir /etc/consul/

#使用 server 模式启动 Consul 服务

consul agent \
-server \
-bootstrap \
-ui \
-data-dir=/var/lib/consul-data \
-config-dir=/etc/consul/ \
-bind=192.168.80.30 \         #Consul服务器IP(由于本次与Prometheus主机部署在同一个节点所以一样
-client=0.0.0.0 \
-node=consul-server01 &> /var/log/consul.log &

#查看 consul 集群成员

consul members

(2)在 Consul 服务器上注册 Services
#在配置目录中添加文件

vim /etc/consul/nodes.json

{
  "services": [
    {
      "id": "node_exporter-node01",
      "name": "node01",
      "address": "192.168.80.30",
      "port": 9100,
      "tags": ["nodes"],  #标签 很重要 (✨与Prometheus配置文件中的tags相对应)Prometheus根据标签进行分类 加入自己自动发现列表中
      "checks": [{
        "http": "http://192.168.80.30:9100/metrics",
        "interval": "5s"
      }]
    },
    {
      "id": "node_exporter-node02",
      "name": "node02",
      "address": "192.168.80.15",
      "port": 9100,
      "tags": ["nodes"],
      "checks": [{
        "http": "http://192.168.80.15:9100/metrics",
        "interval": "5s"
      }]
    }
  ]
}

#让 consul 重新加载配置信息

consul reload

浏览器访问:http://192.168.80.30:8500

(3)修改 prometheus 配置文件,引用consul服务器,得到consul服务器上的ip列表

vim /usr/local/prometheus/prometheus.yml

......
  - job_name: nodes
    consul_sd_configs:             #指定使用 consul 服务发现
    - server: 192.168.80.30:8500   #指定 consul 服务的端点列表(consul服务器ip)
      tags:                        #(✨与consul的tags相对应)指定 consul 服务发现的 services 中哪些 service 能够加入到 prometheus 监控的标签
      - nodes
      refresh_interval: 2m
systemctl reload prometheus

浏览器查看 Prometheus 页面的 Status -> Targets

 

 

让 consul 注销 Service

consul services deregister -id="node_exporter-node02"

让 consul 重新注册

consul services register /etc/consul/nodes.json

 基于 Kubernetes API 的服务发现

基于 Kubernetes API 的服务发现机制,支持将API Server 中 Node、Service、Endpoint、Pod 和 Ingress 等资源类型下相应的各资源对象视作 target, 并持续监视相关资源的变动

  • Node、Service、Endpoint、Pod 和 Ingress 资源分别由各自的发现机制进行定义
  • 负责发现每种类型资源对象的组件,在 Prometheus 中称为一个 role
  • 支持在集群上基于 DaemonSet 控制器部署 node-exporter 后发现各 Node 节点,也可以通过 kubelet 来作为 Prometheus 发现各 Node 节点的入口

#基于 Kubernetes 发现机制的部分配置参数

# The API server addresses. If left empty, Prometheus is assumed to run inside of the cluster and will discover API servers automatically
and use the pod's
# CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.
[ api_server: <host> ] 
#如果为空 会认为Prometheus运行在集群内部 自动发现apiserver(二进制 或 docker run单独部署 则需要指定apiserver地址)

# The Kubernetes role of entities that should be discovered. One of endpoints, service, pod, node, or ingress.
role: <string> #监控资源项

# Optional authentication information used to authenticate to the API server.
# Note that 'basic_auth', 'bearer_token'和'bearer_token_file' 等认证方式互斥;
[ bearer_token: <secret> ] #指定认证方式 token认证
[ bearer_token_file: <filename> ]

# TLS configuration.
tls_config: #指定认证方式 证书认证
# CA certificate to validate API server certificate with.
[ ca_file: <filename> ] #证书认证指定ca文件

# Certificate and key files for client cert authentication to the server.
[ cert_file: <filename> ] #证书认证指定证书文件
[ key_file: <filename> ] #证书认证指定秘钥文件

# ServerName extension to indicate the name of the server.
[ server_name: <string> ] #证书认证指定主机名(可省略)

# Optional namespace discovery. If omitted, all namespaces are used.
namespaces: #命名空间(省略则代表所有命名空间)
names:
[ - <string> ]


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

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

相关文章

5.从头跑一个pipeline

1.安装torch pip install torchvision torch PyTorch的torchvision.models模块中自带的很多预定义模型。torchvision 是PyTorch的一个官方库&#xff0c;专门用于处理计算机视觉任务。在这个库中&#xff0c;可以找到许多常用的卷积神经网络模型&#xff0c;包括ResNet、VGG、…

【Eclipse】汉化简体中文教程(官方汉化包,IDE自带软件安装功能),图文详情

目录 0.环境 1.步骤 1&#xff09;查看eclipse的版本 2&#xff09;在官网找语言包&#xff0c;并复制链接 3&#xff09;将链接复制到eclipse中 4&#xff09;汉化完成 0.环境 windows11&#xff0c;64位&#xff1b; eclipse 2021-6版本 1.步骤 思路&#xff1a;在官网找…

【FAQ】云存储EasyCVR视频汇聚平台分发rtsp流时,出现“用户已过期”提示该如何解决?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

2023-8-23 合并集合

题目链接&#xff1a;合并集合 #include <iostream>using namespace std;const int N 100010;int n, m; int p[N];int find(int x) {if(p[x] ! x) p[x] find(p[x]);return p[x]; }int main() {cin >> n >> m;for(int i 1; i < n; i) p[i] i;while(m…

webrtc的Sdp中的Plan-b和UnifiedPlan

在一些类似于视频会议场景下&#xff0c;媒体会话参与者需要接收或者发送多个流&#xff0c;例如一个源端&#xff0c;同时发送多个左右音轨的音频&#xff0c;或者多个摄像头的视频流&#xff1b;在2013年&#xff0c;提出了2个不同的SDP IETF草案Plan B和Unified Plan&#x…

云服务器(Centos7系统)配置JAVA+mysql+tomcat 环境

文章主要内容来源云服务器&#xff08;Centos7系统&#xff09;部署javaweb项目&#xff08;二&#xff09;配置JAVAmysqltomcat 环境_man_zuo的博客-CSDN博客 模仿途中遇到的问题 连接无效 有时连接无法下载&#xff0c;可能是过期了&#xff0c;将其更换为官网给的下载连接即…

精准高效农业作业,植保无人机显身手

中国作为农业大国&#xff0c;拥有约18亿亩的农田&#xff0c;每年都需要进行种子喷洒和农药施用等农业作业&#xff0c;对于普通农户来说&#xff0c;这是一项耗时耗力的工程&#xff0c;同时&#xff0c;人工喷洒农药极易造成农药慢性中毒&#xff0c;对农民的身体健康产生极…

Linux 虚拟机安装 hadoop

目录 1 hadoop下载 2 解压hadoop 3 为 hadoop 文件夹改名 4 给 hadoop 文件夹赋权 5 修改环境变量 6 刷新环境变量 7 在hadoop313目录下创建文件夹data 8 检查文件 9 编辑 ./core-site.xml文件 10 编辑./hadoop-env.sh文件 11 编辑./hdfs-site.xml文件 12 编辑./mapr…

python并发编程

一、程序提速的方法 二、python对并发编程的支持 多线程&#xff1a;threading&#xff0c;利用CPU和IO可以同时执行的原理&#xff0c;让CPU不会干巴巴等待IO完成&#xff1b;多进程&#xff1a;multiprocess&#xff0c;利用多核CPU的能力&#xff0c;真正的并行执行任务&am…

大数据Flink(六十六):Flink的重要概念和小结

文章目录 Flink的重要概念和小结 一、​​​​​​​​​​​​​​数据流图(Dataflow Graph)

三维模拟推演电子沙盘虚拟数字沙盘开发教程第13课

三维模拟推演电子沙盘虚拟数字沙盘开发教程第13课 该数据库中只提供 成都市火车南站附近的数据请注意&#xff0c;104.0648,30.61658 在SDK中为了方便三方数据的接入&#xff0c;引入了一个用户层接口。主要是完成三方数据的接入&#xff0c;含动态数据&#xff08;如GPS&…

Shopee卖家开店后用知虾shopee抢占市场!

​ Shopee卖家在实际操作时需要根据自己的情况和行业特点进行具体的操作和决策&#xff0c;这里分享知虾shopee运营方法&#xff1a; 市场研究&#xff1a;了解知虾shopee平台上的市场趋势、受众需求和竞争情况。观察热门品类、畅销产品以及受欢迎的品牌&#xff0c;找到有潜力…

如何使用CSS实现一个水平居中和垂直居中的布局?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 水平居中布局⭐ 垂直居中布局⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣…

设计模式(3)抽象工厂模式

一、概述&#xff1a; 1、提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无须指定它们具体的类。 2、结构图&#xff1a; 3、举例代码&#xff1a; &#xff08;1&#xff09; 实体&#xff1a; public interface IUser {public void insert(User user);public…

android studio gradle build running慢 卡住不动 失败 原因与解决方式

快速导航 分析原因解决办法 分析原因 主要原因是 gradle 构建时无法从网络获取需要的包或库。 解决办法 将国外库替换为阿里云镜像库。 例如 google 对应的库是 maven { url ‘https://maven.aliyun.com/repository/google’ }

ORB-SLAM2学习笔记10之图像关键帧KeyFrame

文章目录 0 引言1 KeyFrame类1.1 构造函数1.2 成员函数1.3 关键帧之间共视图1.3.1 AddConnection1.3.2 UpdateBestCovisibles1.3.3 UpdateConnections1.3.4 EraseConnection1.3.5 SetBadFlag 1.4 地图点1.5 生成树 2 KeyFrame用途 0 引言 ORB-SLAM2学习笔记7详细了解了System主…

华为数通方向HCIP-DataCom H12-821题库(单选题:41-60)

第41题 以下关于IS-IS协议说法错误的是? A、IS-IS协议支持CLNP网络 B、IS-IS 协议支持IP 网络 C、IS-IS 协议的报文直接由数据链路层封装 D、IS-IS协议是运行在AS之间的链路状态协议 答案&#xff1a;D 解析&#xff1a; 关于IS-IS协议的说法错误是D. IS-IS协议是运行在A…

机器视觉学习三大忌-贪多,贪杂​,贪快

​很多年前&#xff0c;我刚做机器视觉工程师的时候&#xff0c;我师傅第一件事和我说&#xff0c;不要学多&#xff0c;不要学那么多&#xff0c;不要以为会了&#xff0c;就怠慢以后的学习&#xff0c;学习是一生的事情&#xff0c;不是一时的事情。我牢牢记住我师傅的话。 …

知识蒸馏开山之作(部分解读)—Distilling the Knowledge in a Neural Network

1、蒸馏温度T 正常的模型学习到的就是在正确的类别上得到最大的概率&#xff0c;但是不正确的分类上也会得到一些概率尽管有时这些概率很小&#xff0c;但是在这些不正确的分类中&#xff0c;有一些分类的可能性仍然是其他类别的很多倍。但是对这些非正确类别的预测概率也能反…

Ext JS 之Microloader(微加载器)

“Microloader”是 Sencha 数据驱动的 JavaScript 和 CSS 动态加载器的名称。 清单 app.json 用于应用的设置,Sencha Cmd 在构建的时候会读取这个文件。 Sencha Cmd 转换“app.json”的内容并将生成的清单传递给 Microloader 以在运行时使用。 最后,Ext JS 本身也会查阅运…