Prometheus监控实战之node_exporter详解

这篇具有很好参考价值的文章主要介绍了Prometheus监控实战之node_exporter详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1 概述

2 功能

2.1 不同操作系统采集端

2.2 linux操作系统采集端

2.3 监控指标

2.4 参数定义

2.4.1 默认启用的参数

 2.4.2 默认不启用的参数

2.5 启动参数

3 安装部署

3.1 下载

3.2 安装配置

3.3 测试验证

3.4 prometheus配置

3.5 在 grafana 中添加图表 


1 概述

Prometheus监控实战之node_exporter详解

 Exporter是Prometheus的指标数据收集组件。它负责从目标Jobs收集数据,并把收集到的数据转换为Prometheus支持的时序数据格式。 和传统的指标数据收集组件不同的是,他只负责收集,并不向Server端发送数据,而是等待Prometheus Server 主动抓取,node-exporter 默认的抓取url地址:http://ip:9100/metrics 。

因为环境原因,网络不可达的场景,Prometheus可以使用Pushgateway这个组件推送node-exporter的指标数据到远端Prometheus,node-exporter用于采集node的运行指标,包括node的cpu、load、filesystem、meminfo、network等基础监控指标,类似于zabbix监控系统的的zabbix-agent。node-exporter由Prometheus官方提供、维护,属于监控指标收集类UNIX内核操作系统的必备的exporter。

GitHub地址:https://github.com/prometheus/node_exporter#enabled-by-default。

2 功能

2.1 不同操作系统采集端

  • node-exporter用于采集类UNIX内核的硬件以及系统指标
  • Windows系统使用 WMI-exporter
  • 采集NVIDIA的GPU指标,可以使用 prometheus-dcgm

2.2 linux操作系统采集端

根据不同的类UNIX操作系统,node-exporter采集指标的支持也是不一样的。

  • diskstats 支持 Darwin, Linux
  • cpu 支持 Darwin, Dragonfly, FreeBSD, Linux, Solaris等,

2.3 监控指标

  • CPU
  • 内存
  • 硬盘
  • 网络流量
  • 文件描述符
  • 系统负载
  • 系统服务

2.4 参数定义

黑名单: 关闭某一项默认开启的采集项,使用--no-collector参数可指定不需要的模块,如果不指定,将使用默认配置。

白名单:关闭默认采集项而只开启某些采集,使用--collector.disable-defaults参数关闭默认采集项,使用--collector.<name>指定开启的采集项。

使用--collectors.enabled参数打开node_exporter默认的采集项。

部分参数默认关闭的原因是:

  • 太重

  • 太慢

  • 太多资源开销

2.4.1 默认启用的参数

Name Description OS
arp 从/proc/net/ARP中显示ARP统计信息 Linux
bcache 显示/sys/fs/bcache/中的bcache统计信息。 Linux
bonding 显示Linux绑定接口的已配置和活动从属设备的数量。 LInux
boottime 显示从kern.boottime sysctl派生的系统启动时间 Darwin, Dragonfly, FreeBSD, NetBSD, OpenBSD, Solaris
conntrack 显示连接统计信息(如果没有/proc/sys/net/netfilter/present,则不执行任何操作)。 Linux
cpu 显示CPU统计信息 Darwin, Dragonfly, FreeBSD, Linux, Solaris
cpufreq 显示CPU频率统计信息 Linux, Solaris
diskstats 显示磁盘I/O统计信息。 Darwin, Linux, OpenBSD
edac 显示错误检测和更正统计信息。 Linux
entropy 显示可用熵。 Linux
exec 显示执行统计信息。 Dragonfly, FreeBSD
filefd 显示/proc/sys/fs/file-nr中的文件描述符统计信息。 Linux
filesystem 显示文件系统统计信息,如使用的磁盘空间。 Darwin, Dragonfly, FreeBSD, Linux, OpenBSD
hwmon 暴露/sys/class/hwmon/中的硬件监控和传感器数据。 Linux
infiniband 显示特定于InfiniBand和Intel OmniPath配置的网络统计信息。 Linux
ipvs 显示/proc/net/ip_vs中的IPVS状态和/proc/net/ip_vs_stats中的统计信息。 Linux
loadavg 显示平均负载。 Darwin, Dragonfly, FreeBSD, Linux, NetBSD, OpenBSD, Solaris
mdadm 在/proc/mdstat中显示有关设备的统计信息(如果不存在/proc/mdtat,则不执行任何操作)。 Linux
meminfo 显示内存统计信息。 Darwin, Dragonfly, FreeBSD, Linux, OpenBSD
netclass 显示/sys/class/net中的网络接口信息/ Linux
netdev 显示网络接口统计信息,如传输的字节数。 Darwin, Dragonfly, FreeBSD, Linux, OpenBSD
netstat 从/proc/net/netstat中显示网络统计信息。这是与netstat-s相同的信息。 Linux
nfs 从/proc/net/rpc/NFS中显示NFS客户端统计信息。这是与nfsstat-c相同的信息。 Linux
nfsd 从/proc/net/rpc/nfsd中显示NFS内核服务器统计信息。这与nfsstat-s的信息相同。 Linux
pressure 显示/proc/pressure/中的压力失速统计信息。 Linux (kernel 4.20+ and/or CONFIG_PSI)
rapl 显示/sys/class/powercap中的各种统计信息。 Linux
schedstat 显示/proc/schedstat中的任务调度程序统计信息。 Linux
sockstat 显示/proc/net/sockstat中的各种统计信息。 Linux
softnet 显示/proc/net/softnet_stat中的统计信息 Linux
stat 显示/proc/stat中的各种统计信息。这包括启动时间、分叉和中断。 Linux
textfile 显示从本地磁盘读取的统计信息。必须设置--collector.textfile.directory标志。 any
thermal_zone 显示/sys/class/thermal中的热区和冷却设备统计信息。 Linux
time 显示当前系统时间。 any
timex 显示选定的adjtimex(2)系统调用统计信息 Linux
udp_queues 显示/proc/net/UDP和/proc/net/udp6中rx_queue和tx_queue的UDP总长度。 Linux
uname 显示uname系统调用提供的系统信息。 Linux
vmstat 显示/proc/vmstat中的统计信息。 Linux
xfs 显示XFS运行时统计信息。 Linux (kernel 4.4+)
zfs 显示ZFS性能统计信息。 Linux, Solaris

如果不想收集某个类型的指标,就使用--no-collector.<name>参数,比如:

./node_exporter --no-collector.time

 2.4.2 默认不启用的参数

默认不启用的参数需要通过--collector.<name>参数来启用,官方提供的不启用的参数如下:

Name Description OS
buddyinfo 显示/proc/buddyinfo报告的内存碎片统计信息。 Linux
devstat 显示设备统计信息 Dragonfly, FreeBSD
drbd 显示分布式复制数据块设备统计信息(至8.4版) LInux
interrupts 显示详细的中断统计信息 Linux, OpenBSD
ksmd 从/sys/kernel/mm/ksm中显示内核和系统统计信息。 Linux
logind 显示登录名中的会话计数。 Linux
meminfo_numa 从logind中显示会话计数。从/proc/meminfo_numa中显示内存统计信息。 Linux
mountstats 从/proc/self/mountstats中显示文件系统统计信息。显示详细的NFS客户端统计信息。 Linux
ntp 显示本地NTP守护程序运行状况以检查时间 any
processes 显示/proc中的聚合进程统计信息 Linux
qdisc 显示排队规则统计信息 Linux
runit 显示排队规则统计信息从runit中显示服务状态。 any
supervisord 从supervisord中显示服务状态 any
systemd 从systemd中显示服务和系统状态。 Linux
tcpstat 从/proc/net/TCP和/proc/net/trcp6中显示TCP连接状态信息。(警告:当前版本在高负载情况下可能存在性能问题。) Linux
wifi 显示WiFi设备和站点统计信息。 Linux
perf 显示基于性能的指标(警告:指标取决于内核配置和设置)。  Linux

2.5 启动参数

  • --web.listen-address:指定启动端口,例如:--web.listen-address=":8080"。
  • --web.config.file=web-config.yml:指定配置文件。
  • --collector.systemd:收集主机上面运行服务的状态,启用systemd收集器。
  • --collector.systemd.unit-include="(docker|sshd).service":指定systemd服务,与--collector.systemd搭配使用。
  • –collector.vmstat.fields=^(oom_kill|pgpg|pswp|nr|pg.fault):监控系统事件。
  • --collector.disable-defaults:禁用所有默认开启的收集器。
  • --collector.< name>:指定开启的收集器,与--collector.disable-defaults搭配使用。
  • --collector.textfile.directory="/opt/prom":自定义监控数据目录。
  • --web.telemetry-path="/metrics":指定metrics的路径,默认为/metrics。
  • --web.disable-exporter-metrics:是否禁用go、prome默认的metrics。
  •  --web.max-requests=40:最大并行请求数,默认40,设置为0时不限制。
  • --log.level="info":日志等级: [debug, info, warn, error, fatal]。
  •  --log.format=logfmt :设置日志打印target和格式: [logfmt, json]。
  • --version:版本号

3 安装部署

3.1 下载

下载地址:

https://prometheus.io/download/

3.2 安装配置

tar -zxvf node_exporter-0.18.1.linux-amd64.tar.gz
cp -rf node_exporter-0.18.1.linux-amd64 /usr/local/node_exporter
#启动 
cd /usr/local/node_exporter/
nohup ./node_exporter --web.listen-address="192.168.10.131:9100" --log.level=warn &
#要想后台运行就得加nohup,单独加最后面的&都不管用

3.3 测试验证


curl -g -X GET http://192.168.10.131:9100/metrics?collect[]=cpu

go_代表goruntime信息等
curl http://192.168.10.131:9100/metrics|grep go_
process_代表进程信息等
curl http://192.168.10.131:9100/metrics|grep process

3.4 prometheus配置

- job_name: node_exporter
    honor_timestamps: true
    scrape_interval: 5s
    scrape_timeout: 5s
    metrics_path: /metrics
    scheme: http
    follow_redirects: true
    static_configs:
      - targets:
        - 192.168.10.131:9100
    params:    ##配置比较鸡肋,可以从node_exporter端过率
      collect[]: #node_exporter可以传递一个可选的收集器列表来过滤指标。该collect[]参数可以多次使用。
        - cpu
        - meminfo

重启 prometheus,查看状态

Prometheus监控实战之node_exporter详解

基于发现配置prometheus

在prometheus 主配置文件配置定义子配置文件路径

  - job_name: 'node'
    static_configs:
    file_sd_configs:
    - files:
      - metrics/node_exporter*.yaml
      refresh_interval: 2m

在prometheus安装目录下的targets目录下(在主配置文件定义metrics目录不存在则手动创建)创建文件 node_exporter65.yaml。

- targets: ['192.168.111.65:9100']    # 如果有多个node_exporter,配置到[]中,隔开添加不需要重启服务,服务自动发现node_exporter客户端
  labels:
   app: node-exporter
   job: node

3.5 在 grafana 中添加图表 

Prometheus监控实战之node_exporter详解

1)开启alertmanager配置告警规则

prometheus 主配置文件配置定义子配置文件路径

rule_files:
    - "rules/*.yml"

2)prometheus 告警规则

在prometheus安装目录下的定义的rules目录下(如果rules目录不存在)创建文件 alarm_rule.yml,文章来源地址https://www.toymoban.com/news/detail-435269.html

groups:
- name: hostStatsAlert
  rules:
  - alert: hostCpuUsageAlert
    expr: (1- avg(irate(node_cpu_seconds_total{instance=~"$node",mode="idle"}[30m])))*100>85
    for: 1m
    labels:
      level: disaster #定义一个等级标签,用于altermanager 发送消息
    annotations:
      summary: "实例 {{ $labels.instance }} CPU使用率过高"
      description: "{{ $labels.instance }} CPU 使用率大于 85% (当前值为: {{ $value }})"

  - alert: hostMemUsageAlert
    expr: (1 - (node_memory_MemAvailable_bytes / (node_memory_MemTotal_bytes)))* 100>85
    for: 1m
    labels:
      level: disaster
    annotations:
      summary: "实例 {{ $labels.instance }} 内存使用率过高"
      description: "{{ $labels.instance }} 内存使用率大于 85% (当前的值: {{ $value }})"

  - alert: hostLoad
    expr: sum(node_load15) >= sum(count(node_cpu_seconds_total{mode='system'}) by (cpu)) and node_load1 > node_load5 and node_load5 > node_load15 
    for: 1m
    labels:
      level: disaster
    annotations:
      summary: "实例 {{ $labels.instance }} 15 分钟负载过高"
      description: "{{ $labels.instance }} 15 分钟负载大于其 cpu 核心数 (当前的值: {{ $value }})"

  - alert: hostUp
    expr: up{job="node"} == 0
    for: 1m
    labels:
      level: disaster
    annotations:
      summary: "实例 {{ $labels.instance }} 不可达"
      description: "{{ $labels.instance }} 实例不可达,请尽快解决"

到了这里,关于Prometheus监控实战之node_exporter详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • prometheus使用node_exporter监控Linux主机CPU、内存、磁盘、服务运行状况

    目录 1.node_exporter简介 2.部署node_exporter 2.1.安装node_exporter 2.2.编写system启动脚本 3.prometheus监控Linux主机 3.1.修改配置文件增加主机节点 3.2.主机添加成功 4.监控Linux主机CPU、内存、磁盘使用率 4.1.监控CPU使用率 4.1.1.获取空闲CPU监控数据 4.1.2.获取5分钟内的监控数据 4.1.3.获取5分钟

    2024年04月16日
    浏览(34)
  • 【监控系统】Prometheus监控组件Node-Exporter配置实战

    这一节,我们来配置一下Node-Exporter,那么我们先来了解一下什么是Prometheus的Exporter? 任何向Prometheus提供监控样本数据的程序都可以被称为一个Exporter,它是一种用于将不同数据源的指标提供给Prometheus进行收集和监控的工具。运行在应用程序、计算机、网络设备或者其他系统

    2024年02月15日
    浏览(34)
  • Linux部署docker以及prometheus+node_exporter+mysqld-exporter+grafana+cadvisor+Alertmanager(告警)

    Linux安裝docker以及部署prometheus+node_exporter+mysqld-exporter+grafana+cadvisor+Alertmanager(告警) 1、官方安裝脚本自动安装docker curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 2、启动docker systemctl start docker 3、搜索镜像-例如搜索prometheus docker search prom/prometheus 4、拉取镜像--这里仅列出我

    2024年03月15日
    浏览(55)
  • Linux 集群监控部署:prometheus + node-exporter + Grafana

    之前我们有用到top、free、iostat等等命令,去监控服务器的性能,但是这些命令,我们只针对单台服务器进行监控,通常我们线上都是一个集群的项目,难道我们需要每一台服务器都去敲命令监控吗?这样显然不是符合逻辑的,Linux中就提供了一个集群监控工具 – prometheus。

    2024年02月04日
    浏览(32)
  • k8s集群监控方案--node-exporter+prometheus+grafana

    目录 前置条件 一、下载yaml文件 二、部署yaml各个组件 2.1 node-exporter.yaml 2.2 Prometheus 2.3 grafana 2.4访问测试 三、grafana初始化 3.1加载数据源 3.2导入模板 四、helm方式部署 安装好k8s集群(几个节点都可以,本人为了方便实验k8s集群只有一个master节点),注意prometheus是部署在k8s集群

    2024年02月12日
    浏览(33)
  • 【监控系统】Prometheus监控组件Mysql-Exporter配置实战

    Mysql-Exporter主要监控Mysql数据库的稳定性、吞吐量、连接情况、缓冲池使用情况、查询性能等各项指标,是我们压测时常常需要监控的一些指标。 目前,Exporter 支持高于5.6版本的 MySQL 和高于10.1版本的 MariaDB。在 MySQL/MariaDB 低于5.6版本时,部分监控指标可能无法被采集。 OK,下

    2024年02月16日
    浏览(30)
  • 配置node_exporter

    在Prometheus的架构设计中,PrometheusServer并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Prometheus周期性的从Exporter暴露的HTTP服务地址(通常是/metric

    2024年02月10日
    浏览(31)
  • 运维学习之采集器 node_exporter 1.3.1安装并使用

    参考《监控系统部署prometheus基本功能》先完成prometheus部署。 wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz 下载压缩包。 tar -zxf node_exporter-1.3.1.linux-amd64.tar.gz 进行解压。 cp node_exporter-1.3.1.linux-amd64/* /opt/prometheus/ 进行复制。 nohup /opt/pr

    2024年02月09日
    浏览(32)
  • 关于k8s中的node_exporter异常write: broken pipe问题排查

    公司网络更改重启服务器后,发现Prometheus监控中node节点三个挂掉了,实际上节点服务器是正常的,但是监控的node_exporter请求http://IP:9100/metrics超过10秒没有获取返回数据则认为服务挂掉。 到各个节点服务器用curl命令检测多久返回数据 time_connect :连接时间,从开始到TCP三次握

    2024年02月10日
    浏览(37)
  • 助力工业物联网,工业大数据之服务域:node_exporter插件【三十七】_node_expoter 电源(1)

    小结 实现node_exporter插件的安装监控Linux指标 07:mysqld_exportor插件 目标 : 实现mysqld_exportor插件的安装监控MySQL指标 实施 上传安装 配置MySQL用户授权 注册服务 启动服务 配置Prometheus 自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入

    2024年04月15日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包