prometheus node_exporter

介绍

   内核公开的硬件和操作系统指标的 Prometheus 导出器,用 Go 编写,带有可插入的指标收集器。

    项目地址: https://github.com/prometheus/node_exporter

主机监控的USE方法

USE是使用率(Utilization)、饱和度(Saturation)和错误(Error)的缩写,由Netflix的内核和性能工程师Brendan Gregg开发;
USE方法可以概括为:针对每个资源,检查使用率、饱和度和错误;
资源:系统的一个组件,在USE中,它指的是一个传统意义上的物理服务器组件,如CPU、内存和磁盘等;
  • 使用率:资源忙于工作的平均时间,它通常用随时间变化的百分比进行表示;
  • 饱和度:资源排队工作的指标,无法再处理额外的工作;通常用队列长度表示;
  • 错误:资源错误事件的计数;
对CPU来说,USE通常意味着如下概念
  • CPU使用率随时间的百分比;
  • CPU饱和度,等待CPU的进程数;
  • 错误,通常对CPU不太有影响;
对内存来说,USE的意义相似
  • 内存使用率随时间的百分比;
  • 内存饱和度,可通过监控swap进行测量;
  •  错误,通常不太关键;

grafana模板

模板地址: https://grafana.com/grafana/dashboards/8919

安装

下载并安装

wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
tar xf node_exporter-1.2.2.linux-amd64.tar.gz -C /opt/
ln -s node_exporter-1.2.2.linux-amd64 node_exporter

启动文件

cat > /usr/lib/systemd/system/node_exporter.service << EOF
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/opt/node_exporter/node_exporter
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=node_exporter
[Install]
WantedBy=default.target

EOF

启动

systemctl start node_exporter.service 
systemctl enable node_exporter.service 
systemctl status node_exporter.service 

浏览器访问

http://ip_or_domain_name:9100/metrics

黑白名单

黑名单

   不采集某一个指标的信息

--no-collector.<name> flag

例如不采集CPU信息
 ./node_exporter --no-collector.cpu

白名单

   设置 node_exporter 只采集某些采集项

 --collector.disable-defaults --collector.<name> 

# 只开启mem采集
 ./node_exporter --collector.disable-defaults --collector.meminfo

# 只开启mem 和cpu 采集
./node_exporter --collector.disable-defaults --collector.meminfo --collector.cpu

禁用自身SDK

--web.disable-exporter-metrics

指标含义

CPU相关

CPU使用率
  每台主机CPU在5分钟内的平均使用率
(1 - avg (rate(node_cpu_seconds_total{mode='idle'}[5m])) by (instance))
CPU的饱和度
    
跟踪CPU的平均负载就能获取到相关主机的CPU饱和度,实际上,它是将主机上的CPU数量考虑在内的一段时间内的平均运行队列长度
平均负载少于CPU的数量是正常状况,而长时间内超过CPU数量则表示CPU已然饱和;
node_load1 > on (instance) 2 * count(node_cpu_seconds_total{mode="idle"}) by (instance)

内存相关

node_exporter暴露了多个以node_memory为前缀的指标
  • node_memory_MemTotal_bytes
  • node_memory_MemFree_bytes
  • node_memory_Buffers_bytes
  • node_memory_Cached_bytes
计算使用率
  • 可用空间:上面后三个指标之和;
  • 已用空间:总空间减去可用空间;
  • 使用率:已用空间除以总空间;

磁盘相关

node_filesystem_size_bytes{mount_point=PATH}
node_system_unit_state{name=}
node_vmstat_pswpin:系统每秒从磁盘读到内存的字节数;
node_vmstat_pswpout:系统每秒钟从内存写到磁盘的字节数;

 

posted @ 2021-11-05 19:30  闫世成  阅读(185)  评论(0编辑  收藏  举报