专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像 官方专业版轩辕镜像 官方专业版官方专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 1072982923

prometheuscommunity/smartctl-exporter Docker 镜像 - 轩辕镜像 | Docker 镜像高效稳定拉取服务

热门搜索:openclaw🔥nginx🔥redis🔥mysqlopenjdkcursorweb2apimemgraphzabbixetcdubuntucorednsjdk
smartctl-exporter
prometheuscommunity/smartctl-exporter
prometheuscommunity
Prometheus社区提供的smartctl-exporter镜像,用于通过smartctl工具收集硬盘SMART状态指标并暴露给Prometheus监控系统,实现硬盘健康状态的监控与分析。
2 次收藏下载次数: 0状态:社区镜像维护者:prometheuscommunity仓库类型:镜像最近更新:2 个月前
轩辕镜像,不浪费每一次拉取。点击查看
中文简介版本下载
轩辕镜像,不浪费每一次拉取。点击查看

smartctl_exporter

镜像概述和主要用途

smartctl_exporter是一个Prometheus exporter,用于将smartctl工具收集的存储设备S.M.A.R.T.统计信息导出为Prometheus可抓取的指标。该镜像封装了smartctl_exporter应用程序,便于在Docker环境中部署和运行。

核心功能和特性

  • 从smartctl获取存储设备健康数据并转换为Prometheus指标
  • 支持自动扫描系统存储设备或手动指定监控设备
  • 可配置的设备扫描间隔和重新扫描周期
  • 提供设备包含/排除的正则表达式过滤
  • 支持TLS加密和基本身份验证保护
  • 灵活的日志级别和格式配置

使用场景和适用范围

  • 服务器存储设备健康状态监控
  • 磁盘故障预警和预测
  • 存储系统性能分析
  • 集成到Prometheus监控体系中
  • 适用于需要监控物理或虚拟存储设备的各类环境

要求

  • smartmontools >= 7.0,因为JSON导出功能在7.0版本中引入

配置选项

命令行选项

如果未使用--smartctl.device标志,exporter将扫描系统中的可用设备。

usage: smartctl_exporter [<flags>]

Flags:
  -h, --help                   显示上下文相关帮助(也可尝试--help-long和--help-man)。
      --smartctl.path="/usr/sbin/smartctl"  
                               smartctl二进制文件路径
      --smartctl.interval=60s  smartctl轮询间隔
      --smartctl.rescan=10m    重新扫描新设备/已移除设备的间隔。如果间隔小于1秒,则不进行重新扫描。
                               如果使用smartctl.device配置了任何设备,也不会进行重新扫描。
      --smartctl.device=SMARTCTL.DEVICE ...  
                               要监控的设备(可重复)
      --smartctl.device-exclude=""
                               自动扫描中要排除的设备正则表达式。(与device-include互斥)
      --smartctl.device-include=""
                               自动扫描中要包含的设备正则表达式。(与device-exclude互斥)
      --web.telemetry-path="/metrics"  
                               公开指标的路径
      --web.systemd-socket     使用systemd套接字激活监听器代替端口监听器(仅Linux)。
      --web.listen-address=:9633 ...
                               公开指标和Web界面的地址。可重复指定多个地址。
      --web.config.file=""     [实验性] 可启用TLS或身份验证的配置文件路径。
      --log.level=info         仅记录给定严重性或更高级别的消息。选项:[debug, info, warn, error]
      --log.format=logfmt      日志消息的输出格式。选项:[logfmt, json]
      --version                显示应用程序版本。

Docker部署方案

docker-compose配置示例

最小功能的docker-compose.yml配置:

yaml
version: "3"

services:
  smartctl-exporter:
    image: prometheuscommunity/smartctl-exporter
    privileged: true
    user: root
    ports:
      - "9633:9633"

TLS和基本身份验证

该exporter支持TLS加密和基本身份验证。

要使用TLS和/或基本身份验证,需要通过--web.config.file参数传递配置文件。文件格式在exporter-toolkit仓库中有详细描述。

故障排除

数据不一致问题排查

smartctl_exporter使用smartctl的JSON输出向Prometheus提供数据。如果数据不正确,请查看smartctl的原始数据以确定问题应报告给smartmontools上游还是本项目。一般来说,smartctl_exporter不会修改传输中的数据。如果数据在smartctl中缺失,那么在smartctl_exporter中也不应出现。如果smartctl提供的数据不正确,应向上游报告。对于因smartctl提供的无效或缺失数据导致smartctl_exporter中出现多个无效或不正确数据的情况,需要根据具体情况进行研究。

-smartctl数据有效smartctl数据缺失smartctl数据无效/不正确
smartctl_exporter数据有效正常N/AN/A
smartctl_exporter数据缺失smartctl_exporter问题向上游smartmontools报告向上游smartmontools报告
smartctl_exporter数据无效smartctl_exporter问题smartctl_exporter问题并向上游报告向上游smartmontools报告
smartctl输出与exporter输出对比

S.M.A.R.T.属性在smartctl.go中进行映射。每个函数都有一个prometheus.MustNewConstMetric或类似函数,第一个参数是指标名称。在metrics.go中查找指标名称,以了解exporter如何显示信息。这可能听起来很技术,但对于理解数据如何从smartctl流向smartctl_exporter再到Prometheus至关重要。

如果数据看起来不正确,请查看Smartmontools常见问题解答(FAQ),您的问题可能已有答案。如果仍有疑问,请提交issue。

收集smartctl数据

按照以下步骤收集smartctl数据以进行故障排除。如果您有独特的驱动器/数据/边缘情况并希望"***"数据,请提交包含已编辑JSON文件的PR。

  1. 运行scripts/collect-smartctl-json.sh将所有驱动器导出到当前目录下的smartctl-data目录。
  2. 运行scripts/redact_fake_json.py编辑敏感数据。
  3. 提供相关驱动器的JSON文件。
bash
cd scripts
./collect-smartctl-json.sh
./redact-fake-json.py smartctl-data/*.json
使用JSON数据运行smartctl_exporter

smartctl_exporter可以使用本地JSON数据运行。设备名称从机器中的实际设备获取,而数据重定向到debug目录。使用实际设备名称将JSON数据保存在debug目录中,保持1:1对应关系。如果有3个设备sda、sdb和sdc,smartctl_exporter将需要3个文件:debug/sda.json、debug/sdb.json和debug/sdc.json。

准备好"假设备"(JSON文件)后,通过命令行传递隐藏的--smartctl.fake-data开关运行exporter。指定端口以避免与默认端口上已存在的smartctl_exporter冲突。

bash
smartctl_exporter --web.listen-address 127.0.0.1:*** --smartctl.fake-data

常见问题解答

如何使用JSON文件运行smartctl_exporter?

如果您在帮助他人,可以请求提供上述smartctl命令的输出。使用隐藏的--smartctl.fake-data标志将此数据输入smartctl_exporter。如果smartctl_exporter已在运行,请使用不同的端口;在本例中为***。首先运行collect_fake_json.sh为您的设备收集JSON文件。将请求的JSON文件复制到其中一个假文件中。启动exporter后,可以查询它以查看生成的数据。

bash
# 将设备的JSON文件转储到debug/目录
./collect_fake_json.sh

# 将测试JSON复制到debug/中的一个文件
cp extracted-from-above-sda.json debug/sda.json

# 确保拥有最新版本
go build
# 使用不同的端口,以防smartctl_exporter已在运行
sudo ./smartctl_exporter --web.listen-address=127.0.0.1:*** --log.level=debug --smartctl.fake-data

# 使用curl和grep查询
curl --silent 127.0.0.1:***/metrics | grep -i nvme
# 或使用xh和ripgrep
xh --body :***/metrics | rg nvme
为什么需要root权限?不能将用户添加到"disk"组吗?

一位博主曾提出同样的问题,并在smartmontools上提交了工单。以下是他们的回应:smartctl需要以root身份运行。

RFE: 为sat/scsi/ata设备添加O_RDRW模式

根据当前内核源代码中的blk_verify_command()函数(参见​block/scsi_ioctl.c), 如果设备以root(或CAP_SYS_RAWIO)身份打开,O_RDONLY或O_RDWR没有区别。

blk_set_cmd_filter_defaults()函数中列出的SCSI命令显示,对于非root用户,某些smartctl -d scsi功能可能使用O_RDONLY工作。更多功能可能使用O_RDWR工作。

但是smartctl -d sat(用于访问SATA设备)根本无法工作,因为SCSI命令ATA_12和ATA_16 (参见​scsi_proto.h) 始终对非root用户阻塞。

NVMe驱动器支持情况

来自smartmontools FAQ:My NVMe drive is not in the smartctl/smartd database

SCSI/SAS和NVMe驱动器不提供类似ATA/SATA的SMART属性。 因此驱动器数据库不包含这些驱动器的任何条目。 未来可能会改变,因为某些驱动器通过供应商特定命令提供类似信息(参见ticket #870)。

smartmontools还有一个关于NVMe设备的wiki页面。

如何向上游smartmontools报告问题?

请查看他们的FAQ:How to create a bug report。

查看更多 smartctl-exporter 相关镜像 →
pnnlmiscscripts/smartctl-exporter logo
pnnlmiscscripts/smartctl-exporter
pnnlmiscscripts
暂无描述
1万+ 次下载
4 个月前更新
bitnami/redis-exporter logo
bitnami/redis-exporter
bitnami
Bitnami安全镜像,集成redis-exporter工具,用于安全导出Redis监控指标。
16 次收藏1亿+ 次下载
4 天前更新
bitnami/jmx-exporter logo
bitnami/jmx-exporter
bitnami
Bitnami提供的安全镜像,用于运行jmx-exporter以导出JMX指标,适用于Java应用监控场景。
8 次收藏1000万+ 次下载
20 天前更新
bitnami/node-exporter logo
bitnami/node-exporter
bitnami
Bitnami安全版node-exporter镜像,用于节点监控,收集主机系统及硬件指标。
25 次收藏5000万+ 次下载
5 个月前更新
bitnami/nginx-exporter logo
bitnami/nginx-exporter
bitnami
Bitnami安全镜像,用于NGINX Prometheus Exporter,支持通过Prometheus监控NGINX或NGINX Plus,提供安全加固、最小化攻击面、FIPS配置及持续更新等企业级特性。
5 次收藏1000万+ 次下载
4 天前更新
bitnami/mongodb-exporter logo
bitnami/mongodb-exporter
bitnami
Bitnami mongodb-exporter安全镜像,用于导出MongoDB监控指标,提供安全可靠的指标采集与导出功能。
14 次收藏5000万+ 次下载
10 天前更新

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

Docker 配置

登录仓库拉取

通过 Docker 登录认证访问私有仓库

专属域名拉取

无需登录使用专属域名

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

系统配置

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

MacOS OrbStack

MacOS OrbStack 容器配置

Docker Compose

Docker Compose 项目配置

NAS 设备

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

极空间

极空间 NAS 系统配置服务

网络设备

爱快路由

爱快 iKuai 路由系统配置

宝塔面板

在宝塔面板一键配置镜像

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

使用与功能问题

docker search 报错:专属域名下仅支持 Docker Hub 查询

docker search 报错问题

网页搜不到镜像:Docker Hub 有但轩辕镜像搜索无结果

镜像搜索不到

离线传输镜像:无法直连时用 docker save/load 迁移

离线传输镜像

Docker 插件安装错误:application/vnd.docker.plugin.v1+json

Docker 插件安装错误

WSL 下 Docker 拉取慢:网络与挂载目录影响及优化

WSL 拉取镜像慢

轩辕镜像是否安全?镜像完整性校验(digest)说明

镜像安全性

如何用轩辕镜像拉取镜像?登录方式与专属域名配置

如何拉取镜像

错误码与失败问题

manifest unknown 错误:镜像不存在或标签错误

manifest unknown 错误

TLS/SSL 证书验证失败:Docker pull 时 HTTPS 证书错误

TLS 证书验证失败

DNS 解析超时:无法解析镜像仓库地址或连接超时

DNS 解析超时

410 Gone 错误:Docker 版本过低导致协议不兼容

410 错误:版本过低

402 Payment Required 错误:流量耗尽错误提示

402 错误:流量耗尽

401 UNAUTHORIZED 错误:身份认证失败或登录信息错误

身份认证失败错误

429 Too Many Requests 错误:请求频率超出专业版限制

429 限流错误

Docker login 凭证保存错误:Cannot autolaunch D-Bus(不影响登录)

凭证保存错误

账号 / 计费 / 权限

免费版与专业版区别:功能、限额与使用场景对比

免费版与专业版区别

支持的镜像仓库:Docker Hub、GCR、GHCR、K8s 等列表

轩辕镜像支持的镜像仓库

拉取失败是否扣流量?计费规则说明

拉取失败流量计费

KYSEC 权限不够:麒麟 V10/统信 UOS 下脚本执行被拦截

KYSEC 权限错误

如何申请开具发票?(增值税普票/专票)

开具发票

如何修改网站与仓库登录密码?

修改网站和仓库密码

配置与原理类

registry-mirrors 未生效:仍访问官方仓库或报错的原因

registry-mirrors 未生效

如何去掉镜像名称中的轩辕域名前缀?(docker tag)

去掉域名前缀

如何拉取指定架构镜像?(ARM64/AMD64 等多架构)

拉取指定架构镜像

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
prometheuscommunity/smartctl-exporter
博客公告Docker 镜像公告与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
镜像拉取问题咨询请 提交工单,官方技术交流群:1072982923。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
镜像拉取问题咨询请提交工单,官方技术交流群:。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.