1、每台主机上安装exporter和cadvisor 2、主机资源监控项:
在node exporter上设置textfile的路径: --collector.textfile.directory=/var/lib/node_exporter/textfile_collector/ 6、配置systemd收集器 node_exporter --collector.textfile.directory /var/lib/node_exporter/textfile_collector --collector.systemd --collector.systemd.unit-whitelist="(docker|ssh|rsyslog).service" 7、服务端prometheus.yml配置 scrape_configs:
8、通过params collect[]过滤收集的指标
image.png
9、运行cadvisor docker run -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker:/var/lib/docker:ro -v /dev/disk:/dev/disk:ro -p 8080:8080 --detach=true --restart=always --name=cadvisor google/cadvisor 10、prometheus服务端配置
image.png
???覆盖标签配置????、
image.png
image.png
标签分为拓扑标签、模式标签 拓扑标签:job:node instance:address .... 模式标签:url error_code user....
标签分类示例: 数据中心-->环境:开发、预发布、生产-->服务、应用程序
有两个阶段可以重新标记:服务发现后重新标记 relabel_configs 抓取之后过滤 metric_relabel_configs 最简单的区分,一个是抓取前,一个是抓取后
image.png
image.png
操作有:drop/keep/replace/labeldrop/labelkeep
image.png
metric_relabel_configs:
cpu使用率:node_cpu_seconds_total。使用promQL来查询5分钟内的CPU平均值:100-avg(irate(node_cpu_seconds_total{job="node",mode="idle"}[5m])) by (instance) * 100
image.png
cpu饱和度:计算cpu数量 count by (instance) (node_cpu_seconds_total{mode="idle"}) 查询1分钟平均负载超过2倍CPU数量的指标:node_load1 > on (instance) 2 * count by (instance) (node_cpu_seconds_total{mode="idle"}) cpu错误:无法收集 ---# 内存使用率指标:(node_memory_MemTotal_bytes - (node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes)) / node_memory_MemTotal_bytes * 100 内存饱和度:node_vmstat_pswpin 系统每秒从磁盘读到内存的字节数 1024 * sum by (instance) (rate(node_vmstat_pswpin[1m])+rate(node_vmstat_pswpin[1m])) 内存错误:无法收集 --# 磁盘使用率:(node_filesystem_size_bytes{mountpoint="/"}-node_filesystem_free_bytes{mountpoint="/"})/node_filesystem_size_bytes{mountpoint="/"}*100
-----#预测函数**** predict_linear predict_linear(node_filesystem_free_bytes{job="node"}[1h],4*3600)<0
--
node_systemd_unit_state{name="docker.service",state="active"} ==1
rule_files:
groups: