最新要闻
- 【世界播资讯】重庆龙凤胎熊猫宝宝取名“渝可”“渝爱”
- 速看:《小美人鱼》剧照还原动画经典场景:就是肤色不太对
- 头条焦点:中国制造!索尼第四代降噪豆XM5佩戴/音质/快充全面升级:AirPods Pro2劲敌
- 老人墓中藏13万现金全部霉变 专业能手全力抢救:官方科普纸钞如何保管
- 海底捞部分门店取消免费美甲:只能付费购买穿戴甲
- 今热点:五菱电动“吉姆尼” 宝骏悦也续航里程公布:能跑303公里
- 董明珠要玩大的?格力成立房地产新公司 投资数亿元
- 东方甄选称被骗了 虾品供应商发声:不认可甩锅行为
- 热点在线丨百度文心一言申请页被挤爆:预约1小时涌入3万企业
- 环球快讯:现实版GTA!美劫匪偷直升机因操作失误当场坠毁:一地碎片
- 国宝大熊猫的视频_国宝大熊猫的故事
- 每日速看!铁匠用30年给猫和老鼠做铠甲:一套比一套帅!
- 戴尔推出了灵越14 ARM版:骁龙8cx Gen 2、16小时长续航
- 世界播报:卡布达归来!《铁甲小宝》高清修复版将至:已开通B站账号
- 两败俱伤:比亚迪海豹街头铲翻宝马X5
- 【环球时快讯】小伙爆改特斯拉Model 3:加装120寸轮毂、增加“逆天”功能
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
每日看点!Prometheus 监控系统1
一、Prometheus 概述
1.1简介
Prometheus 是一个开源的服务监控系统和时序数据库,其提供了通用的数据模型和快捷数据采集、存储和查询接口。它的核心组件 Prometheus server 会定期从静态配置的监控目标或者基于服务发现自动配置的目标中进行拉取数据,新拉取到的数据会持久化到存储设备当中。
每个被监控的主机都可以通过专用的 exporter 程序提供输出监控数据的接口,它会在目标处收集监控数据,并暴露出一个 HTTP 接口供 Prometheus server 查询,Prometheus 通过基于 HTTP 的 pull 的方式来周期性的采集数据。 如果存在告警规则,则抓取到数据之后会根据规则进行计算,满足告警条件则会生成告警,并发送到 Alertmanager 完成告警的汇总和分发。当被监控的目标有主动推送数据的需求时,可以以 Pushgateway 组件进行接收并临时存储数据,然后等待 Prometheus server 完成数据的采集。
(资料图片)
任何被监控的目标都需要事先纳入到监控系统中才能进行时序数据采集、存储、告警和展示,监控目标可以通过配置信息以静态形式指定,也可以让 Prometheus 通过服务发现的机制进行动态管理。Prometheus 能够直接把 API Server 作为服务发现系统使用,进而动态发现和监控集群中的所有可被监控的对象。
1.2官网
Prometheus 官网地址:https://prometheus.ioPrometheus github 地址:https://github.com/prometheus
1.3TSDB
TSDB 作为 Prometheus 的存储引擎完美契合了监控数据的应用场景●存储的数据量级十分庞大●大部分时间都是写入操作●写入操作几乎是顺序添加,大多数时候数据都以时间排序●很少更新数据,大多数情况在数据被采集到数秒或者数分钟后就会被写入数据库●删除操作一般为区块删除,选定开始的历史时间并指定后续的区块。很少单独删除某个时间或者分开的随机时间的数据●基本数据大,一般超过内存大小。一般选取的只是其一小部分且没有规律,缓存几乎不起任何作用●读操作是十分典型的升序或者降序的顺序读●高并发的读操作十分常见
1.4Prometheus 的特点
●多维数据模型:由度量名称和键值对标识的时间序列数据时间序列数据:按照时间顺序记录系统、设备状态变化的数据,每个数据称为一个样本;服务器指标数据、应用程序性能监控数据、网络数据等都是时序数据●内置时间序列(Time Series)数据库:Prometheus ;外置的远端存储通常会用:InfluxDB、OpenTSDB 等●promQL 一种灵活的查询语言,可以利用多维数据完成复杂查询●基于 HTTP 的 pull(拉取)方式采集时间序列数据●同时支持 PushGateway 组件收集数据●通过静态配置或服务发现发现目标●支持作为数据源接入 Grafana
1.5Prometheus 的生态组件
Prometheus 负责时序型指标数据的采集及存储,但数据的分析、聚合及直观展示以及告警等功能并非由 Prometheus Server 所负责。Prometheus 生态圈中包含了多个组件,其中部分组件可选:(1)Prometheus server:服务核心组件,采用 pull 方式采集监控数据,通过 http 协议传输;存储时间序列数据;基于“告警规则”生成告警通知。Prometheus server 由三个部分组成:Retrieval,Storage,PromQL●Retrieval:负责在活跃的 target 主机上抓取监控指标数据。●Storage:存储,主要是把采集到的数据存储到磁盘中。默认为 15 天。●PromQL:是 Prometheus 提供的查询语言模块。
(2)Client Library: 客户端库,目的在于为那些期望原生提供 Instrumentation 功能的应用程序提供便捷的开发途径,用于基于应用程序内建的测量系统。
(3)Exporters:指标暴露器,负责收集不支持内建 Instrumentation 的应用程序或服务的性能指标数据,并通过 HTTP 接口供 Prometheus Server 获取。换句话说,Exporter 负责从目标应用程序上采集和聚合原始格式的数据,并转换或聚合为 Prometheus 格式的指标向外暴露。常用的 Exporters:●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:监控业务容器存活性。
(4)Service Discovery:服务发现,用于动态发现待监控的 Target,Prometheus 支持多种服务发现机制:文件、DNS、Consul、Kubernetes 等等。 服务发现可通过第三方提供的接口,Prometheus 查询到需要监控的 Target 列表,然后轮询这些 Target 获取监控数据。该组件目前由 Prometheus Server 内建支持
(5)Alertmanager:是一个独立的告警模块,从 Prometheus server 端接收到 “告警通知” 后,会进行去重、分组,并路由到相应的接收方,发出报警, 常见的接收方式有:电子邮件、钉钉、企业微信等。Prometheus Server 仅负责生成告警指示,具体的告警行为由另一个独立的应用程序 AlertManager 负责;告警指示由 Prometheus Server 基于用户提供的告警规则周期性计算生成,Alertmanager 接收到 Prometheus Server 发来的告警指示后,基于用户定义的告警路由向告警接收人发送告警信息。
(6)Pushgateway:类似一个中转站,Prometheus 的 server 端只会使用 pull 方式拉取数据,但是某些节点因为某些原因只能使用 push 方式推送数据, 那么它就是用来接收 push 而来的数据并暴露给 Prometheus 的 server 拉取的中转站。可以理解成目标主机可以上报短期任务的数据到 Pushgateway,然后 Prometheus server 统一从 Pushgateway 拉取数据。
(7)Grafana:是一个跨平台的开源的度量分析和可视化工具,可以将采集的数据可视化的展示,并及时通知给告警接收方。其官方库中具有丰富的仪表盘插件。
1.6Prometheus 的工作模式
●Prometheus Server 基于服务发现(Service Discovery)机制或静态配置获取要监视的目标(Target),并通过每个目标上的指标 exporter 来采集(Scrape)指标数据;
●Prometheus Server 内置了一个基于文件的时间序列存储来持久存储指标数据,用户可使用 PromQL 接口来检索数据,也能够按需将告警需求发往 Alertmanager 完成告警内容发送;
●一些短期运行的作业的生命周期过短,难以有效地将必要的指标数据供给到 Server 端,它们一般会采用推送(Push)方式输出指标数据, Prometheus 借助于 Pushgateway 接收这些推送的数据,进而由 Server 端进行抓取
1.7Prometheus 的工作流程
(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 数据源,把监控数据以图形化形式展示出。
1.8Prometheus 的局限性
●Prometheus 是一款指标监控系统,不适合存储事件及日志等;它更多地展示的是趋势性的监控,而非精准数据;●Prometheus 认为只有最近的监控数据才有查询的需要,其本地存储的设计初衷只是保存短期(例如一个月)数据,因而不支持针对大量的历史数据进行存储;若需要存储长期的历史数据,建议基于远端存储机制将数据保存于 InfluxDB 或 OpenTSDB 等系统中;●Prometheus 的集群机制成熟度不高,可基于 Thanos 实现 Prometheus 集群的高可用及联邦集群。
二、部署 Prometheus
2.1Prometheust Server 端安装和相关配置
(1)上传 prometheus-2.35.0.linux-amd64.tar.gz 到 /opt 目录中,并解压
systemctl stop firewalldsetenforce 0cd /opt/tar xf prometheus-2.35.0.linux-amd64.tar.gzmv prometheus-2.35.0.linux-amd64 /usr/local/prometheuscat /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 #数据采集超时时间,默认10salerting: #用于alertmanager实例的配置,支持静态配置和动态服务发现的机制 alertmanagers: - static_configs: - targets: # - alertmanager:9093rule_files: #用于加载告警规则相关的文件路径的配置,可以使用文件名通配机制 # - "first_rules.yml" # - "second_rules.yml"scrape_configs: #用于采集时序数据源的配置 # The job name is added as a label `job=` 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"]
(2)配置系统启动文件,启动 Prometheust
cat > /usr/lib/systemd/system/prometheus.service <<"EOF"[Unit]Description=Prometheus ServerDocumentation=https://prometheus.ioAfter=network.target[Service]Type=simpleExecStart=/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 $MAINPIDRestart=on-failure[Install]WantedBy=multi-user.targetEOF
(3)启动
systemctl start prometheussystemctl enable prometheusnetstat -natp | grep :9090浏览器访问:http://192.168.10.10:9090 ,访问到 Prometheus 的 Web UI 界面 点击页面的 Status -> Targets,如看到 Target 状态都为 UP,说明 Prometheus 能正常采集到数据 http://192.168.10.10:9090/metrics ,可以看到 Prometheus 采集到自己的指标数据,其中 Help 字段用于解释当前指标的含义,Type 字段用于说明数据的类型
三、部署 Exporters
3.1部署 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.gzmv 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_exporterDocumentation=https://prometheus.io/After=network.target[Service]Type=simpleExecStart=/usr/local/bin/node_exporter \--collector.ntp \--collector.mountstats \--collector.systemd \--collector.tcpstatExecReload=/bin/kill -HUP $MAINPIDRestart=on-failure[Install]WantedBy=multi-user.targetEOF
(3)启动
systemctl start node_exportersystemctl enable node_exporternetstat -natp | grep :9100浏览器访问:http://192.168.10.10: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.10.10:9100 - 192.168.10.20:9100 - 192.168.10.30:9100 labels: service: kubernetes
(5)重新载入配置
curl -X POST http://192.168.10.10:9090/-/reload 或 systemctl reload prometheus浏览器查看 Prometheus 页面的 Status -> Targets
采集数据:
3.2监控 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.gzmv 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_exporterDocumentation=https://prometheus.io/After=network.target[Service]Type=simpleExecStart=/usr/local/bin/mysqld_exporter --config.my-cnf=/etc/my.cnfExecReload=/bin/kill -HUP $MAINPIDRestart=on-failure[Install]WantedBy=multi-user.targetEOF
(3)修改 MySQL 配置文件
vim /etc/my.cnf[client]......host=localhostuser=exporterpassword=abc123
(4)授权 exporter 用户
mysql -uroot -pabc123GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO "exporter"@"localhost" IDENTIFIED BY "abc123";
(5)重启服务
systemctl restart mysqldsystemctl start mysqld_exportersystemctl enable mysqld_exporternetstat -natp | grep :9104
3.3在 Prometheus 服务器上操作
(1)修改 prometheus 配置文件,加入到 prometheus 监控中
vim /usr/local/prometheus/prometheus.yml#在尾部增加如下内容 - job_name: mysqld metrics_path: "/metrics" static_configs: - targets: - 192.168.10.100:9104 - 192.168.10.101:9104
labels: service: mysqld
(2)重新载入配置
curl -X POST http://192.168.10.10:9090/-/reload 或 systemctl reload prometheus浏览器查看 Prometheus 页面的 Status -> Targets
3.4监控 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
(1)解压 nginx 插件
cd /opttar xf nginx-module-vts-0.1.18.tar.gzmv nginx-module-vts-0.1.18 /usr/local/nginx-module-vts
(2)安装 Nginx
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ makeuseradd -M -s /sbin/nologin nginxcd /opttar xf nginx-1.18.0.tar.gzcd 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-vtsmake & make install
(3)修改 nginx 配置文件,启动 nginx
vim /usr/local/nginx/conf/nginx.confhttp { 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.10.10; #设置为 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=nginxAfter=network.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStart=/usr/local/nginx/sbin/nginxExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.targetEOFsystemctl start nginxsystemctl enable nginx
浏览器访问:http://192.168.10.40:8080/status ,可以看到 Nginx Vhost Traffic Status 的页面信息
(4)解压 nginx-exporter,启动 nginx-exporter
cd /opt/tar -zxvf nginx-vts-exporter-0.10.3.linux-amd64.tar.gzmv 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-exporterDocumentation=https://prometheus.io/After=network.target[Service]Type=simpleExecStart=/usr/local/bin/nginx-vts-exporter -nginx.scrape_uri=http://localhost:8080/status/format/jsonExecReload=/bin/kill -HUP $MAINPIDRestart=on-failure[Install]WantedBy=multi-user.targetEOFsystemctl start nginx-exportersystemctl enable nginx-exporternetstat -natp | grep :9913
3.5在 Prometheus 服务器上操作
(1)修改 prometheus 配置文件,加入到 prometheus 监控中
vim /usr/local/prometheus/prometheus.yml#在尾部增加如下内容 - job_name: nginx metrics_path: "/metrics" static_configs: - targets: - 192.168.10.40:9913 labels: service: nginx
(2)重新载入配置
curl -X POST http://192.168.10.10: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-serversystemctl enable grafana-servernetstat -natp | grep :3000浏览器访问:http://192.168.10.80:3000 ,默认账号和密码为 admin/admin
(2)配置数据源
Configuration -> Data Sources -> Add data source -> 选择 PrometheusHTTP -> URL 输入 http://192.168.10.10: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 服务发现
5.1基于文件的服务发现
基于文件的服务发现是仅仅略优于静态配置的服务发现方式,它不依赖于任何平台或第三方服务,因而也是最为简单和通用的实现方式。Prometheus Server 会定期从文件中加载 Target 信息,文件可使用 YAML 和 JSON 格式,它含有定义的 Target 列表,以及可选的标签信息。
(1)创建用于服务发现的文件,在文件中配置所需的 target
cd /usr/local/prometheusmkdir targetsvim targets/node-exporter.yaml- targets: - 192.168.10.20:9100 - 192.168.10.30:9100 labels: app: node-exporter job: nodevim targets/mysqld-exporter.yaml- targets: - 192.168.10.100:9104 - 192.168.10.101:9104 labels: app: mysqld-exporter job: mysqld
5.2修改 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: 2msystemctl reload prometheus
浏览器查看 Prometheus 页面的 Status -> Targets
5.3基于 Consul 的服务发现
Consul 是一款基于 golang 开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理的功能。提供服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等功能。
下载地址:https://www.consul.io/downloads/
(1)部署 Consul 服务
cd /opt/unzip consul_1.9.2_linux_amd64.zipmv consul /usr/local/bin/
#创建 Consul 服务的数据目录和配置目录
mkdir /var/lib/consul-datamkdir /etc/consul/
#使用 server 模式启动 Consul 服务
consul agent \-server \-bootstrap \-ui \-data-dir=/var/lib/consul-data \-config-dir=/etc/consul/ \-bind=192.168.10.10 \-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.10.10", "port": 9100, "tags": ["nodes"], "checks": [{ "http": "http://192.168.10.10:9100/metrics", "interval": "5s" }] }, { "id": "node_exporter-node02", "name": "node02", "address": "192.168.10.40", "port": 9100, "tags": ["nodes"], "checks": [{ "http": "http://192.168.10.40:9100/metrics", "interval": "5s" }] } ]}
#让 consul 重新加载配置信息
consul reload
浏览器访问:http://192.168.10.10:8500
(3)修改 prometheus 配置文件
vim /usr/local/prometheus/prometheus.yml...... - job_name: nodes consul_sd_configs: #指定使用 consul 服务发现 - server: 192.168.10.10:8500 #指定 consul 服务的端点列表 tags: #指定 consul 服务发现的 services 中哪些 service 能够加入到 prometheus 监控的标签 - nodes refresh_interval: 2msystemctl reload prometheus浏览器查看 Prometheus 页面的 Status -> Targets
浏览器查看 Prometheus 页面的 Status -> Targets
#让 consul 注销 Service
#重新注册
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 automaticallyand use the pod"s# CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.[ api_server:]# The Kubernetes role of entities that should be discovered. One of endpoints, service, pod, node, or ingress.role: # Optional authentication information used to authenticate to the API server.# Note that "basic_auth", "bearer_token"和"bearer_token_file" 等认证方式互斥;[ bearer_token: ][ bearer_token_file: ]# TLS configuration.tls_config:# CA certificate to validate API server certificate with.[ ca_file: ]# Certificate and key files for client cert authentication to the server.[ cert_file: ][ key_file: ]# ServerName extension to indicate the name of the server.[ server_name: ]# Optional namespace discovery. If omitted, all namespaces are used.namespaces:names:[ - ]
关键词:
sed文本处理工具常见用法
每日看点!Prometheus 监控系统1
Java中的NIO
环球快报:带你全方面了解字节 A/B 实验的文化与工具
世界新资讯:【金融街发布】交易商协会发布企业资产证券化基础性制度
【世界播资讯】重庆龙凤胎熊猫宝宝取名“渝可”“渝爱”
速看:《小美人鱼》剧照还原动画经典场景:就是肤色不太对
头条焦点:中国制造!索尼第四代降噪豆XM5佩戴/音质/快充全面升级:AirPods Pro2劲敌
老人墓中藏13万现金全部霉变 专业能手全力抢救:官方科普纸钞如何保管
海底捞部分门店取消免费美甲:只能付费购买穿戴甲
视讯!SQLMap 源码阅读
今日观点!abc285G
环球精选!JVM -Xss
【高端访谈·城市力量】“双碳”背景下农商银行如何“点绿”成金?——访秦农银行党委书记、董事长李彬
今热点:五菱电动“吉姆尼” 宝骏悦也续航里程公布:能跑303公里
董明珠要玩大的?格力成立房地产新公司 投资数亿元
东方甄选称被骗了 虾品供应商发声:不认可甩锅行为
热点在线丨百度文心一言申请页被挤爆:预约1小时涌入3万企业
环球快讯:现实版GTA!美劫匪偷直升机因操作失误当场坠毁:一地碎片
国宝大熊猫的视频_国宝大熊猫的故事
66.类型转换
快讯:【0基础学爬虫】爬虫基础之抓包工具的使用
天天热头条丨制作学生信息管理系统
文心一言正式对标GPT-4,是青铜还是王者?
全球播报:恒生指数16日收跌1.72% 互联网科技股集体走低
每日速看!铁匠用30年给猫和老鼠做铠甲:一套比一套帅!
戴尔推出了灵越14 ARM版:骁龙8cx Gen 2、16小时长续航
世界播报:卡布达归来!《铁甲小宝》高清修复版将至:已开通B站账号
两败俱伤:比亚迪海豹街头铲翻宝马X5
块级元素和行内元素
天天实时:SublimeREPL设置详解——实现代码传递(Eval in REPL)
天天观速讯丨JavaScript 实现异步任务循环顺序执行
自定义 Spring 通用日志注解
精彩看点:日债市场继续消化欧美银行风险扰动 收益率曲线陡峭化下移
即时焦点:【财经分析】债市利空反应钝化 后市操作存分歧
每日快报!【新华500】新华500指数(989001)16日跌1.29%
【环球时快讯】小伙爆改特斯拉Model 3:加装120寸轮毂、增加“逆天”功能
【新要闻】百度文心一言问答测试为视频演示 李彦宏:为保证效果提前录制
全球实时:深蓝SL03车主联合声明:长安雇水军打压车主 要求车辆终身质保加补偿
国内首款天玑9000旗舰平板!OPPO Pad 2官宣:下周发布
【世界时快讯】曾投资一亿美元:马斯克痛批OpenAI成为营利组织
冰墩墩钥匙扣(冰墩墩多少钱一只)
最新消息:76.qt qml-QianWindow开源炫酷界面框架(支持白色暗黑渐变自定义控件均以适配)
今热点:Markdown用法解析
世界微动态丨得物从0到1自研客服IM系统的技术实践之路
天天看热讯:性能优化搞得好,Tomcat少不了。| 博学谷狂野架构师
世界观天下!笔记本水冷改造记录
世界球精选!创维造车:主打座舱养生续命、碰撞测试0分!真是讽刺他妈给讽刺开门
环球即时:反转!国内油价明晚大概率下跌 预计下调0.07元/升
《暗黑4》本周末开测 世界BOSS刷新时间公布
天天关注:巴奴火锅下架富硒土豆!消费者可获赠500元储值卡:领取有条件
天天热推荐:百度发布文心一言AI模型:可实现文字、图片与视频智能生成
喝的人越来越少!星巴克向中国三四线城市进军:30多一杯咖啡县城青年能爱多久
麦芒11什么时候上市的?麦芒11手机参数配置
华为电视怎么投屏?华为电视怎么下载第三方软件?
孙海洋是湖北哪里人?
鲶鱼效应是什么意思?鲶鱼效应的经典案例是什么?
首店经济是什么意思?首店经济是谁提出的?
快报:权志龙演唱会门票多少钱2020_权志龙演唱会门票多少钱
环球讯息:用图技术搞定附近好友、时空交集等 7 个典型社交网络应用
GPT-4测评,大家先别急,图片输入还没来
全球时讯:C#使用ObjectPool提高StringBuilder性能
今头条!RTX 40笔记本新品翻车?别急 先升级NVIDIA新驱动再说
每日精选:官宣!《炉石传说》被移出杭州亚运会项目:职业选手难过
环球快消息!360发布年度手机安全报告:受骗男性占七成 女性三成
天天最资讯丨800V电气架构打造 全新起亚EV9发布:二三排可面对面乘坐
扣上的安全带会自动打开?本田在美国召回近45万辆汽车
【独家焦点】虹科案例|虹科Visokio商业智能平台在疫后帮酒店业打好翻身仗!
环球今热点:python 二分法查找
环球实时:面试问题-密码
Fortran语言在线代码运行编译工具推荐
Scrapy中的response对象的属性及方法,附加mate属性的使用方法
每日短讯:强冷空气来袭!河南三门峡3月下雪:厚厚一层一夜回冬
环球要闻:爱立信CEO:印度是全球推出5G速度最快的国家之一
上映25周年纪念:3D重制版《泰坦尼克号》国内定档
真凉了!暴雪网易闹掰 《炉石传说》或被移出杭州亚运会项目
世界快看:B站投资 网红爆款:理然男士沐浴露29.9元狂促
更改 ESX 或 ESXi 主机的主机名称
每日快讯!作业DNS服务配置
NOI 2008 志愿者招募 题解 (神奇费用流)
NutUI-React 京东移动端组件库 2月份上新!欢迎使用!
传递“坚持”背后的感人力量
环球新资讯:恒生中国发布2022年ESG报告 持续提升绿色金融产品与服务质量
日本央行削减购债引发政策转向猜测 超长端日债收益率显著回升
天天精选!中银香港完成5亿绿色人民币逆回购交易
世界今日讯!预购玩家可抢先游玩:《暗黑破坏神4》已开启Beta测试预载
天天看点:8999元 联想小新Pro27 2023一体机来了:13代i9、锐炫A370M独显
苦情戏直播涉事公司被查处!央视315点名诱骗老人直播间均已被封
比降价还狠!最帅国产猎装车极氪001限时福利:数万元升级包免费选
398元烫发烫完变成3980元 商家:把头发分成10个区域 每个区域398元
Linux进程通信 | 信号
GPT-4:不了不了,这些我还做不到
每日信息:前端设计模式——迭代器模式
Django-4
每日消息!Minio架构简介
环球观焦点:女子住酒店被毒蛇咬伤 酒店拒担全责有啥能证明引热议:律师发声
世界即时:奇葩创维汽车:碰撞试验0分 开创维汽车寿命延长30岁
环球微头条丨70岁赵雅芝踏青 短裤白衫引网友惊叹:真不老女神
热点!或12万起售对刚比亚迪海豚 大众微型电动车ID.2all概念车首发
世界快报:曾引发隐私争议 谷歌眼睛正式停售:退出科技舞台