prometheus.exporter.unix
该 prometheus.exporter.unix
组件使用 node_exporter 来暴露针对基于*nix的系统的各种硬件和操作系统指标。
本身 node_exporter
由各种 收集器 组成,可以按需开启和禁用。有关收集器的更多信息,请参阅 collectors-list
部分。
您可以通过为它们不同的标签来指定多个 prometheus.exporter.unix
组件。
用法
prometheus.exporter.unix "LABEL" {
}
参数
您可以使用以下参数来配置导出器。所有参数都是可选的。省略的字段将采用其默认值。
名称 | 类型 | 描述 | 默认 | 必需 |
---|---|---|---|---|
set_collectors | list(string) | 使用列出的收集器覆盖默认的启用收集器集。 | no | |
enable_collectors | list(string) | 标记为启用的收集器。 | no | |
disable_collectors | list(string) | 标记为禁用的收集器。 | no | |
include_exporter_metrics | boolean | 是否应报告有关导出器自身的指标。 | false | no |
procfs_path | string | procfs挂载点。 | /proc | no |
sysfs_path | string | sysfs挂载点。 | /sys | no |
rootfs_path | string | 指定用于访问主文件系统的前缀。 | / | no |
udev_data_path | string | udev数据路径。 | /run/udev/data | no |
set_collectors
定义了一个默认启用的精挑细选的收集器列表。如果设置了此列表,那么在该列表中未提供的任何内容都默认禁用。请参阅 收集器列表 以获取每个支持的操作系统的默认启用收集器集。
enable_collectors
在默认设置之上或在其之上启用更多的收集器。
disable_collectors
扩展默认禁用收集器的集合。如果有冲突,则优先于 enable_collectors
。
块
以下块支持在 prometheus.exporter.unix
定义中配置特定收集器选项
层次结构 | 名称 | 描述 | 必需 |
---|---|---|---|
bcache | bcache | 配置 bcache 收集器。 | no |
cpu | cpu | 配置 cpu 收集器。 | no |
disk | disk | 配置 diskstats 收集器。 | no |
ethtool | ethtool | 配置ethtool收集器。 | no |
文件系统 | 文件系统 | 配置文件系统收集器。 | no |
硬件监控 | 硬件监控 | 配置硬件监控收集器。 | no |
IPVS | IPVS | 配置IPVS收集器。 | no |
UTC时间 | UTC时间 | 配置UTC时间收集器。 | no |
网络类别 | 网络类别 | 配置网络类别收集器。 | no |
网络设备 | 网络设备 | 配置网络设备收集器。 | no |
网络状态 | 网络状态 | 配置网络状态收集器。 | no |
性能 | 性能 | 配置性能收集器。 | no |
电源供应 | 电源供应 | 配置电源供应收集器。 | no |
runit | runit | 配置runit收集器。 | no |
supervisord | supervisord | 配置supervisord收集器。 | no |
系统控制 | 系统控制 | 配置系统控制收集器。 | no |
systemd | systemd | 配置systemd收集器。 | no |
磁带统计 | 磁带统计 | 配置磁带统计收集器。 | no |
文本文件 | 文本文件 | 配置文本文件收集器。 | no |
虚拟内存状态 | 虚拟内存状态 | 配置虚拟内存状态收集器。 | no |
bcache块
名称 | 类型 | 描述 | 默认 | 必需 |
---|---|---|---|---|
优先级统计 | boolean | 启用暴露昂贵的 bcachepriority统计。 | false | no |
cpu块
名称 | 类型 | 描述 | 默认 | 必需 |
---|---|---|---|---|
虚拟机 | boolean | 启用node_cpu_guest_seconds_total 指标。 | 是 | no |
信息 | boolean | 为cpu收集器启用cpu_info指标 。 | 是 | no |
错误包含 | string | 在此处按需过滤cpu信息中错误 字段的正则表达式。 | no | |
标志包含 | string | 在此处按需过滤cpu信息中标志 字段的正则表达式。 | no |
磁盘块
名称 | 类型 | 描述 | 默认 | 必需 |
---|---|---|---|---|
设备排除 | string | 按需排除磁盘统计的设备的正则表达式。 | "^(ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\\d+n\\d+p)\\d+$" | no |
设备包含 | string | 按需包含磁盘统计的设备的正则表达式。如果设置,则忽略device_exclude 。 | no |
ethtool块
名称 | 类型 | 描述 | 默认 | 必需 |
---|---|---|---|---|
设备排除 | string | 排除ethtool设备的正则表达式。与device_include 互斥。 | no | |
设备包含 | string | 包含ethtool设备的正则表达式。与device_exclude 互斥。 | no | |
指标包含 | string | 包含ethtool统计的正则表达式。 | .* | no |
文件系统块
默认值取决于Alloy运行的操作系统。
名称 | 类型 | 描述 | 默认 | 必需 |
---|---|---|---|---|
文件系统类型排除 | string | 要忽略文件系统收集器的文件系统类型的正则表达式。 | (见下文 ) | no |
排除挂载点 | string | 要忽略文件系统收集器的挂载点的正则表达式。 | (见下文 ) | no |
挂载超时 | 持续时间 | 在将挂载标记为过时之前等待挂载响应的时间。 | "5s" | no |
fs_types_exclude
默认为以下正则表达式字符串
^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$
^(autofs|devfs)$
^devfs$
mount_points_exclude
默认为以下正则表达式字符串
^/(dev|proc|run/credentials/.+|sys|var/lib/docker/.+)($|/)
^/(dev)($|/)
^/(dev)($|/)
硬件监控块
名称 | 类型 | 描述 | 默认 | 必需 |
---|---|---|---|---|
芯片包含 | string | 要包含的hwmon芯片的正则表达式。与chip-exclude 互斥。 | no | |
芯片排除 | string | 要排除的hwmon芯片的正则表达式。与chip-include 互斥。 | no |
ipvs块
名称 | 类型 | 描述 | 默认 | 必需 |
---|---|---|---|---|
后端标签 | list(string) | IPVS后端统计标签数组。 | [local_address, local_port, remote_address, remote_port, proto, local_mark] | no |
ntp块
名称 | 类型 | 描述 | 默认值 | 必填项 |
---|---|---|---|---|
服务器 | string | 用于收集器的NTP服务器。 | "127.0.0.1" | no |
服务器是本地 | boolean | 确认服务器地址不是公开的NTP服务器。 | false | no |
ip_ttl | 整数 | 在发送NTP查询时使用的TTL。 | 1 | no |
local_offset_tolerance | 持续时间 | 允许的本地时钟和本地NTPD时间之间的偏移。 | "1ms" | no |
max_distance | 持续时间 | 到根节点的最大累积距离。 | "3466080us" | no |
protocol_version | 整数 | NTP协议版本。 | 4 | no |
netclass block
名称 | 类型 | 描述 | 默认值 | 必填项 |
---|---|---|---|---|
ignore_invalid_speed_device | boolean | 忽略具有无效速度值的网络设备。 | false | no |
ignored_devices | string | 忽略网类收集器的网络设备的正则表达式。 | "^$" | no |
netdev block
名称 | 类型 | 描述 | 默认值 | 必填项 |
---|---|---|---|---|
address_info | boolean | 为每个设备启用收集地址信息。 | false | no |
设备排除 | string | 排除网络设备的正则表达式。与device_exclude 互斥。 | no | |
设备包含 | string | 包含网络设备的正则表达式。与device_exclude 互斥。 | no |
netstat block
名称 | 类型 | 描述 | 默认值 | 必填项 |
---|---|---|---|---|
fields | string | 为netstat收集器返回字段的正则表达式。 | (见下文) | no |
fields
默认为以下正则表达式字符串
"^(.*_(InErrors|InErrs)|Ip_Forwarding|Ip(6|Ext)_(InOctets|OutOctets)|Icmp6?_(InMsgs|OutMsgs)|TcpExt_(Listen.*|Syncookies.*|TCPSynRetrans|TCPTimeouts)|Tcp_(ActiveOpens|InSegs|OutSegs|OutRsts|PassiveOpens|RetransSegs|CurrEstab)|Udp6?_(InDatagrams|OutDatagrams|NoPorts|RcvbufErrors|SndbufErrors))$"
perf block
名称 | 类型 | 描述 | 默认值 | 必填项 |
---|---|---|---|---|
cpus | string | 应从哪些CPU收集perf指标。 | no | |
tracepoint | list(string) | 应收集的perf跟踪点的数组。 | no | |
disable_hardware_profilers | boolean | 禁用perf硬件分析器。 | false | no |
hardware_profilers | list(string) | 应收集的perf硬件分析器。 | no | |
disable_software_profilers | boolean | 禁用perf软件分析器。 | false | no |
software_profilers | list(string) | 应收集的perf软件分析器。 | no | |
disable_cache_profilers | boolean | 禁用perf缓存分析器。 | false | no |
cache_profilers | list(string) | 应收集的perf缓存分析器。 | no |
powersupply block
名称 | 类型 | 描述 | 默认值 | 必填项 |
---|---|---|---|---|
ignored_supplies | string | 忽略电源供电收集器的电源供电的正则表达式。 | "^$" | no |
runit block
名称 | 类型 | 描述 | 默认值 | 必填项 |
---|---|---|---|---|
service_dir | string | 运行runit服务的目录路径。 | "/etc/service" | no |
supervisord block
名称 | 类型 | 描述 | 默认值 | 必填项 |
---|---|---|---|---|
url | string | supervisord收集器的XML RPC端点。 | "http://localhost:9001/RPC2" | no |
在环境中设置SUPERVISORD_URL
将覆盖默认值。块中的显式值优先于环境变量。
sysctl block
名称 | 类型 | 描述 | 默认值 | 必填项 |
---|---|---|---|---|
include | list(string) | 要曝光的sysctl数值。 | [] | no |
include_info | list(string) | 要曝光的sysctl字符串。 | [] | no |
systemd block
名称 | 类型 | 描述 | 默认值 | 必填项 |
---|---|---|---|---|
enable_restarts | boolean | 启用服务单元指标service_restart_total 。 | false | no |
start_time | boolean | 启用服务单元指标unit_start_time_seconds 。 | false | no |
task_metrics | boolean | 启用服务单元任务指标unit_tasks_current 和unit_tasks_max 。 | false | no |
unit_exclude | string | 排除systemd单元的正则表达式。单元必须既匹配include又不匹配exclude才能收集。 | ".+\\.(automount|device|mount|scope|slice)" | no |
unit_include | string | 包含systemd单元的正则表达式。单元必须既匹配include又不匹配exclude才能收集。 | ".+" | no |
tapestats block
名称 | 类型 | 描述 | 默认值 | 必填项 |
---|---|---|---|---|
ignored_devices | string | 忽略tapestats设备的正则表达式。 | "^$" | no |
textfile block
名称 | 类型 | 描述 | 默认值 | 必填项 |
---|---|---|---|---|
directory | string | 为textfile收集器读取*.prom文件的目录。 | no |
vmstat block
名称 | 类型 | 描述 | 默认值 | 必填项 |
---|---|---|---|---|
fields | string | 为vmstat收集器返回字段的正则表达式。 | "^(oom_kill|pgpg|pswp|pg.*fault).*" | no |
Exported fields
以下字段被曝光,其他组件可以引用。
名称 | 类型 | 描述 |
---|---|---|
targets | list(map(string)) | 可以用于收集exporter指标的target。 |
例如,targets
可以传递给discovery.relabel
组件来重写target的标签集,或者传递给收集曝光指标的prometheus.scrape
组件。
Component health
prometheus.exporter.unix
只有在给定无效配置时才会报告为不健康。在这些情况下,曝光字段保留其最后健康值。
Debug information
prometheus.exporter.unix
不公开任何组件特定的调试信息。
调试指标
prometheus.exporter.unix
不暴露任何组件特定的调试指标。
收集器列表
以下表格列出了预包装在 node_exporter
中的可用收集器。一些收集器仅适用于特定操作系统。如果Alloy运行的宿主操作系统不支持收集器,则会忽略该收集器。
用户可以选择启用收集器子集以限制 prometheus.exporter.unix
组件暴露的指标量,或禁用运行代价高昂的收集器。
名称 | 描述 | 操作系统 | 默认启用 |
---|---|---|---|
arp | 暴露我们从 /proc/net/arp 获取的ARP统计信息。 | Linux | 是 |
bcache | 暴露从 /sys/fs/bcache 获取的bcache统计信息。 | Linux | 是 |
bonding | 暴露Linux捆绑接口配置和活动的从机的数量。 | Linux | 是 |
boottime | 从 kern.boottime sysctl 获取系统引导时间。 | Darwin, Dragonfly, FreeBSD, NetBSD, OpenBSD, Oracle Solaris | 是 |
btrfs | 暴露关于btrfs的统计数据。 | Linux | 是 |
buddyinfo | 根据 /proc/buddyinfo 报告暴露内存片段的统计数据。 | Linux | no |
conntrack | 显示conntrack统计数据。如果没有存在 /proc/sys/net/netfilter/ ,则什么都不做。 | Linux | 是 |
cpu | 暴露CPU统计数据。 | Darwin, Dragonfly, FreeBSD, Linux, Oracle Solaris, NetBSD | 是 |
cpufreq | 暴露CPU频率统计数据。 | Linux, Oracle Solaris | 是 |
devstat | 暴露设备统计数据。 | Dragonfly, FreeBSD | no |
diskstats | 暴露磁盘I/O统计数据。 | Darwin, Linux, OpenBSD | 是 |
dmi | 暴露DMI信息。 | Linux | 是 |
drbd | 暴露分布式复制块设备(至版本8.4)的统计数据。 | Linux | no |
drm | 从 /sys/class/drm/card?/device 暴露GPU卡信息。 | Linux | no |
edac | 暴露错误检测和纠正统计数据。 | Linux | 是 |
entropy | 暴露可用的熵。 | Linux | 是 |
ethtool | 暴露ethtool统计数据。 | Linux | no |
exec | 暴露执行统计数据。 | Dragonfly, FreeBSD | 是 |
fibrechannel | 暴露FibreChannel统计数据。 | Linux | 是 |
filefd | 从 /proc/sys/fs/file-nr 暴露文件描述符统计数据。 | Linux | 是 |
文件系统 | 暴露文件系统统计数据,例如磁盘空间使用情况。 | Darwin, Dragonfly, FreeBSD, Linux, OpenBSD | 是 |
硬件监控 | 从 /sys/class/hwmon 暴露硬件监控和传感器数据。 | Linux | 是 |
infiniband | 暴露针对InfiniBand和Intel OmniPath配置的网络特定统计信息。 | Linux | 是 |
interrupts | 暴露详细的中断统计数据。 | Linux, OpenBSD | no |
IPVS | 从 /proc/net/ip_vs 暴露IPVS状态,以及从 /proc/net/ip_vs_stats 暴露统计数据。 | Linux | 是 |
ksmd | 从 /sys/kernel/mm/ksm 暴露内核和系统统计数据。 | Linux | no |
lnstat | 暴露Linux网络缓存统计数据。 | Linux | no |
loadavg | 暴露平均负载。 | Darwin, Dragonfly, FreeBSD, Linux, NetBSD, OpenBSD, Oracle Solaris | 是 |
logind | 从logind暴露会话计数。 | Linux | no |
mdadm | 从 /proc/mdstat 暴露设备统计数据。如果没有存在 /proc/mdstat ,则什么都不做。 | Linux | 是 |
meminfo | 暴露内存统计数据。 | Darwin, Dragonfly, FreeBSD, Linux, OpenBSD, NetBSD | 是 |
meminfo_numa | 从 /proc/meminfo_numa 暴露内存统计数据。 | Linux | no |
mountstats | 从 /proc/self/mountstats 暴露文件系统统计数据。暴露详细NFS客户端统计数据。 | Linux | no |
网络类别 | 从 /sys/class/net 暴露网络接口信息。 | Linux | 是 |
网络设备 | 暴露网络接口统计数据,例如已传输的字节。 | Darwin, Dragonfly, FreeBSD, Linux, OpenBSD | 是 |
netisr | 暴露netisr统计数据。 | FreeBSD | 是 |
网络状态 | 从 /proc/net/netstat 暴露网络统计信息。这是与 netstat -s 相同的信息。 | Linux | 是 |
network_route | 暴露网络路由统计数据。 | Linux | no |
nfs | 从 /proc/net/rpc/nfs 暴露NFS客户端统计数据。这是与 nfsstat -c 相同的信息。 | Linux | 是 |
nfsd | 从 /proc/net/rpc/nfsd 暴露NFS内核服务器统计数据。这是与 nfsstat -s 相同的信息。 | Linux | 是 |
UTC时间 | 暴露本地NTP守护进程健康状况以检查时间。 | any | no |
nvme | 暴露NVMe统计数据。 | Linux | 是 |
os | 公开 os-release 信息。 | Linux | 是 |
性能 | 公开基于性能的指标。警告:指标取决于内核配置和设置。 | Linux | no |
powersupplyclass | 收集电源信息。 | any | 是 |
pressure | 公开来自 /proc/pressure/ 的压力停滞统计信息。 | Linux 内核 4.20+ 或 CONFIG_PSI | 是 |
processes | 公开来自 /proc 的进程统计信息汇总。 | Linux | no |
qdisc | 公开排队管理策略统计信息。 | Linux | no |
rapl | 公开来自 /sys/class/powercap 的各种统计信息。 | Linux | 是 |
runit | 公开 runit 的服务状态。 | any | no |
schedstat | 公开来自 /proc/schedstat 的任务调度器统计信息。 | Linux | 是 |
sockstat | 公开来自 /proc/net/sockstat 的各种统计信息。 | Linux | 是 |
softirqs | 公开来自 /proc/softirqs 的详细 softirq 统计信息。 | Linux | no |
softnet | 公开来自 /proc/net/softnet_stat 的统计信息。 | Linux | 是 |
stat | 公开来自 /proc/stat 的各种统计信息。这包括引导时间、分支和中断。 | Linux | 是 |
supervisord | 公开 supervisord 的服务状态。 | any | no |
系统控制 | 公开来自 /proc/sys 的 sysctl 值。 | Linux | no |
systemd | 公开 systemd 的服务和系统状态。 | Linux | no |
磁带统计 | 公开磁带设备统计信息。 | Linux | 是 |
tcpstat | 公开来自 /proc/net/tcp 和 /proc/net/tcp6 的 TCP 连接状态信息。 警告:当前版本在高负载情况下可能存在潜在的性能问题。 | Linux | no |
文本文件 | 从目录中收集匹配文件名模式 *.prom 的文件的指标。这些文件必须使用基于文本的曝光格式。 | any | 是 |
thermal | 公开热定型统计信息。 | Darwin | 是 |
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 系统调用提供。 | Darwin, FreeBSD, Linux, OpenBSD, NetBSD | 是 |
虚拟内存状态 | 公开来自 /proc/vmstat 的统计信息。 | Linux | 是 |
wifi | 公开 WiFi 设备和站点统计信息。 | Linux | no |
xfs | 公开 XFS 运行时统计信息。 | Linux 内核 4.4+ | 是 |
zfs | 公开 ZFS 性能统计信息。 | Linux, Oracle Solaris | 是 |
zoneinfo | 公开区域统计信息。 | Linux | no |
在 Docker/Kubernetes 上运行
当在 Docker 容器中运行 Alloy 时,您需要从宿主机器绑定挂载文件系统、procfs 和 sysfs,以及为组件设置相应的参数,以便它们能够正常工作。
您可能还需要添加如 SYS_TIME
等 capability,并确保 Alloy 以提升权限运行,以便某些收集器能够正常工作。
例子
此示例使用一个 prometheus.scrape
组件 来从 prometheus.exporter.unix
收集指标
prometheus.exporter.unix "demo" { }
// Configure a prometheus.scrape component to collect unix metrics.
prometheus.scrape "demo" {
targets = prometheus.exporter.unix.demo.targets
forward_to = [prometheus.remote_write.demo.receiver]
}
prometheus.remote_write "demo" {
endpoint {
url = PROMETHEUS_REMOTE_WRITE_URL
basic_auth {
username = USERNAME
password = PASSWORD
}
}
}
替换以下内容
PROMETHEUS_REMOTE_WRITE_URL
:要发送指标的目标 Prometheus remote_write 兼容服务器的 URL。USERNAME
:用于对远程_write API 进行身份验证的用户名。PASSWORD
:用于对远程_write API 进行身份验证的密码。
兼容组件
prometheus.exporter.unix
有可以由以下组件使用的出口
- 消费 目标 的组件
备注
连接某些组件可能不合理,或组件可能需要进一步配置才能正确连接。请参阅相关文档以获取更多详细信息。