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:系统每秒钟从内存写到磁盘的字节数;
作者:闫世成
出处:http://cnblogs.com/yanshicheng
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题或建议,请联系上述邮箱,非常感谢。