轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
prometheuscommunity/smartctl-exporter
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

smartctl-exporter Docker 镜像下载 - 轩辕镜像

smartctl-exporter 镜像详细信息和使用指南

smartctl-exporter 镜像标签列表和版本信息

smartctl-exporter 镜像拉取命令和加速下载

smartctl-exporter 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

smartctl-exporter
prometheuscommunity/smartctl-exporter

smartctl-exporter 镜像详细信息

smartctl-exporter 镜像标签列表

smartctl-exporter 镜像使用说明

smartctl-exporter 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

Prometheus社区提供的smartctl-exporter镜像,用于通过smartctl工具收集硬盘SMART状态指标并暴露给Prometheus监控系统,实现硬盘健康状态的监控与分析。
2 收藏0 次下载activeprometheuscommunity镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

smartctl-exporter 镜像详细说明

smartctl-exporter 使用指南

smartctl-exporter 配置说明

smartctl-exporter 官方文档

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配置:

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文件。
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冲突。

smartctl_exporter --web.listen-address 127.0.0.1:19633 --smartctl.fake-data

常见问题解答

如何使用JSON文件运行smartctl_exporter?

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

# 将设备的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:19633 --log.level=debug --smartctl.fake-data

# 使用curl和grep查询
curl --silent 127.0.0.1:19633/metrics | grep -i nvme
# 或使用xh和ripgrep
xh --body :19633/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
by pnnl
暂无描述
10K+ pulls
上次更新:4 个月前

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

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

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.